QEMU 版本历史与发展脉络 2003 到 2026
一句话历史
QEMU 是 Fabrice Bellard 在 2003 年 3 月发布的,从一个简单的 x86 模拟器发展成覆盖 20+ 架构、用户态+系统级+硬件加速三大模式的通用虚拟化基础设施。
关键里程碑
| 时间 | 版本 | 事件 |
|---|---|---|
| 2003-03 | 0.1.0 | 首次发布,Fabrice Bellard 的 x86 模拟器 |
| 2005 | 0.6 | 引入 TCG JIT 翻译引擎,性能大飞跃 |
| 2007 | 0.9 | 支持 KVM(Linux 内核模块),从纯模拟器变成硬件加速器 |
| 2008 | 0.10 | VirtIO 设备标准化(Rusty Russell 设计的半虚拟化协议) |
| 2011 | 1.0.0 | 1.0 发布,核心架构稳定 |
| 2014 | 2.0 | q35 主板、UEFI 引导(OVMF) |
| 2018 | 3.0 | 引入 time-based 版本号(每年主版本 + 月度迭代) |
| 2020 | 5.1 | HVF 加速器支持(Apple macOS) |
| 2022 | 7.0 | Apple Silicon 原生支持 |
| 2024 | 9.0 | MSR 虚拟化改善、机密计算(SEV-SNP、TDX)支持 |
| 2026-04 | 11.0 | nitro 加速器(AWS Nitro Enclaves)、virtio-gpu 改进 |
| 2026-09 | 11.1.x | 当前稳定版 |
六个演进阶段
阶段一:纯软件翻译模拟(2003-2007)
QEMU 诞生时只有 TCG——纯软件翻译,完全没有硬件加速。这时候 QEMU 是一个"快一点的 Bochs",用于跨架构调试和逆向分析。
Fabrice Bellard 的贡献是用 TCG JIT 把模拟速度提高了 10~50 倍——这是 QEMU 能活下来的根本原因。没有 JIT 翻译,完全逐条指令解释的模拟器根本没法实用。
阶段二:KVM 融合奠基(2007-2011)
Linux 2.6.20 引入 KVM 内核模块,QEMU 立刻接上。这个合作改变了 QEMU 的定位:
- 架构相同的 Guest 可以用硬件加速,性能接近原生
- QEMU 自己只做设备模拟和 CPU 状态管理
- 催生了 QEMU + libvirt 生态
阶段三:VirtIO 半虚拟化成熟(2008-2014)
Rusty Russell 设计的 VirtIO 协议让 Guest 知道自己跑在 QEMU 里,用共享内存队列高效通信。virtio-blk、virtio-net、virtio-gpu 逐个成熟,I/O 性能接近物理硬件。
阶段四:q35 与 UEFI(2014-2018)
QEMU 0.x 年代的 pc 主板是模拟 1995 年的 i440FX 芯片组。2014 年引入 q35 主板(模拟 Intel X99),支持 PCIe、NVMe、UEFI。配合 OVMF 固件,QEMU 可以完整引导 Windows 10/11。
阶段五:跨架构大一统 + 云原生(2018-2022)
版本号体系从时间线变化:每年第一个发布主版本,之后每月迭代。架构覆盖稳定在 20+:
- x86/x86_64(PC 世界)
- ARM/AArch64(移动端、服务器、Apple Silicon)
- PowerPC(IBM 服务器)
- SPARC(Oracle 服务器)
- MIPS(路由器、嵌入式)
- RISC-V(开源、新兴)
- LoongArch(龙芯)
云原生场景成熟:Kata Containers、AWS Firecracker 都基于 QEMU。
阶段六:机密计算与云原生轻量化(2022-至今)
最新方向是机密计算:
- Intel TDX(Trusted Domain Extensions)
- AMD SEV-SNP(Secure Encrypted Virtualization)
- ARM Confidential VM
- AWS Nitro Enclaves
以及轻量化:QEMU 被裁剪成 microVM(Kata、Firecracker、Cloud Hypervisor),启动时间降到毫秒级。
社区与生态
- 维护者:核心约 50 人,贡献者超过 2000
- 赞助:Software Freedom Conservancy 托管,Red Hat、Intel、AMD、Google、AWS、Apple 都有赞助
- 上游协作:和 Linux 内核、libvirt、qemu-announce、virtio-spec 等多个上游项目紧密协作
- 许可:GPL v2(系统模拟)、LGPL(用户态模拟)、BSD(部分前端)
版本号解读
从 3.0 起用时间版本:
主版本号(每年第一版).次版本号(从 git master 每月迭代).补丁(稳定分支修复)
示例:
11.0.0→ 2026 年第一主版本11.1.2→ 2026 年 11.1 分支的第 2 个补丁
长期支持(LTS)版本每两年选一次:4.x、6.x、8.x、10.x…
下一步
历史看完了,想参与 QEMU 开发?去 参与贡献与学习资源。