近期在看《30天自制操作系统》、《一个64位操作系统的设计与实现》、linux-2.4.36内核源码,于是就想自制一个属于自己的操作系统。
现开设此专栏,目标是从零开始自制一个64位的操作系统。麻雀虽小五脏俱全,所以我的操作系统要有图形界面、有内存管理、进程管理、中断管理、相应外设驱动。
本专栏的所有代码位于GitHub: https://github.com/xqd-githup/xqd-os
开发环境
工欲善其事必先利其器,开发的第一步当然是准备开发环境
操作系统
为方便开发,建议使用Linux桌面系统,原因有两个:
- Linux有很多现成的开发工具,安装也方便,尤其是GCC对Linux非常友好。
- 开发过程中会有图形界面交互,所以必须使用Linux桌面系统
我这里使用的是xubuntu: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/xubuntu/releases/20.04/release/
开发工具
用于编译代码:
apt-get install gcc make nasm
- gcc 用于编译C程序
- make用于批量编译
- nasm用于编译汇编、反汇编程序
下载sublimetext:https://www.sublimetext.com/download,用于代码编辑,如果vim特别熟练的可以不安装。
硬件模拟
不可能每次开发之后,都部署到专门的硬盘上,然后重启系统观察运行效果。这样既不方便开发,也不方便调试,所以需要一个方便模拟运行的软件。 我这里使用的是bochs,非常小巧(只有7MB),而且方便调试,用于模拟器计算机,相当于vmware、visualbox之类的软件。
apt-get install bochs bochs-x
结束
到此为止,开发一个操作系统所需要的所有工具都已准备完毕,接下来将使用这些工具开发一个helloWord级别的操作系统引导程序,并观察运行效果。
请参考下一节:(02)第一个操作系统引导程序
|