计算机启动流程

计算机启动流程

计算机启动流程图

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(统一可扩展固件接口)
    • 接口标准
    • 在所有平台上一致的操作系统启动服务