操作系统启动顺序
概述 在这里以x86的处理器为例 机器在启动的时候会执行 第一条指令 。这条指令会去执行 bios ,将控制权交给bios。 bios完成硬件的质检,然后将bootloader从硬盘读到内存中,执行 bootloader ,并将控制权交给bootloader bootloader负责使能保护模式、建立段机制以及加载操作系统,然后将控制权交给操作系统 第一条指令 执行机器的第一条指令是为了跳转到bios执行,那么需要知道bios在哪里?cpu是怎么寻址的? bios在哪里 bios是固化在内存EPROM中的,断电不会丢失(非易失性),这样 biod的地址是固定 的,因为 在cpu第一次加电了之后,寄存器就会有缺省的初始值 ,所以 bios地址=寻址寄存器的缺省值 就好啦。 寻址是由段寄存器以及指令指针共同完成,bios地址由CS:IP=16*CS+IP(代码段寄存器:指令指针)来表示。 CS的缺省值是FFFF0000H,IP的缺省值是0000FFF0H。 CS:IP=FFFFFFF0H 寻址机制 寻址是由段寄存器以及指令指针共同完成。因为内存很大,而且在一段时间内操作的内存具有空间局部性,所以可以将内存分为一段一段由段寄存器来定位,这一段的内存中再由指令指针来定位到具体的代码、数据 段寄存器: CS——code segment,代码段寄存器 DS——data segment