前期准备
需要实现了WSL2安装图形化界面,教程
安装依赖
sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev libsdl1.2-dev bximage vgabios
安装gcc和nasm
sudo apt-get install build-essential nasm
安装bochs
下载最新版本的bochs,笔者时2.6.11版本:
wget https://sourceforge.net/projects/bochs/files/bochs/2.6.11/bochs-2.6.11.tar.gz
解压并进入该目录:
tar zxvf bochs-2.6.11.tar.gz
cd bochs-2.6.11/
执行配置文件如下:
./configure --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11
--enable-debugger
:打开 bochs 自己的调试器
--enable-disasm
:使 bochs 支持反汇编
--enable-iodebug
:启用 io 接口调试器
--enable-x86-debugger
:支持 x86 调试器
--with-x
:使用X Windows
--with-x11
:使用X11 图形用户接口
编译并安装:
make
sudo make install
使用bochs
命令若出现bochs相关信息则表示安装成功。
测试
新建一个名为boot.asm
的文件并添加如下内容:
org 07c00h
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 –o boot.bin # 生成引导文件
nasm boot.asm –o boot.com # 生成com文件
使用bximage
生成一个虚拟软驱
,如下:
接着写引导盘
,使用如下命令:
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
编写bochs的模拟配置文件,创建名为bochsrc
的文件,内容如下:
megs: 32 # 内存大小32M
romimage: file=$BXSHARE/BIOS-bochs-latest, options=fastboot
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
floppya: 1_44=a.img, status=inserted # 软驱大小和软驱路径
boot: floppy
log: bochsout.txt # 日志文件
mouse:enabled=0
启动图形化界面后在当前工作目录下使用如下命令开启测试:
bochs # `bochs -f bochsrc`命令指定bochsrc的模拟配置文件
启动后输入字符c
截断后运行,得到结果如下:
观察到成功执行我们的小系统。