一直以来对操作系统兴趣浓厚,以及对内核的探索促使我一定要手写一个小型的操作系统。当然我这个项目启动也是参考书籍《操作系统真象还原》来一步步完成。环境在很久之前我就已经搭建好了。当时搭建开发环境错漏百出,几经波折后搭建成功。现在我将坚持写下自己项目过程中的感想,困惑以及分享给大家。
开发平台:VM虚拟机中CentOS7.8虚拟机 内核版本:3.10.0-1127.el7.x86_64
开发工具:bochs2.6.2,NASM汇编器,GCC编译器。
开发语言:x86汇编语言,C语言。
如果上述工具都准备充分,那么就可以开始我们的操作系统之旅。接下来尝试运行bochs。看看是否成功。在安装好的bochs目录下输入bin/bochs:
进入bochs,接着我们按下回车,接着输入我们的配置文件bochsrc.disk:
此时选项已经变成了6,这个选项的意思是开始模拟x86硬件平台的意思。按下回车:
我这里跟大家不一样,因为我开始写这篇博客的时候,之前已经写入了BIOS和mbr,很早之前就写好的,以至于我自己都忘记了。如果是第一次做到这会弹出一个白色框框,报的是PANIC级别的错误,没有启动设备。可以参照书本,这里我把虚拟硬盘删除了做的测试:
做到这里其实需要建立一个虚拟硬盘,bochs都替我们做好了,这个工具是/bin/bximage。一些命令列在下方:
-fd 创建软盘
-hd 创建硬盘
-mode 创建硬盘的类型,flat,sparse,growing三种
-size 创建多大的硬盘,以MB为单位。
-q 静默模式创建
接着我们输入一行命令:
bin/bximage -hd -mode="flat" -size=60 -q hd60M.img
文件中就会多出一个我们创建的虚拟硬盘。接着就得在我们的配置文件bochsrc.disk中写入虚拟硬盘的配置:
再次尝试启动:
我这没有跟书本一样是因为我已经写入了BIOS,虽然我删除了写入的代码来做演示写这篇博客,但是数据在里面,因此不一样不用觉得奇怪。下面我们就会进入BIOS专题。