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 大小 | 模块化,可加载外部驱动 |
1.3 BIOS 在计算机系统中的角色与功能
1.3.1 启动流程中的核心角色
BIOS/UEFI 是计算机加电后第一个获得 CPU 执行权的程序,其启动流程可概括为以下阶段:
- 上电复位(Power-On Reset):CPU 从复位向量(传统 BIOS 为 FFFF0h,UEFI 为 SEC 阶段入口)开始执行
- 硬件自检(POST):检测 CPU、内存、芯片组、显卡等关键组件是否正常
- 设备枚举与初始化:为存储控制器、USB 控制器、网络适配器等分配资源
- 引导设备选择:按优先级扫描磁盘、光驱、网络等引导设备
- 引导加载程序(Bootloader)加载:将操作系统引导代码读入内存并移交控制权
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 睡眠状态、唤醒事件 | 功耗与响应速度 |