BIOS启动过程详解

介绍

BIOS(基本输入输出系统)是位于计算机硬件和操作系统之间的软件系统,它负责在计算机启动时初始化硬件,并将控制权交给操作系统。了解BIOS启动过程对于理解计算机的工作原理非常重要。本文将详细介绍BIOS启动过程并提供相关的代码示例。

BIOS启动过程

BIOS启动过程可以分为以下几个步骤:

  1. 加电自检(Power-On Self Test, POST):计算机加电后,BIOS会自动进行自检,检查硬件设备是否正常工作。自检过程会检测主板、内存、硬盘、键盘等硬件设备,如果发现错误,将会发出警告或者停止启动。
MOV AL, 0x0
OUT 0x80, AL ; 发出POST开始信号
journey
    title BIOS启动过程
    section 加电自检
        加电自检开始 --> 加电自检结束
  1. 启动设备的初始化:自检完成后,BIOS会读取存储在CMOS(互补金属氧化物半导体)中的配置信息,包括启动设备的顺序。BIOS会按照设定的顺序尝试从不同的设备(如硬盘、光盘、USB)中加载操作系统。
MOV AX, 0x40 ; CMOS数据段地址
MOV DS, AX
MOV AL, BYTE PTR DS:[0x17] ; 读取启动设备配置信息
CMP AL, 0x80 ; 判断是否为硬盘
JE hard_disk_boot
CMP AL, 0x81 ; 判断是否为光盘
JE cd_boot
; 其他启动设备的处理
journey
    title BIOS启动过程
    section 启动设备的初始化
        加载硬盘 --> 启动设备的初始化完成
        加载光盘 --> 启动设备的初始化完成
        其他设备的处理 --> 启动设备的初始化完成
  1. 主引导记录(Master Boot Record, MBR)加载:当BIOS确定从硬盘启动时,它会读取硬盘的MBR,MBR是一个特殊的扇区,包含引导加载程序和分区表。引导加载程序将加载操作系统的第一阶段。
READ_DISK SECTOR 0, 0, 1, 0x7C00 ; 从硬盘读取MBR到内存地址0x7C00
journey
    title BIOS启动过程
    section 主引导记录加载
        加载MBR --> 主引导记录加载完成
  1. 操作系统启动:MBR中的引导加载程序会加载操作系统的第一阶段,例如GRUB或LILO。第一阶段的目标是加载操作系统的第二阶段。
JMP 0x7C00 ; 跳转到MBR中的引导加载程序
journey
    title BIOS启动过程
    section 操作系统启动
        加载第一阶段 --> 操作系统启动
  1. 操作系统加载:操作系统的第一阶段会继续加载操作系统的第二阶段,例如内核映像。操作系统的第二阶段将接管控制权,并开始运行操作系统。
LOAD_KERNEL 0x1000 ; 从磁盘加载内核映像到内存地址0x1000
JMP 0x1000 ; 跳转到内核映像的入口点
journey
    title BIOS启动过程
    section 操作系统加载
        加载第二阶段 --> 操作系统加载

总结

BIOS启动过程是计算机启动的关键步骤,它包括加电自检、启动设备的初始化、主引导记录加载以及操作系统的启动和加载。了解BIOS启动过程有助于我们理解计算机的工作原理。