QEMU—开源的模拟器和虚拟化工具

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

QEMU—开源的模拟器和虚拟化工具插图

定义与核心概念

QEMU 是一个免费且开源的模拟器,支持两种主要模式:

  • 系统模拟:模拟完整的计算机系统,包括 CPU、内存和设备,允许在虚拟环境中运行完整的操作系统,如 Linux、Windows 等。
  • 用户模式模拟:模拟用户空间程序的执行,允许在一种架构上运行为另一种架构编译的应用程序,例如在 x86 电脑上运行为 ARM 编译的程序。

其核心技术是动态二进制翻译(Dynamic Binary Translation),通过将目标架构的指令翻译为宿主机架构的指令,实现高效的模拟。QEMU 还支持多种虚拟化加速器(如 KVM、Xen),进一步提升性能,接近原生硬件的运行速度。

QEMU—开源的模拟器和虚拟化工具插图1

历史与发展

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

QEMU—开源的模拟器和虚拟化工具插图2

主要功能

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 映射失败的更好错误报告的支持。

下载地址
百度云盘
密码:83sp

评论