浅谈计算机启动过程

297 阅读1分钟

当我们按下开机键时,我们的计算机处于实模式下,CPU将PC寄存器的值强制初始化为0xffff0(这个位置是BIOS程序的入口地址),接着开始执行这个位置的程序,这个程序只有一条跳转指令jmp f000:e05b。该指令将PC寄存器置为0xfe05b,并开始执行0xfe05b处和后面的程序指令。以0xfe05b位置开始的程序执行一些硬件自检的工作,程序的最后一步是将主引导扇区的内容加载到内存0x7c00开始的位置,然后将PC寄存器置为0x7c00,开始执行主引导扇区的代码。主引导扇区的代码加载操作系统的内核(操作系统由活动分区启动),并跳转到加载处执行。于是计算机就这样启动了。

主引导扇区的代码完成以下任务

(1) 扫描分区表,找到一个活动(可引导)分区;

(2) 找到活动分区的起始扇区;

(3) 将活动分区的引导扇区装载到内存7C00处;

(4) 将控制权交给引导扇区代码; 如果主引导代码无法完成上述任务,它将显示以下错误信息之一:

No active partition.

Invalid partition table.

Error loading operating system.

Missing operating system.