先给出MIT的OS Lab1的网址,详细介绍和相关资源在里面都能找到,开始的配置可能要费些力气。MIT 6.828 Lab1(没被墙)
这个实验要求你有比较多的预备知识,包括
- 汇编语言——汇编参考资料(注意intel和AT&T语法的不同)/这是AT&T的
- GDB——官网
整个实验1要实现的代码不难,但是要理解的细节非常多。编程难度不大,理解起来颇为费力,所以要有耐心,多花些时间来理解,如果遇到实在不能理解的东西,可以参考一些别人的理解。还是不行的话,我知道一个做的很好的答案,写的很详细,编码也很好,但是不到万不得已还是不要点的好。废话不多说,开始吧!
要了解操作系统,首先要了解操作系统是怎么被载入的,因为操作系统归根到底也是一个软件。从计算机启动到载入操作系统的大致过程如下:
- 处理器启动时默认访问特定内存地址,这段地址非易失地储存一些命令,完成一些设备的初始化,然后找到引导设备。
- 从引导设备中读入第一个block,了解loader的信息。
- 连续读入block来载入操作系统内核。
接下来是关于实验一我的一些理解: