1、启动模式概述:什么是UEFI?什么是Legacy BIOS?两者的核心区别与历史渊源
做底层固件这么多年,我经常被问到同一个问题:「UEFI 和 Legacy BIOS 到底差在哪?」
说实话,这个问题看起来简单,但真要讲透,得从根儿上说起。咱们先别急着对比,先把两个概念掰扯清楚。
1.1 什么是 Legacy BIOS?
Legacy BIOS,全称 Basic Input/Output System。这玩意儿诞生于 1981 年,IBM PC 时代。嗯,比我的工龄还长。
它的核心任务就三件:
- 硬件自检(POST)——通电后先检查 CPU、内存、显卡这些关键部件是不是活着。
- 加载引导扇区——从硬盘、软盘或光驱的第一个扇区(MBR)读取 512 字节的启动代码。
- 交出控制权——把系统控制权交给引导加载程序,比如 GRUB 或 NTLDR。
说白了,Legacy BIOS 就是个「传话筒」。它自己不做太多复杂的事,把接力棒递出去就完事了。
关键限制:Legacy BIOS 运行在 16 位实模式下,只能访问 1MB 以内的内存空间。你想想看,现在一条内存条都 16GB 了,1MB 能干啥?
我在项目中遇到过一台老服务器,硬盘超过 2TB,Legacy BIOS 死活认不全。后来查了半天,才发现是 MBR 分区表的锅——它最大只支持 2TB 寻址。这就是 Legacy 的硬伤。
1.2 什么是 UEFI?
UEFI,全称 Unified Extensible Firmware Interface。它的前身是 Intel 的 EFI 规范,2005 年交给 UEFI 论坛管理后改名为 UEFI。
UEFI 本质上是一个微型操作系统。它运行在 32 位或 64 位模式下,有自己的驱动模型、网络协议栈,甚至还能跑图形界面。
它的核心能力包括:
- GPT 分区表支持——突破 2TB 限制,最大支持 9.4ZB(泽字节)。
- 安全启动(Secure Boot)——验证操作系统签名的合法性,防止恶意软件劫持启动流程。
- 网络启动(PXE)原生支持——不需要额外的 DOS 或 ROM 映像。
- 驱动模型——UEFI 驱动可以在固件层面直接操作硬件,不需要进入操作系统。
个人习惯:我调试 UEFI 时最喜欢用的是它的 Shell 环境。你可以直接在 Shell 里运行 .efi 程序、查看内存、修改变量,比 Legacy 时代方便太多了。
1.3 两者的核心区别
我整理了一张对比表,把关键差异列出来。你一看就明白。
| 对比维度 | Legacy BIOS | UEFI |
|---|---|---|
| 运行模式 | 16 位实模式 | 32/64 位保护模式或长模式 |
| 寻址空间 | 最大 1MB | 完整系统内存(4GB+) |
| 分区表 | MBR(最大 2TB) | GPT(最大 9.4ZB) |
| 启动速度 | 较慢(逐项初始化) | 较快(并行初始化) |
| 用户界面 | 纯文本菜单 | 支持图形界面、鼠标操作 |
| 扩展性 | 依赖 Option ROM | UEFI 驱动模块化加载 |
| 安全性 | 无签名验证 | Secure Boot 支持 |
| 网络支持 | 需要额外 PXE ROM | 原生 UEFI 网络栈 |
为什么会这样?说白了,Legacy BIOS 的设计思路还停留在 80 年代。那时候硬盘最大才 10MB,没人想到今天会有 2TB 以上的硬盘。UEFI 从一开始就考虑到了未来的扩展性。
1.4 历史渊源:从 BIOS 到 UEFI 的演进
这段历史我简单捋一下,你就能理解为什么 UEFI 是必然趋势。
- 1981 年:IBM PC BIOS 诞生——16 位实模式,512 字节 MBR 启动。
- 1990 年代:BIOS 扩展出现——为了支持大硬盘和光驱启动,厂商开始打补丁。但补丁越打越乱,兼容性问题频发。
- 1998 年:Intel 启动 EFI 项目——Intel 意识到 BIOS 已经撑不住了,开始研发可扩展固件接口(EFI)。
- 2005 年:UEFI 论坛成立——EFI 1.10 规范交给 UEFI 论坛管理,更名为 UEFI 2.0。
- 2012 年:Windows 8 强制要求 UEFI——微软要求所有预装 Windows 8 的设备必须支持 UEFI 和安全启动。这是 UEFI 大规模普及的转折点。
- 2020 年至今:Legacy BIOS 逐步淘汰——Intel 宣布 2020 年后的新平台不再支持 Legacy BIOS 模式。嗯,我手头还有几台老设备,只能靠虚拟机跑 Legacy 了。
避坑指南:我曾经在给某品牌主板做固件移植时,发现 Legacy 和 UEFI 的启动顺序变量(BootOrder)存储位置完全不同。Legacy 存在 CMOS 里,UEFI 存在 NVRAM 里。如果你在切换模式时不清空 NVRAM,系统可能会直接黑屏。切记!
1.5 核心逻辑框架图
下面这张图展示了 Legacy BIOS 和 UEFI 在启动流程上的核心差异。我建议你仔细看看箭头走向,能帮你快速建立整体认知。
1.6 小结
Legacy BIOS 和 UEFI 的核心区别,说白了就是「够用」和「好用」的区别。Legacy 在 80 年代够用,但到了今天,2TB 以上的硬盘、安全启动、网络启动这些需求,它已经力不从心了。
UEFI 不是简单的升级,而是一次彻底的架构重构。它把固件从一个「硬编码的 ROM 程序」变成了一个「可扩展的微型操作系统」。我个人觉得,这是底层固件领域近 30 年来最重要的变革。
嗯,这一章先讲到这里。后面的章节我们会深入每个阶段的具体实现,包括 UEFI 的 SEC/PEI/DXE 各阶段细节、Secure Boot 的签名链、以及实际调试中的各种坑。到时候再细聊。