Bochs 安装

环境

OSX Catalina

安装指令

最开始尝试下载 bochs 的源码编译安装,但是提示找不到 <linux/type.h> 头文件。后来查找资料,发现使用 brew 即可安装 bochs

brew install bochs

安装完成后,可以执行 bochs,打印出出错信息,说明 bochs 已经安装成功。

配置bochs

配置文件:bochsrc.disk

megs: 32

romimage: file=$PATH/bochs-2.6.10/bios/BIOS-bochs-latest
vgaromimage: file=$PATH/bochs-2.6.10/bios/VGABIOS-lgpl-latest

boot: disk

log: bochs.out

mouse: enabled=0

keyboard: keymap=$PATH/bochs-2.6.10/gui/keymaps/sdl2-pc-us.map

ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

#gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

上述参数具体解释在后面已经说明,需要注意的是一些配置文件需要指定路径,使用 brew 方式安装的 bochs 没有这些文件(或者我没有找到...),因此可以下载 bochs 的源码,按上述中的路径找到后配置在文件中。

运行 bochs

当配置完成后,可以运行 bochs 命令来启动

bochs -f bochsrc.disk

运行后,按 C 键,系统将会跳出 bochs 的 UI 窗口,如下图所示,可以看到 No bootable device.的错误,这是由于没有指定启动盘。

指定启动盘

要指定启动盘,首先要有一个启动盘。安装 bochs 的时候,会自带一个制作 image 的工具:bximage

运行bximage 命令后,选择创建默认 IMG,输入一些配置以及输出路径即可(可以都按默认配置),生成 IMG 文件成功后,bximage 会贴心的告诉你

The following line should appear in your bochsrc:
  ata0-master: type=disk, path="c.img", mode=flat

将这一行添加到配置文件中,再次启动 bochs,按 C 运行。可以看到依然显示 No bootable device,但错误原因已经变了。

这次是因为img 中没有可以启动的代码,接下来就去编写 MBR 引导程序吧。