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