在查看geekos/src/project0/build/makefile文件时,看到如下两句:
fd.img : geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin
cat geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin > $@
上面语句用cat命令把引导记录(fd_boot.bin),加载程序(setup.bin)以及内核程序(kernel.bin)连接在一起,并生成了软盘镜像文件fd.img。说明cat命令可以把引导记录写入虚拟软盘(软盘镜像文件)的第一个扇区。
而《自己动手写操作系统》的作者在生成引导记录(boot.bin)后,用自己写的工具floppywriter.exe 将boot.bin 写入一个空的软盘镜像文件中去(需要自己提前创建一个软盘镜像文件),具体步骤参考“创建虚拟机运行最小OS”。
相比而言,用cat命令的方式更简单一些,我尝试着用cat命令将《自己动手写操作系统》中的boot.bin直接生成软盘镜像文件,并在虚拟机下加载运行,步骤如下:
1. 将boot.bin 从windows中拷贝到ubuntu虚拟机中,比如Documents目录中。
2. 在命令行下,进入Documents目录,键入命令:
cat boot.bin > test.img
则在Doucments目录中生成test.img文件。
3. 在VM中创建一个新的虚拟机(比如名称为cattest),不安装任何操作系统。
4. 将test.img拷贝到新建虚拟机所在的文件夹中(我的机子上是:文档/Virtual Machines/cattest)。也可以放在别的地方,但是放在该文件夹下比较清楚易懂。
5. 单击cattest虚拟机,并进入“编辑虚拟机设置”。
6. 给cattest添加软盘,选择“使用软盘映像文件”,点击“浏览”,选择test.img。
7. 运行虚拟机cattest。