工具
QEMU 机器与用户态模拟器
机器级与用户态模拟器,借助 TCG 动态翻译,在一种 CPU 架构上运行为另一种架构编译的代码。系统模拟可完整模拟一台机器,例如在 x86_64 PC 上运行 ARMv7 开发板;用户态模拟则通过转换系统调用,直接运行为其他 ABI 编译的 Linux 或 BSD 程序。在分析方面,gdbstub 允许用 GDB 暂停客户机、查看寄存器和内存、设置断点与观察点;TCG 插件能以被动方式插桩,粒度可细到单条指令和每次内存访问(自带示例可统计指令数、跟踪系统调用和记录执行过程);系统模拟还支持确定性执行,便于录制/回放调试。
- 目标
- 二进制 · 固件
- 类别
- 调试与动态分析
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 前提条件:可在主流 Linux、macOS、通过 Mingw64 工具链的 Windows 以及其他多种 Unix 系统上构建(mkdir build、../configure、make)。上游仓库为 gitlab.com/qemu-project/qemu;GitHub 上的是只读镜像,并建议用户从 QEMU 官网获取发布源码包。审阅时最新的标签为 v11.1.3,所在提交的日期为 2026-10-28。
- 局限:用户态模拟只支持 Linux 和 BSD 的系统调用接口,不模拟任何硬件;各客户机架构分别支持系统模拟、用户态模拟或两者兼有。TCG 插件只观察客户机状态而不修改它,自带的系统调用插件仅适用于用户态模式。配合 KVM 或 Xen 使用时,由虚拟机监控器执行 CPU 指令,QEMU 负责提供模拟硬件。
- 许可:QEMU 整体采用 GPL-2.0 许可,各组件的许可细节见 LICENSE 文件。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- https://gitlab.com/qemu-project/qemu/-/blob/f71afb409a87c4ecd0f9d63a5963eb645dfab780/README.rst
- README.rst GitHub · qemu/qemu · 修订 f71afb4
- https://gitlab.com/qemu-project/qemu/-/blob/f71afb409a87c4ecd0f9d63a5963eb645dfab780/docs/system/gdb.rst
- https://gitlab.com/qemu-project/qemu/-/blob/f71afb409a87c4ecd0f9d63a5963eb645dfab780/docs/about/emulation.rst
- https://gitlab.com/qemu-project/qemu/-/blob/f71afb409a87c4ecd0f9d63a5963eb645dfab780/docs/user/main.rst
- https://gitlab.com/qemu-project/qemu/-/blob/f71afb409a87c4ecd0f9d63a5963eb645dfab780/LICENSE
- https://www.qemu.org/docs/master/