(01)开发环境准备
环境准备开发环境操作系统开发工具硬件模拟结束开发环境工欲善其事必先利其器,开发的第一步当然是准备开发环境操作系统为方便开发,建议使用Linux桌面系统,原因有两个:Linux有很多现成的开发工具,安装也方便,尤其是GCC对Linux非常友好。开发过程中会有图形界面交互,所以必须使用Linux桌面系统我这里使用的是xubuntu: https://mirrors.tuna.tsinghua.edu.
近期在看《30天自制操作系统》、《一个64位操作系统的设计与实现》、linux-2.4.36内核源码,于是就想自制一个属于自己的操作系统。
现开设此专栏,目标是从零开始自制一个64位的操作系统。麻雀虽小五脏俱全,所以我的操作系统要有图形界面、有内存管理、进程管理、中断管理、相应外设驱动。
本专栏会持续更新,直至开发出一个完整的64位操作系统。如有兴趣,请订阅收藏。如有疑问,也请评论留言。
本专栏的所有代码位于GitHub: https://github.com/xqd-githup/xqd-os
开发环境
工欲善其事必先利其器,开发的第一步当然是准备开发环境
操作系统
Linux
为方便开发,建议使用Linux桌面系统,原因有两个:
- Linux有很多现成的开发工具,安装也方便,尤其是GCC对Linux非常友好。
- 开发过程中会有图形界面交互,所以必须使用Linux桌面系统
我这里使用的是xubuntu: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/xubuntu/releases/20.04/release/
Windows
如果特别排斥Linux,想使用Windows开发的话,可以直接跳到下面的windows系统的开发环境
开发工具
用于编译代码:
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
windows系统的开发环境
- 必须是win10
- 需要安装Linux子系统,可以参考win10搭建Ubuntu子系统(wls)
- 在Windows中安装bochs,下载地址
- 将bochs的目录(我的是C:\Program Files\Bochs-2.6.11)加入环境变量
WSL(Windows Subsystem for Linux)是一个很神奇的东西,它几乎具备了原生Linux的所有功能,但是又跟win10共享CPU、内存、硬盘,甚至连环境变量也是共享的,Ubuntu子系统可以直接运行Windows下的exe应用程序。
这里安装Ubuntu子系统的目的只有一个,就是安装GCC,因为我们的汇编、C程序都是需要靠GCC来编译的。本来window下也有一些GCC的编译环境,如mingw、cygwin等,但是里面的gcc都是阉割版,开发普通的Windows应用绰绰有余,但是开发OS就有点力不从心了。
综上,只有gcc需要在Linux子系统安装,其他软件都装在Windows上。
在Linux子系统上执行命令:sudo apt-get install gcc make
然后执行vi .bashrc,在最后面加入:
alias bochs='/mnt/c/Program\ Files/Bochs-2.6.11/bochs.exe'
alias bximage='/mnt/c/Program\ Files/Bochs-2.6.11/bximage.exe'
解释一下:
- windows的C盘对应子系统的/mnt/c
- Program Files这个目录中间的空格,需要用反斜杠转义
执行: . .bashrc 让配置生效,这样开发环境就配置好啦。
结束
到此为止,开发一个操作系统所需要的所有工具都已准备完毕,接下来将使用这些工具开发一个helloWord级别的操作系统引导程序,并观察运行效果。
请参考下一节:(02)第一个操作系统引导程序
更多推荐
所有评论(0)