1.bochs安装
官网下载bochs的安装包,后缀名为tar.gz,然后执行下面的命令
1: ? tar vxzf bochs-2.3.5.tar.gz
2: ? cd bochs-2.3.5
3: ? ./configure --enable-debugger --enable-disasm
4: ? make
5: ? sudo make install
如果下载其他的版本,将bochs后面的版本号改一下就好了。
2.bochs的GUI库
1: sudo apt=get install bochs-sdl
3.虚拟软盘镜像
1: bximage
2: fd
3: 1.44
4: a.img
按次序输入上述指令,即可创建一个大小为1.44 MB的虚拟软盘镜像。
4.bochs配置
display_library: sdl
floppya: 1_44=a.img, status=inserted
boot: floppy
将这三行内容新建成一个文件,保存为bochsrc,和a.img、boot.bin放在同一目录下。
之所以没有完全按照书上的配置去写,是因为我按照他的去写会出现一些问题。
5. helloOS
1: org 07c00h ; 告诉编译器程序加载到7c00处
2: mov ax, cs
3: mov ds, ax
4: mov es, ax
5: call DispStr ; 调用显示字符串例程
6: jmp $ ; 无限循环
7: DispStr:
8: mov ax, BootMessage
9: mov bp, ax ; ES:BP = 串地址
10: mov cx, 16 ; CX = 串长度
11: mov ax, 01301h ; AH = 13, AL = 01h
12: mov bx, 000ch ; 页号为0 (BH = 0) 黑底红字(BL = 0Ch,高亮)
13: mov dl, 0
14: int 10h ; 10h 号中断
15: ret
16: BootMessage: db "Hello,?OS?world!"
17: times 510 - ($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
18: dw 0xaa55 ; 结束标志
将上述代码保存为boot.asm文件
6.安装nasm
1: sudo apt-get install nasm
7.汇编boot.asm
1: nasm boot.asm -o boot.bin
8.将boot.bin写到软盘的第一个扇区
1: dd if=boot.bin of=devfd0 bs=512 count=1
这个必须用软盘绝对扇区读写工具进行,因为在普通的读写操作下,第一个扇区是不可见的。
9.启动bochs
shell里面输入bochs即可启动虚拟机bochs,如果bochs具有调试功能,需要先选择数字6,进入模拟选项,再按c即可运行得下图:
走到最后一张界面就说明配置成功了。
时间: 2024-11-07 16:34:28