QEMU(Quick Emulator)是一款开源的模拟器和虚拟化工具,可以模拟完整的计算机系统,让你在没有物理硬件的情况下运行不同的操作系统,如 Linux 或 Windows。它还支持用户模式模拟,允许你在一种架构上运行为另一种架构设计的程序,比如在 x86 电脑上运行 ARM 应用程序。

定义与核心概念
QEMU 是一个免费且开源的模拟器,支持两种主要模式:
- 系统模拟:模拟完整的计算机系统,包括 CPU、内存和设备,允许在虚拟环境中运行完整的操作系统,如 Linux、Windows 等。
- 用户模式模拟:模拟用户空间程序的执行,允许在一种架构上运行为另一种架构编译的应用程序,例如在 x86 电脑上运行为 ARM 编译的程序。
其核心技术是动态二进制翻译(Dynamic Binary Translation),通过将目标架构的指令翻译为宿主机架构的指令,实现高效的模拟。QEMU 还支持多种虚拟化加速器(如 KVM、Xen),进一步提升性能,接近原生硬件的运行速度。

历史与发展
QEMU 由 Fabrice Bellard 于 2003 年创建,最初是为了提供一个快速且灵活的模拟器。自 2005 年以来,QEMU 已经发展成为一个大型开源项目,支持越来越多的架构和功能。截至 2025 年 4 月 23 日,QEMU 的最新版本为 10.0.0-rc4,持续更新以适应新技术和需求。

主要功能
QEMU 的功能涵盖了以下几个方面:
- 系统模拟:
- 支持模拟完整的计算机系统,包括 CPU、内存、存储设备、网络设备等。
- 支持多种架构:x86、ARM、MIPS、PowerPC、RISC-V、s390x 等,具体支持的架构可以在 QEMU 系统模拟目标页面 查看。
- 可以与 KVM、Xen、Hypervisor Framework (HVF)、Windows Hypervisor Platform (WHPX)、NetBSD Virtual Machine Monitor (nvmm) 等虚拟化技术结合,提供高性能的虚拟机环境。
- 用户模式模拟:
- 支持在一种架构上运行为另一种架构编译的用户空间程序,适用于跨架构应用程序的开发和测试。
- 设备模拟:
- 支持模拟各种设备,包括硬盘、网络卡、USB 设备等。
- 支持 VirtIO 设备,优化虚拟化性能,减少设备模拟的开销。
- 管理接口:
- 提供 Human Monitor Protocol (HMP) 和 QEMU Monitor Protocol (QMP) 用于管理和监控虚拟机,HMP 适合交互式使用,QMP 则被工具如 Virt Manager 和 libvirt 使用。
- 调试支持:
- 通过 gdbstub 支持调试虚拟机中的程序。
以下是 QEMU 的功能和支持的架构对比表:
功能 | 描述 | 支持架构 |
---|---|---|
系统模拟 | 模拟完整计算机系统 | x86、ARM、MIPS、PowerPC、RISC-V、s390x |
用户模式模拟 | 模拟用户空间程序 | x86、ARM、MIPS、PowerPC、RISC-V |
虚拟化加速 | 支持 KVM、Xen、HVF、WHPX 等 | x86、ARM、s390x |
设备模拟 | 支持硬盘、网络卡、USB 等 | 跨架构支持 |
管理接口 | HMP、QMP | 跨平台支持 |
调试支持 | gdbstub | 跨平台支持 |
应用场景
QEMU 在以下领域广泛应用:
- 开发和测试:
- 用于测试跨平台软件,确保在不同架构上的兼容性。
- 在嵌入式系统开发中(如 Yocto Project),用于模拟目标硬件。
- 教育:
- 提供一个安全且灵活的环境,学习不同操作系统和架构,适合学生和研究人员。
- 虚拟化:
- 作为 KVM 的用户空间组件,提供虚拟机的设备模拟,是现代虚拟化技术的重要组成部分。
- 硬件/软件协同模拟:
- 用于验证复杂系统的硬件和软件交互,尤其是在多处理器系统(MPSoC)中。
最新动态
- 版本更新:
- 截至 2025 年 4 月 23 日,QEMU 发布了 10.0.0-rc4 版本,包含 2800+ 次提交,涵盖了对新架构的支持和性能优化,
- QEMU 10.0 发布,增强性能,为 ARM、RISC-V 等带来新特性
多功能开源模拟器和虚拟化工具 QEMU 发布了其主要的 10.0 版本,带来了大量新特性和增强功能。本次更新包括针对特定英特尔至强处理器(特别是 Clearwater Forest 和 Sierra Forest v2)的显著性能优化,以及对虚拟化特性(如 virtio-scsi 设备的多个队列)的改进支持。它还引入了 apple-gfx-pci 和 apple-gfx-mmio 设备,为 macOS 虚拟机启用了加速图形。
每个架构都受益于不同的更新。对于 ARM,QEMU 10.0 支持新的 CPU 特性,如 FEAT_AFP、FEAT_RPRES 和 FEAT_XS,安全 EL2 物理和虚拟定时器,多个开发板(例如,Stellaris、NPCM845 Evaluation 和 i.MX 8M Plus EVK),以及配置更大 PCIe MMIO 区域的新选项。然而,就新增功能而言,RISC-V 显然是最大的赢家:支持 Tenstorrent Ascalon 处理器、64 位 initrd 地址、新的 IOMMU 设备、用户模式异常的跟踪支持以及多个新的 ISA 扩展都包含在此版本中。
此次更新还为 HPPA、s390x 和 LoongArch 架构带来了改进。此外,它还增强了 VFIO(虚拟功能 I/O),这是一个允许用户空间应用程序直接访问硬件的 Linux 子系统。值得注意的新增功能包括对 multifd(多线程迁移)、旧版 ATI GPU、初始 PCI PM 功能、英特尔 Gen 11 和 12 芯片的 IGD 直通以及 MMIO 映射失败的更好错误报告的支持。
评论