在我们按下电脑电源键后,发生了什么?为什么过了一会儿电脑就出现漂亮的界面,然后我们就可以操作了呢。其实我们按下电源键之后无非就是CPU上电,然后取指令执行,那么CPU刚开始上电在哪里取指令执行呢?首先X86架构CPU在上电时会从FFFF:0000地址处取得第一条指令并执行,这个地址是实模式下的地址,它会被转换成0xFFFF0,这个地址就是CPU引脚中的A0-A19,好了,CPU地址引脚输出0xffff0,但是此时内存还没有被初始化,这个地方有数据吗?其实这个地址被BIOS所映射,也就是说这个地址处放的是BIOS的代码,这里是一条跳转指令,跳转到BIOS程序处并执行,然后BIOS程序会检测一系列的硬件,如果硬件没有问题了,那么BIOS会根据用户设置的启动顺序(软盘,硬盘,光驱等)来引导操作系统,引导又是什么意思呢?其实很简单,BIOS如果发现启动设备的前512字节的最后两个字节是0x55,0xaa,就认为该设备可以启动,然后就将相应的设备中前512个字节的内容加载到内存物理地址0x7c00处,然后BIOS会跳转到0x7c00处执行操作系统自己的引导代码。这样,CPU的执行程序的过程就是:上电->跳转到BIOS进行硬件自检->复制512字节到0x7c00处->执行操作系统引导代码->进入操作系统。
一个操作系统的实现笔记2:计算机的启动过程
猜你喜欢
转载自blog.csdn.net/u014783685/article/details/78031169
今日推荐
周排行