BIOS开发开发与工程应用 - 第1节

1.1 BIOS 的定义

BIOS(Basic Input/Output System,基本输入输出系统)是计算机系统中固化在主板 ROM/Flash 芯片上的底层固件,负责在操作系统加载之前完成硬件初始化、自检和引导加载。它是硬件与操作系统之间的“桥梁”,也是整个计算机系统启动的“第一行代码”。

核心定义:BIOS 是一组存储在非易失性存储器中的固件程序,提供最底层的硬件抽象接口,使操作系统能够通过标准调用访问键盘、显示器、磁盘等基本设备。

1.2 BIOS 的历史演变

1.2.1 IBM PC BIOS 时代(1981–1990s)

1981 年 IBM 推出第一台个人电脑 IBM 5150,其主板上集成了一块 8KB 的 ROM BIOS,由 IBM 工程师编写。这块 BIOS 定义了标准的硬件调用接口(INT 10h、INT 13h、INT 16h 等),成为后续所有兼容 PC 的基准。

年代 里程碑 关键特征
1981 IBM PC BIOS 发布 8KB ROM,16 位实模式,INT 中断调用
1984 IBM PC/AT BIOS 支持 80286 处理器,扩展 CMOS 配置
1990s 第三方 BIOS 厂商崛起 AMI、Phoenix、Award 等成为主流
技术遗产:IBM PC BIOS 定义的 INT 13h(磁盘服务)、INT 10h(视频服务)等接口至今仍在 UEFI 的兼容性支持模块(CSM)中被保留。

1.2.2 传统 BIOS 的局限

随着硬件复杂度提升,传统 BIOS 逐渐暴露出以下瓶颈:

  • 16 位实模式限制:只能访问 1MB 地址空间,无法直接利用大内存
  • MBR 分区表限制:最大支持 2TB 磁盘,无法引导 GPT 磁盘
  • 缓慢的初始化流程:串行执行,缺乏并行检测能力
  • 无标准驱动模型:每个 BIOS 厂商实现差异大,操作系统兼容性差
  • 安全性薄弱:无安全启动机制,易被 Rootkit 攻击

1.2.3 UEFI 时代(2000s–至今)

Intel 在 2000 年代初提出 EFI(Extensible Firmware Interface)规范,后由 UEFI 论坛标准化为 UEFI(Unified Extensible Firmware Interface)。UEFI 彻底重构了固件架构,成为现代计算机的标准引导环境。

对比维度 传统 BIOS UEFI
处理器模式 16 位实模式 32/64 位保护模式与长模式
地址空间 1MB 限制 完整 64 位地址空间
磁盘分区 MBR(≤2TB) GPT(≥9.4ZB)
引导速度 慢(串行初始化) 快(并行驱动加载)
驱动模型 无标准驱动 UEFI Driver Model
安全性 无 Secure Boot、TPM 支持
扩展性 固定 ROM 大小 模块化,可加载外部驱动
BIOS → UEFI 演变时间线 1981 IBM PC BIOS 8KB ROM, 16位实模式 1990s 第三方BIOS AMI/Phoenix/Award 2000 EFI 1.0 Intel 提出 EFI 规范 2010+ UEFI 2.x 统一标准,安全启动 关键转折点 2017 年后 Intel 宣布弃用传统 BIOS, 所有新平台强制要求 UEFI Class 2/3

1.3 BIOS 在计算机系统中的角色与功能

1.3.1 启动流程中的核心角色

BIOS/UEFI 是计算机加电后第一个获得 CPU 执行权的程序,其启动流程可概括为以下阶段:

  1. 上电复位(Power-On Reset):CPU 从复位向量(传统 BIOS 为 FFFF0h,UEFI 为 SEC 阶段入口)开始执行
  2. 硬件自检(POST):检测 CPU、内存、芯片组、显卡等关键组件是否正常
  3. 设备枚举与初始化:为存储控制器、USB 控制器、网络适配器等分配资源
  4. 引导设备选择:按优先级扫描磁盘、光驱、网络等引导设备
  5. 引导加载程序(Bootloader)加载:将操作系统引导代码读入内存并移交控制权
BIOS/UEFI 启动流程 上电复位 硬件自检 POST 设备初始化 引导设备选择 加载 Bootloader UEFI 在此流程基础上增加了安全启动(Secure Boot)验证 以及 DXE 阶段的并行驱动加载,显著提升启动效率

1.3.2 运行时服务与硬件抽象

BIOS/UEFI 在操作系统启动后仍提供以下运行时服务:

  • 系统管理中断(SMI):处理电源管理、温度监控、风扇控制等硬件事件
  • ACPI 表:向操作系统提供电源管理和设备配置信息
  • UEFI Runtime Services:包括变量服务、时间服务、重置服务等,操作系统可在运行时调用
  • SMBIOS 表:提供主板、BIOS 版本、内存配置等系统信息
开发注意事项:传统 BIOS 的 INT 中断服务在进入保护模式后不可用,而 UEFI Runtime Services 在操作系统进入长模式后仍可通过虚拟地址映射调用,这是 UEFI 架构的重要优势。

1.3.3 配置与固件管理

BIOS/UEFI 提供用户配置界面(Setup/Configuration UI),允许用户调整:

配置类别 典型选项 影响范围
启动顺序 磁盘/USB/网络/PXE 优先级 系统引导行为
CPU 配置 超线程、虚拟化、频率锁定 处理器性能与功能
内存配置 XMP 配置文件、时序调整 内存带宽与稳定性
安全配置 Secure Boot、TPM、BIOS 密码 系统安全等级
电源管理 S3/S4 睡眠状态、唤醒事件 功耗与响应速度

1.4 本章小结