操作系统的启动过程

上电之后,cs:ip寄存器强初始化为0xF000:0XFFF0,实模式对段基址16,得到物理地址0XFFFF0,即BIOS的入口地址开始执行,跳转到0xfe06b,然后BIOS先进行自检和初始化操作,自检通过后BIOS会将处理器使用权移交给MBR,为了方便BIOS找到MBR,MBR位于硬盘的0道0面1扇区,MBR中包含3部分内容:
1.446字节的引导程序及参数
2.64字节的分区表
3.2字节的标记0x55和0xaa(也称为魔数)
因此BIOS将MBR加载到
物理内存0x7c00,然后跳转执行,这样就将BIOS的执行权交给了MBR,MBR引导程序执行完后,需要将控制权交给bootloader,64字节的分区表中每个分区占16字节,通过查看各分区表项中是否有活动分区的标志决定控制权如何进行转交,活动分区的标志位于分区表项最开始的1字节,如果为0x80则表示此分区上有操作系统引导程序。但是光知道哪个分区还是不够的,还需要知道内核加载器位于该分区的什么位置上,因此,人们约定,内核加载器的入口地址必须在固定的位置*,这个位置就是该分区的最开始的扇区,而该扇区被称为操作系统引导扇区,其中的引导程序(内核加载器)被称为操作系统引导记录OBR,此扇区被称为OBR引导扇区。在OBR扇区的前3个字节存放了跳转指令,这也是约定,因此MBR找到活动分区后,就跳到了OBR引导扇区的起始处,该起始地址处的指令马上将处理器代入操作系统引导程序,从此MBR完成了交接工作,进入了内核。

你可能感兴趣的:(操作系统的启动过程)