参考书籍:
《自己动手制作操作系统》
《现代操作系统》
《30天自制操作系统》(主)

github同步更新:https://gitee.com/crazy_git/os.git

环境准备

《30天自制操作系统》中,模拟器为Qemu,但实际上这个用的并不多,并且书中的很多操作现在去做实际上会出现不少的错误。

这里就准备的VM虚拟机作为操作系统的真实模拟,使用boch进行调试(boch不需要像VM那样麻烦,写好配置文件直接运行即可)。

先看一下示例vm安装自己制作的镜像(建议阅读完主书籍的第一天内容后和于渊那本书的第一个启动扇区的编写后进行,不然直接拷贝个软盘进行操作即可):
下图为已经制作好的系统软盘(只有一个启动扇区)。
image.png

VM模拟真实机器过程:

VM通过软盘安装操作系统的步骤:
image.png
image.png
image.png
名称和位置根据个人情况填写
image.png
image.png
image.png

image.png

image.png
最后【关闭】,【完成】。

运行虚拟机,OK:
image.png

boch模拟(后面如果需要调试的话boch比较合适)

boch,也是一个模拟器,只是这个还是可以进行调试(debug)的模拟器。
boch的使用很简单,编写自己的配置文件,然后加载这个配置文件进行运行即可。

  1. 在boch安装路径下下建立一个文件夹(不在这个文件夹下也行),用来存放自己的操作系统和配置环境

image.png
image.png

  1. bochsrc.bxrc配置文件的编写

参考博客:
https://blog.csdn.net/chprain/article/details/79328673/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.control&spm=1001.2101.3001.4242
bochs中的示例也可结合着看

  1. # 内存分配32M
  2. megs:32
  3. # rom, 和操作系统中的rom是一个意思应该,存放指令代码的地方,CPU上电复位自检之后从这开始跑起来
  4. romimage:file=$BXSHARE/BIOS-bochs-latest
  5. # VGA rom, 应该是现存吧
  6. vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
  7. # floppya,主软盘, floppya,floppyb...优先级依次降低
  8. # 下面这行可通过bximage.exe制作软盘镜像自动生成。手动编写和配置需要注意image的路径是否正确
  9. floppya: image="boot.img", status=inserted
  10. # 从软盘启动
  11. boot:floppy
  12. # 日志输出文件位置
  13. log:bochsout.txt
  14. # 不启用鼠标
  15. mouse:enabled=0
  16. # 设置键盘
  17. keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map
  1. 配置文件中的软盘路径是在和配置文件同一个路径下的,将软盘boot.img拷贝进去:

image.png
双击配置文件可直接使用bochs加载此配置文件进行启动:
image.png
OK,到这基本所有该配置的都配置了,具体的bochs调试操作以后用到再说。

稍微解释一下上面这个图片的文件都是干嘛的:
image.png
bochsrc.bxrc,bochs配置文件
boot.bin,启动扇区编译后的二进制文件
boot.img,操作系统软盘文件,大小为1.44MB,前512字节(启动扇区)为boot.bin文件的内容。上面的操作用到这个。后续这个软盘将会按照《30天自制操作系统》写的镜像
dd.exe,和linux上的dd类似,随便写的一个二进制文件拷贝工具
write.bat,方便文件读写而写的一个批处理程序。

其他需要用到的工具

nasm,需要编译汇编程序,使用nasm编译器
gcc,后续需要使用c语言编写程序(嫌配置麻烦直接装个devcpp即可)
VSCode,主要使用的编辑器
HexWork,十六进制编辑器,看自己情况用其他的也行