第0天:笔者的一些经验
开发操作系统的方法:
- 最节省时间:在现存OS中找一个跟自己想做的OS最接近的,然后在此基础上加以改造
- 从零开始:不要一开始就一心想着要开发多完整的OS,先做一个有OS-like的demonstration就行了,然后再逐步完善。其实,开发其他大型软件也一样
先学习?先开发?
- 完成一些工作,为了避免不必要的失败,先学习再开发
- 因为兴趣而学习,可以先开发,碰壁后再回头学习相关知识
概念:
- 映像文件(.img):简单地说就是软盘的备份数据
开发操作系统的语言选择:
- 对于C语言:对OS功能依赖比较少,基本上只要不用函数就可以了。
- 对于汇编语言:在开发OS时不会受到限制的语言大概就只有汇编语言了。
- 开发OS中C语言会遇到的困难:
1. 例如像printf这种C库函数,在开发OS的过程中是不能使用的。
2. 开发OS时,需要用到CPU上的许多控制OS的寄存器,一般C编译器都是用于开发应用程序的,所以没有任何操作这些寄存器的命令。
3. C编译器的自动优化功能对开发OS带来麻烦
- 基于以上原因,在C语言无法编写的部分,我们只好用汇编语言来写。故开发OS的语言选择:汇编语言 + C语言。