Bochs x86 全系统模拟器——精度优先的内核调试与经典系统运行工具
关于本站:第三方整理的中文文档站,非官方页面;内容来自公开资料整理,功能与界面以官方最新版为准。
这是什么
Bochs 是一个用 C++ 编写的开源 IA-32(x86)全系统模拟器。它不依赖硬件虚拟化,在软件层面完整模拟从 Intel 386 到最新 x86-64 的每一条 CPU 指令、常见 I/O 设备和自定义 BIOS——这意味着它可以在几乎任何平台上运行,让你在一台机器里面拥有一台完整的 x86 PC。
与 QEMU 的"速度优先、精度次之"路线不同,Bochs 的设计哲学是精度优先——每条指令逐条解释执行,寄存器状态、中断时序、内存访问都与真实硬件行为严格一致。这种取舍让 Bochs 非常慢,但换来了一个杀手级特性:内置指令级调试器,可以在任意地址下断点、检查每一个寄存器、追踪每一条指令的执行。
这种精度 + 调试能力的组合,让 Bochs 成为操作系统内核开发者、汇编语言教师、逆向工程师的刚需工具,也是众多经典系统爱好者在现代设备上跑 DOS / Windows 95 / XP 的选择。

产品档案速览
| 项目 | 内容 |
|---|---|
| 最新版 | Bochs 3.1(2026 年 8 月发布) |
| 开发语言 | C++ |
| 授权 | GNU Lesser General Public License (LGPL) |
| 架构覆盖 | x86(386 ~ Pentium 4)、x86-64(AMD64/EM64T)、可选 VMX 扩展 |
| 宿主平台 | Windows、Linux(多种发行版)、macOS、FreeBSD、NetBSD、OpenBSD、Solaris、其他 |
| 典型用途 | OS 内核开发调试、汇编/底层教学、老旧系统兼容运行、安全逆向分析 |
| 硬件模拟 | CPU、内存、PCI 总线、VGA、NE2000/E1000 网卡、USB(OHCI/UHCI/EHCI/xHCI)、SB16/ES1370 声卡 |
| 开发者 | 开源社区(原作者 Kevin Lawton,现由项目组维护) |
| 项目地址 | SourceForge(主站)+ GitHub(源码仓库 bochs-emu/Bochs) |

结构导览
本站围绕 Bochs 的两大核心使用场景组织内容:OS 开发调试和经典系统兼容运行。无论你是写 Bootloader 的底层程序员,还是想在新电脑上跑一盘老 DOS 游戏,都能在这里找到对应的配置和使用指南。
模拟环境搭建
第一次接触 Bochs 先从这里开始——了解它和 QEMU / VirtualBox 的区别,安装二进制包或从源码编译一个带调试器的版本,跑起你的第一个模拟环境。
- 什么是 x86 全系统模拟 — 为什么 Bochs 选择"精度优先"
- 与其他模拟器的定位对比 — Bochs / QEMU / VirtualBox 各有什么不同
配置体系
Bochs 的一切行为都由 bochsrc 配置文件控制。ROM BIOS、磁盘镜像、启动顺序、内存大小、日志级别——全在这里定义。改好一份 bochsrc,你的模拟机就活了。
- bochsrc 配置总览 — 核心关键字段快速过一遍
- ROM 与 VGA BIOS 镜像 — 没有 BIOS,机器点不亮
- 启动顺序配置 — 从硬盘、软盘还是光盘启动
硬件模型
Bochs 模拟了哪些硬件?CPU 指令覆盖到什么程度?支持什么显卡、网卡、声卡?这组逐一拆解。
磁盘镜像
磁盘镜像是 Bochs 里"硬盘"的载体。bximage 工具负责创建、转换、调整大小,支持 flat / sparse / VMDK / VHDX 等多种格式。
- bximage 工具概览 — 交互式还是命令行两种模式
调试器(Bochs 的灵魂)
如果你是 OS 开发者,这组内容是你的核心刚需。内置调试器支持地址断点、寄存器检查、内存查看、反汇编、单步执行——在 0x7c00 给 Bootloader 下断点是经典入门操作。
OS 开发实战
把调试器的能力用在实际场景中——调试 Bootloader、追踪内核早期启动、观察中断处理、逐步验证页表逻辑。
- 调试 Bootloader — 0x7c00 断点 + 引导扇区追踪
- 内核早期启动调试 — 从实模式到保护模式
经典系统运行
不想写操作系统?只想在新电脑上跑一盘老游戏?这组内容覆盖 DOS 经典游戏、Windows 95/98/ME、Windows XP、以及 Linux 发行版实验。
- DOS 经典游戏运行 — Doom 在 Bochs 里跑得怎么样
- Windows XP 体验 — SMP 双核 Bochs + Windows XP

疑难排查
黑屏、启动失败、BIOS 报错、配置文件语法错误——遇到问题先到这里看,覆盖 Bochs 新手最常踩的坑。