QEMU
QEMU 是一款灵活且功能强大的开源虚拟机监控器(Hypervisor),它能够模拟包括 x86、ARM、MIPS、SPARC 在内的众多处理器架构,并且支持广泛的操作系统,如 Linux、Windows、macOS、FreeBSD 等。QEMU 的应用范围广泛,涵盖了虚拟化、硬件仿真、软件调试以及系统测试等多个领域。
借助 QEMU,用户可以在单一的物理服务器或工作站上创建多个隔离的虚拟环境,每个环境都能够运行不同的应用程序和服务。QEMU 以其轻量级的设计和简便的安装配置过程而著称,在保持高度可移植性的同时,还提供了卓越的跨平台支持,使得它在各种计算环境中都能发挥出色的性能和兼容性。
运作模式[ ]
- User mode 模拟模式,亦即是使用者模式。QEMU 能启动那些为不同中央处理器编译的 Linux 程序。而 Wine 及 Dosemu 是其主要目标。
- System mode 模拟模式,亦即是系统模式。QEMU 能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。
核心功能[ ]
1、虚拟化:QEMU 能够将单个物理服务器转换成多个虚拟隔离环境,即虚拟机(VMs)。这些 VM 可同时在相同物理硬件上运行,为测试、开发和部署各种应用及操作系统提供了一个安全和灵活的平台。
2、仿真:QEMU 支持多种硬件平台的模拟,包括 x86、ARM、MIPS、SPARC 等架构。这使得开发者可以在一个不同的硬件或操作系统上测试软件,从而增加了其跨平台开发的灵活性。
3、调试:QEMU 提供了全面的调试工具,例如单步执行和断点设置,使得开发者能够在安全的虚拟环境中测试和调试程序,有助于发现并修复软件中的错误。
4、交叉编译:QEMU 还提供了交叉编译工具集,允许开发者在一个系统上编译另一个架构的代码。这消除了必须在每个目标硬件平台上进行编译的需要。
5、快照:QEMU 支持虚拟机的快照功能,允许用户保存 VM 的当前状态,以便于快速恢复至某一特定点。这对于测试不同场景或回滚到稳定状态非常有用。
虚拟化模式[ ]
全虚拟化[ ]
QEMU采用全虚拟化技术时,它会将虚拟机中的指令翻译成物理机器指令,再由物理机器执行。这种方式可以实现真正的隔离,但是由于需要进行指令翻译,因此性能相对较差。
半虚拟化[ ]
QEMU采用半虚拟化技术时,它会将一些敏感指令,如读写I/O端口、访问内存页表等,通过调用宿主机器上的虚拟化接口来完成,而不是直接在虚拟机中执行。这种方式可以获得更好的性能,但是需要对虚拟机中的操作系统进行修改。
网络配置和连接方式[ ]
1、用户模式网络
用户模式网络是一种简单的网络连接方式,QEMU通过创建一个虚拟网络设备来实现网络连接。用户可以通过命令行或者图形界面来配置网络参数,如IP地址、网关、DNS等。
2、TAP网络
TAP网络是一种使用Linux TAP设备来实现的网络连接方式。QEMU将虚拟网络设备连接到TAP设备上,从而实现网络连接。TAP网络支持多种网络协议,如TCP/IP、UDP等。
3、桥接网络
桥接网络是一种使用Linux桥接设备来实现的网络连接方式。QEMU将虚拟网络设备连接到桥接设备上,从而实现网络连接。桥接网络可以实现虚拟机和物理网络之间的通信。
4、NAT网络
NAT网络是一种使用Linux NAT设备来实现的网络连接方式。QEMU将虚拟网络设备连接到NAT设备上,从而实现网络连接。NAT网络可以实现虚拟机和物理网络之间的通信,但是无法直接访问虚拟机。
5、MACVTAP网络
MACVTAP网络是一种使用Linux MACVTAP设备来实现的网络连接方式。QEMU将虚拟网络设备连接到MACVTAP设备上,从而实现网络连接。MACVTAP网络支持多种网络协议,如TCP/IP、UDP等。