bochsrc 配置文件总览——Bochs 行为的全部控制入口
bochsrc 是什么
Bochs 的一切运行时行为都由一个纯文本配置文件 bochsrc(无扩展名)控制。当你启动 bochs 或 bochsdbg 时,它会按固定顺序搜索这个文件,找到后逐行解析关键字段。
bochsrc 不是"配置向导"那种傻瓜式界面——它需要你知道自己在配什么。这是 Bochs 的有意设计:OS 开发者和底层程序员需要对硬件模型有精确的控制,bochsrc 就是这种精确控制的载体。
Bochs 如何找到 bochsrc
搜索顺序(Linux / macOS):
- 命令行
-f <filename>指定的路径 - 当前目录的
bochsrc - 当前目录的
bochsrc.linux(平台特化版) $HOME/.bochsrc- 安装目录下的
share/bochs/bochsrc
Windows 上类似,只是平台特化版变成 bochsrc.win。
官方安装包会附带一份带完整注释的 bochsrc.bxrc(Bochs Launcher 编辑器用的格式,本质和 bochsrc 完全相同,只是每行前可能有 Launcher 特化的前缀注释)。
bochsrc 语法规则
每行一个配置项,格式:
关键字: 值
硬性规则:
- 冒号后面必须有一个空格——
romimage: file=...正确,romimage:file=...报语法错误 - 值可以是带等号的键值对,也可以是简单参数
- 行首
#是注释,空白行忽略 - Windows 路径可以用正斜杠
/或双反斜杠\\,单反斜杠会被当转义符 - bochsrc 支持条件编译:
if [...]; else; endif;但新手不需要
bochsrc 核心字段一览
按功能分组的关键字段,每个字段后面标注详情在本站哪个页面:
BIOS 相关
| 关键字 | 必填 | 说明 |
|---|---|---|
romimage: | ✅ | 系统 BIOS 镜像路径和加载地址 |
vgaromimage: | ✅ | VGA BIOS 镜像路径 |
optromimage: | 可选 | 可选 ROM(如网卡 Option ROM) |
→ 详情见 ROM 与 VGA BIOS 镜像
CPU 与内存
| 关键字 | 必填 | 说明 |
|---|---|---|
cpu: | ✅ | CPU 型号、核心数、IPS(每秒指令数) |
memory: | ✅ | 客户机内存大小(MB),以及宿主机分配 |
→ 详情见 内存与 CPU 配置
磁盘与存储
| 关键字 | 必填 | 说明 |
|---|---|---|
ata0-master: | 常用 | 第一 IDE 主盘(硬盘) |
ata0-slave: | 可选 | 第一 IDE 从盘 |
ata1-master: | 可选 | 第二 IDE 主盘(常用作光盘) |
floppyA: | 可选 | 软盘 A 驱动器 |
boot: | ✅ | 启动顺序:floppy / disk / cdrom / network / none |
显示与输入
| 关键字 | 必填 | 说明 |
|---|---|---|
vga: | ✅ | VGA 显卡型号(cirrus / std / s3)和刷新频率 |
display_library: | ✅ | 前端(wx / sdl / x11 / win32 / term) |
keyboard: | ✅ | 键盘布局(us / cn / ...) |
mouse: | ✅ | 是否启用鼠标 |
硬件扩展
| 关键字 | 可选 | 说明 |
|---|---|---|
pci: | 可选 | PCI 芯片组和设备插槽 |
ne2k: / e1000: | 可选 | 网卡配置 |
sb16: / es1370: | 可选 | 声卡配置 |
usb: | 可选 | USB 控制器和设备 |
日志与调试
| 关键字 | 可选 | 说明 |
|---|---|---|
log: | 可选 | 日志文件路径 |
debug: / info: / warn: / error: / panic: | 可选 | 各级别事件处理策略 |
debugger_log: | 可选 | 调试器命令日志 |
magic_break: | 可选 | magic break 值(触发调试器) |
插件(如果编译时启用)
| 关键字 | 可选 | 说明 |
|---|---|---|
load: | 可选 | 加载 Bochs 插件 |
推荐编译时禁用插件(--disable-plugins),bochsrc 会干净很多。
示例:一份实用的 bochsrc
下面是 OS 开发者常用的配置——带 64MB 内存、一个 60MB flat 磁盘、Cirrus VGA、Intel 440FX PCI 芯片组:
# bochsrc for OS development
romimage: file=BIOS-bochs-latest, address=0xfffe0000
vgaromimage: file=VGABIOS-lgpl-latest-cirrus.bin
cpu: model=pentium4, count=1, ips=10000000
memory: guest=64, host=64
ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16, spt=63
boot: disk
vga: extension=cirrus, update_freq=5
pci: enabled=1, chipset=i440fx, slot1=cirrus
keyboard: keymap=us
mouse: enabled=0
display_library: sdl
log: bochsout.txt
panic: action=ask
debug: action=ignore
info: action=report
warn: action=report
error: action=report
保存为 bochsrc 放在和 hd60M.img 同目录,运行 bochsdbg -q 即可。
bochsrc 与 bochsrc.bxrc 的关系
bochsrc.bxrc 是 Bochs Launcher GUI 编辑器保存的配置文件。本质上它就是一份 bochsrc,只是 Launcher 在每行前面加了一些 GUI 注释标记(如 ## @LBOCHS_STARTUP)。两者可以互相转换——直接用文本编辑器改 bochsrc.bxrc 就能当 bochsrc 用,反过来也一样。
对于新手,先用 Launcher 编辑 bochsrc.bxrc 再保存为 bochsrc 是个不错的起步方式。熟练后直接手写 bochsrc 更快、更灵活。