一.操作系统的启动过程
具体的有关操作系统的启动过程可参考这篇文章http://jingyan.baidu.com/article/ce09321b3b59442bff858f22.html。在看本文之前,建议读者先把那篇文章看完。这里简单的对操作系统的启动过程做一个概括。
从 按下 POWER键到 操作系统可与用户交互这中间发生了哪些事呢?
1.预引导阶段
2.引导阶段
3.加载内核阶段
4.初始化内核阶段
5.用户登录阶段
其中第一步(预引导阶段)是BIOS自动完成的,我们不要做过多的关心。从第二步(引导阶段)开始才是我们可控的,也就是在这一步我们的代码得到了执行。
我们按下了POWER键之后,电源就开始给设备供电。稳定供电后(读者应该猜得到前面还有一个不稳定供电的过程),CPU就会从地址0xffff0处开始执行代码,这个地址是在系统BIOS的范围内,在这里存放的是一条跳转指令,会跳转到系统BIOS中真正的启动代码处。
具体的有关操作系统的启动过程可参考这篇文章http://jingyan.baidu.com/article/ce09321b3b59442bff858f22.html。在看本文之前,建议读者先把那篇文章看完。这里简单的对操作系统的启动过程做一个概括。
从 按下 POWER键到 操作系统可与用户交互这中间发生了哪些事呢?
1.预引导阶段
2.引导阶段
3.加载内核阶段
4.初始化内核阶段
5.用户登录阶段
其中第一步(预引导阶段)是BIOS自动完成的,我们不要做过多的关心。从第二步(引导阶段)开始才是我们可控的,也就是在这一步我们的代码得到了执行。
预引导阶段:
1)进入系统BIOS
这一阶段因为是BIOS自动完成的,我们编写代码不会涉及到这一块,而且刚才那个链接对这一部分介绍得也很详细,这里就不做过多介绍了,读者只要了解即可,下面简单的对预引导阶段做个总结,要想详细了解的可参考那个链接。
我们按下了POWER键之后,电源就开始给设备供电。稳定供电后(读者应该猜得到前面还有一个不稳定供电的过程),CPU就会从地址0xffff0处开始执行代码,这个地址是在系统BIOS的范围内,在这里存放的是一条跳转指令,会跳转到系统BIOS中真正的启动代码处。
2)POST
POWER ON SELF TEST。这一部分是从第1)步跳转过来的,主要完成加电自