前言
大一在某个机缘巧合下我接到了自己实现一个简易的操作系统的这个任务。经过大一一年对C语言和Linux系统的学习,进入大二以后,我便开始看操作系统相关的书籍。事实上,一个本科生实现一个简单的操作系统这件事许多人都做到了,网上有很多这方面的资料,也有相关书籍。不过,在我看了一部分书籍以后,我仍然觉得这不是一件易事。因此我决定记录写操作系统的过程。这些记录也可以看做是学习笔记及整理。
非常感谢郑钢大大写的《操作系统真象还原》,正是这本书带我走进了操作系统的世界。作者非常贴心,语言朴实有趣。我的操作系统也可以相当于对他写的复刻。
豆瓣链接
![](https://img.haomeiwen.com/i10732246/c6cab6b836afd5d7.jpg)
此外还有赵炯所著的《Linux内核完全注释》
![](https://img.haomeiwen.com/i10732246/a687b84e989351ab.jpg)
编译器
由于本人能力有限,MoonOs的开发将使用C语言和汇编语言来完成。编译器为GCC和NASM。
选择NASM是因为我的电脑系统为Archlinux,在Linux系统上,NASM更为方便,并且NASM语法与Intel语法也很接近。
虚拟机
我选择的虚拟机为bochs。
Bochs安装后需要配置,主要是写配置文件。我的配置文件为bochsrc,放在bochs安装目录下。而bochs的默认配置文件是 .bochsrc。所以要启用自己的配置文件的话,需要这个命令,表示读取bochsrc。
bochs -f bochsrc
给大家看一下我的bochs目录下的文件
![](https://img.haomeiwen.com/i10732246/39c695b34c8ec5c4.png)
以下是我的bochsrc文件内容,暂时比较简陋:
megs:32
romimage:file=/home/moon/Downloads/bochs-2.6.9/bios/BIOS-bochs-latest
vgaromimage:file=/home/moon/Downloads/bochs-2.6.9/bios/VGABIOS-lgpl-latest
#各位注意将/home/moon/Downloads/替换为你自己的路径
boot:disk
#启动盘符为从硬盘(disk)启动
log:bochsout.txt
#这是日志文件的输出
mouse:enabled=0
#关闭鼠标
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd.img", mode=flat
#硬盘设置
clock: sync=slowdown, time0=local
关于硬盘设置这一块,详细内容可以Google,按照提示一步步来,就可以了。
运行bochs
bochs -f bochsrc
如果黑屏,则在命令行中输入c
,意为continue,是调试工具里的命令。
提醒
由于本人对bochs了解并不深,此篇文章只是简述,遇到具体问题可以google查一查。关于bochs的下载与配置,我当时遇到了不少麻烦,于是东查查西查查最后就解决了。总之务必配置好bochs。
网友评论