Windows XP 在 Bochs 里的 SMP 双核体验与驱动配置
bochsrc 推荐配置
Windows XP 需要比 Win9x 更高的配置:
romimage: file=BIOS-bochs-latest, address=0xfffc0000
vgaromimage: file=VGABIOS-lgpl-latest-cirrus.bin
# Pentium 4 双核(SMP)
cpu: model=pentium4, count=2, ips=15000000, quantum=250
memory: guest=256, host=256
# 硬盘 2GB flat(bximage 创建)
ata0-master: type=disk, path="winxp.img", mode=flat, cylinders=1632, heads=255, spt=63
ata1-master: type=cdrom, path="winxp-sp3.iso", status=inserted
boot: cdrom, disk
vga: extension=cirrus, update_freq=5
pci: enabled=1, chipset=i440fx, slot1=cirrus, slot2=usb_uhci, slot3=e1000
keyboard: keymap=us
mouse: enabled=1
display_library: wx
usb_uhci: enabled=1
usb_mouse: enabled=1
e1000: enabled=1, mac=00:40:3c:00:00:02, ethmod=slirp
log: bochsout.txt
panic: action=ask
为什么要双核 + E1000
- 双核 Pentium 4:XP 是第一个支持 SMP 的消费级 Windows——配置双核可以体验多核调度(虽然 SMP 在 Bochs 里模拟开销不小)。Bochs 甚至可以模拟 8 核,但 XP 最多利用 2 核
- E1000 网卡:XP 自带 Intel 82540EM 驱动,比 NE2000 的驱动更完善、速度更快
- USB:XP 支持 USB 设备,USB 鼠标比 PS/2 更可靠
- ES1370 声卡(可选):如果想有声音输出,ES1370 是 Bochs PCI 声卡里 XP 驱动最好的
- 内存 256MB:XP 在 128MB 下可以启动但会频繁 swap,256MB 才流畅
安装流程
和真实机器一样:
- 创建 2GB flat 磁盘(上面 bochsrc 里的 C/H/S 是参考值,bximage 创建时会输出)
- 插入安装光盘 ISO(XP SP3 推荐)
- Bochs 启动,BIOS 检测到光盘 → 进入 XP Setup
- Fdisk 分区 + Format NTFS(XP 默认用 NTFS)
- Setup 安装文件复制(Bochs 里复制会比真实机器慢很多——解释执行的代价)
- 硬件检测 + 驱动安装(XP 自动识别 Cirrus VGA、E1000、USB、ES1370)
- 配置网络、管理员密码、时区
- 重启 → 桌面
安装时间在 Bochs 里可能需要 30-60 分钟(真实机器 20 分钟左右)——取决于宿主 CPU 性能。
驱动自动识别情况
| 设备 | XP 自带驱动 | bochsrc 配置 |
|---|---|---|
| Cirrus VGA | ✅ 自带(GD5446) | vga: extension=cirrus + PCI slot1 |
| E1000 网卡 | ✅ 自带(82540EM) | e1000 + PCI slot3 |
| UHCI USB | ✅ 自带 | usb_uhci + PCI slot2 |
| ES1370 声卡 | ✅ 自带(AudioPCI) | es1370 + PCI slot4 |
| SB16 声卡 | ✅ 自带(ISA) | sb16(不插 PCI 槽) |
| PS/2 键鼠 | ✅ 自带(Bochs 默认模拟) | mouse: enabled=1 |
| AHCI SATA | ✅ 自带(较新) | ahci + PCI slot5 |
Bochs 的硬件枚举非常接近真实 PC——XP 安装程序能正确识别大部分设备、安装对应驱动、自动配置资源。
XP 里的性能
坦率说:XP 在 Bochs 里跑起来很顺畅,但不如 VirtualBox 快。Bochs 的解释执行让整体速度只有真实硬件的 1-5%(取决于宿主 CPU)。
能流畅做的事:
- 打字、浏览文档、上网(slirp NAT)
- 跑 Office XP(Word/Excel 2002)
- 听音乐(ES1370)、看视频
- 编译小型 C 项目(Borland C++、MinGW)
- 运行 Win32 原生软件(只要不依赖 3D)
不适合:
- 3D 游戏(Bochs 不支持硬件 3D 加速——OpenGL/DirectX 都是纯软件模拟)
- 需要高性能的开发任务(大型项目编译、IDE 多开)
- 长时间运行的服务器应用(CPU 模拟开销高)
Windows Update 和安全补丁
XP 已经停止官方支持。Bochs 里跑 XP 不要直接连公网——XP 没有安全更新,slirp NAT 虽然隔离了外面主动连进来,但里面主动出去还是可能被恶意网站利用。
XP + Bochs 的价值在哪
- 教学:在 Bochs 里调试 XP 的引导过程(BOOT.INI → NTLDR → NTOSKRNL),这是经典的 Windows 内核入门路径
- 逆向:XP 是最后一代能被轻易逆向的 Windows(驱动签名强制在 Vista 才引入),Bochs 的调试器让你可以在 XP 内核里设断点
- 怀旧:Office XP、Winamp 5.x、IE 6 这些经典软件的完整体验

SMP 双核的验证
配置了 cpu: count=2 后,XP 任务管理器里应该能看到两个 CPU 使用图。你可以在 Bochs 里验证双核调度:
- XP 里打开任务管理器 → 性能 → 看两个 CPU 历史
- Bochs 里运行
cpu quantum=250(默认) - 打开两个计算密集型进程 → 两个 CPU 应该同时高负载
如果只看到一个 CPU 图,说明 XP 安装时只识别了单核——需要在设备管理器里手动更新 CPU 驱动为 ACPI Multiprocessor PC。