QEMU(Quick Emulator)是一款开源的硬件虚拟化和仿真工具,支持多种 CPU 架构的模拟。它的发展历史可以追溯到 2000 年代初,以下是其关键里程碑:
1. 起源(2003 年)
-
创始人:法国程序员 Fabrice Bellard(也是 FFmpeg、TinyCC 的开发者)。
-
初始目标:提供一种高效的全系统模拟器,能够在 x86 主机上运行不同架构(如 ARM、PowerPC)的程序。
-
2003 年 2 月:QEMU 0.1.0 发布,支持 x86、ARM、PowerPC、SPARC 等架构的动态二进制翻译(Dynamic Binary Translation, DBT)。
2. 早期发展(2004–2007)
-
2005 年:引入 KQEMU(内核加速模块),提升 x86-on-x86 虚拟化性能(后因 GPL 兼容性问题被废弃)。
-
2007 年:QEMU 0.9.0 发布,支持 KVM(Kernel-based Virtual Machine),成为 Linux 虚拟化的核心组件。
3. 与 KVM 深度整合(2008–2012)
-
2008 年:QEMU 成为 KVM 的默认用户空间组件,提供完整的虚拟化解决方案(KVM 负责 CPU 虚拟化,QEMU 负责设备模拟)。
-
2011 年:QEMU 1.0 发布,标志其进入稳定阶段,支持 PCIe 直通(VFIO) 和 多架构并行模拟。
4. 现代功能扩展(2013–2020)
-
2013 年:引入 TCG(Tiny Code Generator),替代旧版动态翻译器,提升跨架构模拟效率。
-
2015 年:QEMU 2.4 支持 ARM 64 位(AArch64) 和 RISC-V 架构。
-
2018 年:QEMU 3.0 引入 MicroVM 模式(轻量级虚拟化),优化启动速度和内存占用。
-
2020 年:QEMU 5.0 支持 Apple Silicon (M1) 模拟,并改进 NVMe 和 USB 4.0 设备模型。
5. 近期发展(2021–至今)
-
2021 年:QEMU 6.0 引入 RISC-V 矢量扩展(V Extension) 和 Intel SGX 支持。
-
2022 年:QEMU 7.0 优化 ARM SVE2 和 x86 AMX 指令集模拟。
-
2023 年:QEMU 8.0 支持 LoongArch 和 更多安全特性(如 TPM 2.0)。
-
2024 年:QEMU 9.0 改进 GPU 虚拟化(VirGL) 和 Cloud Hypervisor 集成。
6. QEMU 的主要技术贡献
技术 | 作用 |
---|---|
动态二进制翻译(DBT) | 跨架构运行二进制程序(如 ARM 程序跑在 x86 上) |
KVM 整合 | 实现高性能 Linux 虚拟化 |
TCG(Tiny Code Generator) | 替代旧版翻译器,提升效率 |
设备模型 | 模拟网卡、GPU、存储控制器等硬件 |
用户模式模拟 | 直接运行不同架构的单个程序(如 qemu-arm ./hello ) |
7. QEMU 的现状
-
应用场景:
-
云计算(KVM/QEMU 组合驱动 AWS、Google Cloud 等)。
-
嵌入式开发(模拟 Raspberry Pi、ESP32 等设备)。
-
安全研究(分析恶意软件或逆向工程)。
-
-
竞争对手:
-
VMware(闭源商业方案)。
-
VirtualBox(轻量级但性能较低)。
-
Firecracker(专为微服务优化的轻量级虚拟化)。
-
总结
-
2003 年:Fabrice Bellard 创建 QEMU,目标是一个通用的模拟器。
-
2007 年:与 KVM 结合,成为 Linux 虚拟化的基石。
-
2010s:支持 ARM、RISC-V 等现代架构,优化性能。
-
2020s:向云原生、安全性和新硬件(如 RISC-V、M1)扩展。
QEMU 的成功在于其 开源、跨架构、高度可扩展 的特性,至今仍是虚拟化和嵌入式开发的标杆工具。