环境
- Ubuntu20.04
- Bochs 2.7
注:Ubuntu20 软件库中的Bocrchs版本是2.6
下载
安装
安装依赖
$ sudo apt update
$ sudo apt-get install libx11-dev libc6-dev build-essential xorg-dev libgtk2.0-dev libreadline-dev
配置
解压
$ tar xvf bochs-2.7.tar.gz
$ cd bochs-2.7
配置
$ sudo ./configure --with-x11 --with-x --enable-all-optimizations --enable-readline --enable-debugger-gui --enable-x86-debugger --enable-a20-pin --enable-fast-function-calls --enable-debugger
可能会出现下面的错误提示,目前在我使用的环境中忽略该错误可以正常安装
error: cannot find input file: `ltdlconf.h.in'
编译安装
如果之前编译过但是没有成功,需要执行下面的命令清理编译的文件
$ make clean
正常编译安装
$ make
$ sudo make install
测试
写一段汇编引导程序测试bochs,
; boot.asm
[org 0x7c00]
mov ax, 3
int 0x10
mov ax, 0
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7c00
mov ax, 0xb800
mov ds, ax
mov byte [0], 'H'
jmp $
times 510 - ($ - $$) db 0
db 0x55, 0xaa
安装汇编编译器NASM
$ sduo apt install nasm
编译
$ nasm -f bin boot.asm -o boot.bin
创建磁盘引导镜像文件
$ bximage -q -hd=16 -func=create -sectsize=512 -imgmode=flat master.img
创建完成后的提示信息中最后一段记录下来,在bochs的配置文件中需要使用
将 boot.bin 写入到主引导扇区
$ dd if=boot.bin of=master.img bs=512 count=1 conv=notrunc
配置bochs
$ bochs
输入"4" 回车
接着输入配置文件的名称
修改生成的配置文件 bochsrc
,其中第二处的修改是我们之前生成镜像文件是保存的信息
启动bochrs
$ bochs -q
输出一个字符H