平时我们进行开机,操作系统是怎么加载到内存里面的呢,接下来我们就来研究一下操作系统是如何一步一步加载的内存中的简单细节:
1:计算机从加电开始就开始BIOS的初始化这一部分是有硬件BIOS所做的工作
2:BIOS读取主引导扇区代码主引导记录
3:主引导扇区代码读取活动分区的引导扇区代码活动分区
4:引导扇区代码读取文件系统的加载程序
如下图所示:
接下来再看看BIOS初始化过程中包括哪些内容:
1:CPU初始化:CPU加电稳定后从oxfffo读第一条指令 CS:IP = 0xf000:fff0
2:CPU初始化状态为16位实模式,指令指针PC=16*CS + IP 最大地址空间1MB(2^20)
3:BIOS初始化
a:硬件自检POSt,检测内存中的显卡等关键设备或者部件的存在和工作状态,查找并执行显卡等接口卡BIOS进行设备初始化确认无误执行系统BIOS进行系统检测,检查系统中安装的即插即用的设备,更新CMOS中的扩展系统的配置数据ESCD,按照指定启动顺序从软盘,硬盘或者光驱启动
4:下图是引导扇区(512字节)的内容及在内存中分配的地址:
5:加载程序(Bootloader)识别硬盘文件系统
a:将操作系统的代码和数据从硬盘加载到内存中
b:跳转到操作系统的起始地址
6:加载程序进行操作系统的加载将控制权交给操作系统(指令指针指到了操作系统内核中)
下图是操作系统加载过程: