-
安装 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 生成操作系统的二进制代码。首先需要安装 nasmbrew 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
结果显示
-
项目目录结构如下