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 是必然趋势。

  1. 1981 年:IBM PC BIOS 诞生——16 位实模式,512 字节 MBR 启动。
  2. 1990 年代:BIOS 扩展出现——为了支持大硬盘和光驱启动,厂商开始打补丁。但补丁越打越乱,兼容性问题频发。
  3. 1998 年:Intel 启动 EFI 项目——Intel 意识到 BIOS 已经撑不住了,开始研发可扩展固件接口(EFI)。
  4. 2005 年:UEFI 论坛成立——EFI 1.10 规范交给 UEFI 论坛管理,更名为 UEFI 2.0。
  5. 2012 年:Windows 8 强制要求 UEFI——微软要求所有预装 Windows 8 的设备必须支持 UEFI 和安全启动。这是 UEFI 大规模普及的转折点。
  6. 2020 年至今:Legacy BIOS 逐步淘汰——Intel 宣布 2020 年后的新平台不再支持 Legacy BIOS 模式。嗯,我手头还有几台老设备,只能靠虚拟机跑 Legacy 了。

避坑指南:我曾经在给某品牌主板做固件移植时,发现 Legacy 和 UEFI 的启动顺序变量(BootOrder)存储位置完全不同。Legacy 存在 CMOS 里,UEFI 存在 NVRAM 里。如果你在切换模式时不清空 NVRAM,系统可能会直接黑屏。切记!

1.5 核心逻辑框架图

下面这张图展示了 Legacy BIOS 和 UEFI 在启动流程上的核心差异。我建议你仔细看看箭头走向,能帮你快速建立整体认知。

Legacy BIOS 与 UEFI 启动流程对比 Legacy BIOS vs UEFI 启动流程对比 Legacy BIOS 启动流程 1. 上电 → CPU 复位 2. POST 硬件自检 3. 读取 MBR(512B) 4. 加载引导扇区代码 5. 交出控制权给 OS UEFI 启动流程 1. 上电 → CPU 初始化 2. SEC/PEI 阶段(安全验证) 3. DXE 阶段(驱动执行) 4. BDS 阶段(启动设备选择) 5. TSL/RT 阶段 → OS 启动 16 位实模式 vs 64 位模式 MBR(512B) vs GPT(无限制) 无安全机制 vs Secure Boot 核心差异:Legacy 是「传话筒」,UEFI 是「微型 OS」

1.6 小结

Legacy BIOS 和 UEFI 的核心区别,说白了就是「够用」和「好用」的区别。Legacy 在 80 年代够用,但到了今天,2TB 以上的硬盘、安全启动、网络启动这些需求,它已经力不从心了。

UEFI 不是简单的升级,而是一次彻底的架构重构。它把固件从一个「硬编码的 ROM 程序」变成了一个「可扩展的微型操作系统」。我个人觉得,这是底层固件领域近 30 年来最重要的变革。

嗯,这一章先讲到这里。后面的章节我们会深入每个阶段的具体实现,包括 UEFI 的 SEC/PEI/DXE 各阶段细节、Secure Boot 的签名链、以及实际调试中的各种坑。到时候再细聊。