Mac 中安装 bochs 并启动

安装 bochs

直接使用 brew 进行安装,若没有下载 brew 工具, 参见 https://brew.idayer.com

brew install bochs

==> Fetching dependencies for bochs: libtool and sdl2

会自动安装 libtool 和 sdl2 工具,安装成功后默认安装目录为: /usr/local/Cellar/bochs/2.8

创建软盘

首先进入项目目录,输入如下命令

bximage

编写汇编代码

代码如下,存储为 boot.asm 文件

org 7c00h

mov ax, cs

mov ds, ax

mov es, ax

call DispStr

jmp $

DispStr:

mov ax, BootMessage

mov bp, ax

mov cx, 16

mov ax, 01301h

mov bx, 000ch

mov dl, 0

int 10h

ret

BootMessage: db "Hello OS World"

times 510 - ($-$$) db 0

dw 0xaa55

编译汇编代码

我们使用 nasm 来汇编 boot.asm 生成操作系统的二进制代码。首先需要安装 nasm

brew install nasm

进入项目目录,并使用如下命令生成 boot.bin文件

nasm boot.asm -o boot.bin

将编译后的代码写入软盘中

使用如下命令,把 bin 文件(512 字节)写入 a.img 软盘中

dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

注意 boot.bin 和 a.img 文件必须在项目目录下

配置启动信息

找到bochs安装目录下的配置路径:/usr/local/Cellar/bochs/2.8/share/doc/bochsrc-sample.txt

关于配置路径问题,标志就是找到bochsrc-sample.txt该文件。不同的电脑、不同的bochs版本可能会有区别。

拷贝 bochsrc-sample.txt 文件,并重命令为 bochsrc, 加入如下配置

display_library: sdl2

romimage: file=$BXSHARE/BIOS-bochs-latest, options=fastboot

vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

mouse: enabled=0

floppya: 1_44=a.img, status=inserted

boot: floppy

log: bochsout.txt

logprefix: %t%e%d

# memory: guest=512, host=256, block_size=512

启动bochs

输入启动命令 bochs -f bochsrc

结果显示

项目目录结构如下

项目地址