参考书籍:
《自己动手制作操作系统》
《现代操作系统》
《30天自制操作系统》(主)
github同步更新:https://gitee.com/crazy_git/os.git
环境准备
《30天自制操作系统》中,模拟器为Qemu,但实际上这个用的并不多,并且书中的很多操作现在去做实际上会出现不少的错误。
这里就准备的VM虚拟机作为操作系统的真实模拟,使用boch进行调试(boch不需要像VM那样麻烦,写好配置文件直接运行即可)。
先看一下示例vm安装自己制作的镜像(建议阅读完主书籍的第一天内容后和于渊那本书的第一个启动扇区的编写后进行,不然直接拷贝个软盘进行操作即可):
下图为已经制作好的系统软盘(只有一个启动扇区)。
VM模拟真实机器过程:
VM通过软盘安装操作系统的步骤:
名称和位置根据个人情况填写
最后【关闭】,【完成】。
运行虚拟机,OK:
boch模拟(后面如果需要调试的话boch比较合适)
boch,也是一个模拟器,只是这个还是可以进行调试(debug)的模拟器。
boch的使用很简单,编写自己的配置文件,然后加载这个配置文件进行运行即可。
- 在boch安装路径下下建立一个文件夹(不在这个文件夹下也行),用来存放自己的操作系统和配置环境
bochsrc.bxrc
配置文件的编写
# 内存分配32M
megs:32
# rom, 和操作系统中的rom是一个意思应该,存放指令代码的地方,CPU上电复位自检之后从这开始跑起来
romimage:file=$BXSHARE/BIOS-bochs-latest
# VGA rom, 应该是现存吧
vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
# floppya,主软盘, floppya,floppyb...优先级依次降低
# 下面这行可通过bximage.exe制作软盘镜像自动生成。手动编写和配置需要注意image的路径是否正确
floppya: image="boot.img", status=inserted
# 从软盘启动
boot:floppy
# 日志输出文件位置
log:bochsout.txt
# 不启用鼠标
mouse:enabled=0
# 设置键盘
keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map
- 配置文件中的软盘路径是在和配置文件同一个路径下的,将软盘
boot.img
拷贝进去:
双击配置文件可直接使用bochs加载此配置文件进行启动:
OK,到这基本所有该配置的都配置了,具体的bochs调试操作以后用到再说。
稍微解释一下上面这个图片的文件都是干嘛的: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
,十六进制编辑器,看自己情况用其他的也行