学习链接:
http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/courseware/1d95cdf6f0e943448801e538b039300a/ffca4e1f29a145338461662b9b37fcf2/
系统的启动大概流程:加电-->BIOS-->加载程序-->内核映像
可以细分如下:
CPU的初始化
CPU加电稳定后从0xfffff0读第一条指令
CS:IP = 0xf000:fff0
第一条指令是跳转指令
CPU初始化状态为16位实模式
CS:IP是16位的寄存器
指令指针PC=16*CS+IP
最大地址空间是1M
BIOS初始化过程
硬件自检POST
检测系统中内存和显卡等关键部件的存在和工作状态
查找并执行显卡等接口卡BIOS,进行设备初始化
执行系统的BIOS,进行系统检测
检测和配置系统中安装的即插即用设备
更新CMOS中的扩展系统配置数据ESCD
按指定启动顺序从软盘、硬盘、或者光盘启动
主引导记录MBR格式
启动代码:446字节
检查分区表正确性
加载并跳转到磁盘上的引导程序
硬盘分区表:64个字节
描述分区状态和位置
每个分区描述信息占据16个字节
结束标志:2个字节(55AA)
主引导记录的有效标志
分区引导扇区格式
跳转指令:跳转到启动代码
与平台相关的代码
文件卷头:文件系统描述信息
启动代码:跳转到加载程序
结束标志:55AA
加载程序的细化
系统启动规范
BIOS
固话到计算机主板上的程序
包括系统设置,自检程序和系统自启动程序
BIOS-MBR,BIOS-GPT,PXE
UEFI
接口标准
在所有平台上一致的操作系统启动服务