BIOS 系统研究
一句话定义
BIOS 是固化在计算机主板 ROM/Flash 芯片上的一组底层固件程序,是个人电脑启动时加载的第一个软件,负责为操作系统与硬件之间提供最底层、最直接的接口,充当「软件与硬件之间的转换器」。术语最早于 1975 年出现在 CP/M 操作系统中。(来源:百度百科、科普中国)
核心功能
BIOS 主要包含两大部分:
- 自检及初始化
- 加电自检(POST,Power-On Self Test):开机时检测 CPU、内存、ROM、CMOS、串并口、显卡、磁盘子系统、键盘等硬件是否正常;发现问题时给出提示信息或蜂鸣警告
- 初始化:创建中断向量、设置寄存器、初始化外部设备;读取 CMOS 中的硬件参数并与实际硬件比较
- 引导程序:从启动设备(软盘/硬盘)读取引导记录(MBR),找到后把控制权交给引导记录,由其加载操作系统
- 程序服务处理与硬件中断处理
- 为应用程序和操作系统提供 I/O 服务(读磁盘、打印输出等)
- 处理硬件中断;现代操作系统大多会绕过 BIOS 抽象层直接控制硬件
启动流程(以 x86 传统 BIOS 为例)
权威流程(NIST SP 800-147):
- BIOS Boot Block:最先执行的固件,负责校验其余 BIOS 代码完整性,损坏时可提供恢复机制;在可信计算架构中作为 CRTM(信任根)
- POST(加电自检):初始化芯片组、CPU、内存等关键底层硬件
- 加载并执行 Option ROM:初始化显卡等扩展卡(显卡 BIOS 初始化图形处理器与显存)
- MBR(主引导记录):读取启动扇区
- Boot Loader(引导程序) → 早期 OS 内核初始化 → 完整 OS 内核初始化 → 用户态进程 → 内核服务
- 传统 BIOS 通常在 16 位实模式(Real Mode)下执行
存储介质与芯片演进
BIOS 固件存储在非易失性存储器中(断电不丢失):
| 阶段 | 芯片类型 | 特点 |
|---|---|---|
| 早期 | ROM(只读存储器) | 出厂编程,无法更改 |
| 中期 | EPROM | 紫外线擦除后可重编程,通常被不透明封装密封视为永久 |
| 后期 | EEPROM | 可电擦写,无需从主板取下 |
| 现代 | NOR Flash(SPI 接口) | 速度更快、密度更高,尺寸小(固件通常仅几 MB);USB 盘/SSD 同族技术 |
- 厂商:AMI、Award、Phoenix、Insyde、百敖(BYOSOFT)
- 固件大小:约 128KB ~ 8MB
CMOS 与 BIOS 设置
- CMOS 是保存 BIOS 配置参数(系统时间、启动顺序、硬件参数等)的存储器,靠主板上的 CMOS 电池(纽扣电池)在断电时维持数据
- 进入 BIOS 设置:开机时按厂商设定的按键——F2 / F10 / F12 / F1 / Del 等;开机太快时可通过 Windows「高级启动 → 恢复设置 → UEFI 固件设置」进入
- 常见设置:启动顺序、启停硬件组件、系统时间日期、内存/CPU 参数、电源管理等
- BIOS 更新(刷写/Flash):从厂商获取新固件刷入 Flash 芯片,修复漏洞、提升兼容性
BIOS vs UEFI(关键对比)
| 维度 | 传统 BIOS | UEFI(统一可扩展固件接口) |
|---|---|---|
| 分区表 | MBR,32 位 LBA,最大约 2.2TB | GPT,理论最大 9.4ZB,当前硬件实际无限 |
| 启动方式 | 顺序硬件探测 + 中断调用,慢 | 直接读 EFI System Partition(ESP,FAT32),硬件初始化并行化,更快 |
| 运行模式 | 16 位实模式,x86-32 | 32/64 位模式,为 64 位系统设计;ARM(Apple Silicon 等)只用 UEFI |
| 界面 | 文本菜单 + 键盘 | 支持鼠标、图形界面、网络启动、HTTP/HTTPS 固件更新 |
| 安全 | 无密码学验证 | Secure Boot:用公钥密码学验证引导程序签名,阻止 bootkit/rootkit |
| 大容量盘 | 无法处理 3TB+ 驱动器 | 支持 NVMe 与大容量存储 |
BIOS 安全
- BIOS/固件是病毒木马的目标,一旦被破坏后果严重
- 经典案例:CIH 病毒(1998 年)——首个能破坏硬件的病毒,擦除 BIOS Flash 内容 + 用垃圾数据覆盖硬盘引导区和分区表,「固件破坏 + 数据破坏」双管齐下;当时多数受害芯片本身完好,重刷 BIOS 即可修复
- 现代硬件防护升级:
- 固件改存 SPI NOR Flash,由芯片组(PCH)内 SPI 控制器管理,CPU 不能直接访问;受保护寄存器(Protected Range Register)可锁定固件区读写权限
- Intel Boot Guard / AMD Platform Secure Boot:CPU 微码层验证固件引导块签名,篡改则拒绝执行
- UEFI Secure Boot:验证引导加载程序签名,签名不对拒绝执行
- 固件更新签名强制 + 防回滚机制(Bootloader 校验固件包签名与哈希,禁止刷入有漏洞旧版本)
- Windows 10/11 默认开启内核隔离、内存完整性(HVCI)、驱动签名强制
- 可信计算:BIOS Boot Block 作为 CRTM(Core Root of Trust for Measurement),是启动测量链的信任起点
工程防护建议
- Flash 分区规划:Bootloader 独立分区并写保护,应用区损坏可回退恢复
- 双备份策略:两个 Flash 分区存固件,先写备份区再切换启动标志
- 嵌入式产品:写保护引脚常态置保护,仅 OTA 升级时由 Bootloader 解除
参考资料
- 百度百科 - BIOS
- 科普中国 - 主板(BIOS 芯片)
- NIST SP 800-147 - BIOS Protection Guidelines
- SysTutorials - BIOS vs UEFI: Key Differences Explained
- HP 支持 - 如何在 Windows 个人电脑上进入 BIOS 设置
- ScienceInsights - Is BIOS Volatile Or Nonvolatile
- CSDN - CIH 病毒改写 BIOS 真相:固件安全与硬件防护全解析
(内容由AI生成,仅供参考)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 琉璃幻彩的博客!
评论

