qemu 中文文档 下载 App

QEMU 快速入门:它是什么,能做什么

QEMU 的双重身份

很多人第一次接触 QEMU 时会困惑:它到底是模拟器还是虚拟机管理程序?答案是两者都是,取决于你怎么用它。

身份一:机器模拟器(Emulator)

QEMU 可以完整模拟一台物理机器——CPU、内存、主板、显卡、网卡、磁盘控制器都由软件实现。在这个模式下,它不依赖硬件虚拟化支持,完全靠翻译和模拟工作。

最著名的例子:你在 x86_64 的笔记本上,用 QEMU 模拟一台 ARM64 的 Raspberry Pi,直接在里面跑完整的 Linux 发行版。这种跨架构能力是商业虚拟化软件完全做不到的。

身份二:虚拟化加速器(Hypervisor Accelerator)

当宿主机和虚拟机架构相同时(比如 x86 主机跑 x86 虚拟机),QEMU 可以切换到加速模式——把 CPU 指令直接丢给硬件执行,自己只负责设备模拟。这时候 QEMU 的性能几乎等于物理机上裸跑,而它的角色更接近一个轻量级的虚拟机管理程序。

QEMU 的三种运行形态

形态命令前缀作用典型场景
全系统模拟qemu-system-x86_64模拟完整硬件,可引导操作系统跑另一个 OS、嵌入式开发
用户态模拟qemu-x86_64 / qemu-aarch64只翻译指令,共享宿主机内核跨架构编译、逆向分析
硬件加速模式qemu-system-xxx -accel kvm/hvf架构相同,利用硬件虚拟化日常虚拟化开发环境

三种加速器

QEMU 的性能瓶颈几乎总是在 CPU 模拟上。为了解决这个问题,它支持三种加速器:

Windows 上还有 HAXM(Intel Hardware Accelerated Execution Manager),但 Intel 已停止维护,建议直接用 WHPX。

一个直观的例子

在 Linux x86_64 主机上模拟 ARM64 系统(跨架构,只能用 TCG):

# 下载 Ubuntu ARM64 镜像后,启动模拟
qemu-system-aarch64 \
  -M virt \
  -m 8G \
  -cpu max \
  -cdrom ubuntu-24.04-live-server-arm64.iso \
  -drive file=arm64-disk.qcow2,format=qcow2 \
  -accel tcg,thread=multi \
  -nographic

在同一台主机上加速运行 x86_64 虚拟机(架构相同,用 KVM):

qemu-system-x86_64 \
  -accel kvm \
  -m 8G -smp 4 \
  -cdrom ubuntu-24.04-live-server-amd64.iso \
  -drive file=x86-disk.qcow2,format=qcow2

两条命令看起来类似,但第一条用 TCG 逐条翻译 ARM64 指令,性能慢;第二条直接让物理 CPU 执行 x86 指令,性能接近原生。这就是"模拟器"和"加速器"的本质区别。

下一步

安装 QEMU 之前,建议先看一眼 两种模拟模式 理解原理,然后去 安装指南 选你的平台。