最近开始重新学习操作系统方面的知识,之前上课学到的基本都忘记了。同时对某些部分做做相应的记录,学习过程中难免会出现一些问题,希望同僚们能及时指正,我也会不断对博文进行更新更正。
一、操作系统的启动
1、开机自检(POST)
在按下计算机的电源之后,系统的控制权此时就交给了BIOS,由于此时电压还不稳定,主板控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU初始化,同时等待电源发出的POWER GOOD信号(电源准备好信号)。当电源开始稳定供电后(当然从不稳定到稳定的过程也只是短暂的瞬间),芯片组便撤去RESET信号(如果是手动按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号)。然后CPU会从地址0xFFFF0H开始执行指令,这个地方为一条跳转指令,跳转到BIOS中的启动代码,BIOS启动后进行的第一件事情就是开机自检POST,自检主要对计算的设备进行检测,是否存在问题设备。可参考博文https://blog.csdn.net/u013009575/article/details/18881825。
2、加载引导程序
我们的操作系统是存储在硬盘上的,所以就需要一段程序能够将其位置找到并进行加载。上一节当执行完自检程序之后,BIOS会将自己复制到物理内存0xA0000处开始的地址继续执行。然后BIOS会开始寻找存储设备(这也是有时候我们装系统时,启动bios修改其配置加载自己的系统文件的原因),如果找到了就会将该存储设备的引导扇区读入到物理内存地址为0x7C00