欢迎光临散文网 会员登陆 & 注册

详解UEFI和传统BIOS(Legacy)以及它们的区别

2023-08-16 12:49 作者:-龙拳风-  | 我要投稿

Part 1:传统BIOS(Legacy)

首先让我们回顾一下传统BIOS(Legacy)启动的流程:

  • 上电自检(POST)

  • 读取主引导记录(MBR)

  • 读取分区引导记录(PBR)

  • 拉起启动管理器

梦回408 @w@

Q:这样做有什么缺点?

1.     单个分区容量最高只支持2TB

        为什么?

        不妨让我们看看MBR的结构

(来自 c.biancheng.net/view/1015.html)

可以看到,MBR只给了4个字节用来存储本分区总扇区数,通常一个扇区大小只有512字节,稍加计算就可以得到MBR单个分区的最大容量为2T

2.     启动慢

为什么?

众所周知,传统的BIOS启动流程有一个开机自检的环节,一次完整的开机自检需要检查如下几个硬件:

(来自 https://blog.51cto.com/bule201/1588548)

由于现在的硬件普遍偏“大”(例如RAM,我不知道该用什么形容词好@w@)完全检完其实需要大量的时间!!!

现在的POST自检一般会加快和简化(这就是为什么我开头强调是完整的POST自检)

Part 2:UEFI

接下来看UEFI

UEFI,即统一可扩展固件接口(Universal Extensible Firmware Interface)

让我们看看UEFI的启动流程:

  • 初始化

  • 执行ESP分区下的引导程序

  • 拉起启动管理器

这里备注一下,ESP是EFI系统分区(EFI system partition),这是UEFI特有的一个分区,通常是FAT32格式,里面会放一些引导程序,这个分区一般是隐藏的,开DiskGenius才可以看到

Q:相比于传统BIOS,UEFI有什么区别?

1.     砍掉了POST自检

相比于传统BIOS,UEFI已经没有了自检的独立流程!

这意味着UEFI变得更快了!!!

(虽然相比于现在阉割POST的传统BIOS好像没什么区别 -_- )

但这并不代表UEFI不会自检!出问题的时候会检一下

详细可以看看这篇文章:https://www.zhihu.com/question/28815746

2.     砍掉了MBR转而使用了GPT

UEFI抛弃了传统的主引导记录(MBR),引进了GUID分区表(GPT)的概念,看看GPT的结构:


(这是网上找的图但我忘了出处可恶啊)

可以看到,GPT没了记录总扇区的位置,取而代之的是记录结束扇区的位置,稍加计算可以得到GPT下单个分区的大小最大可以达到惊人的18EB!

要是我有18EB的硬盘那该有多爽

3.     砍掉了16位实模式

UEFI只在32位/64位的环境下运行

4.     采用了EFI字节码

类似Java,UEFI的驱动编译出来是一堆EFI字节码,它需要在一个叫做DXE

(Driver eXecution Environment,驱动执行环境)的环境下运行。

DXE会在一开始的初始化的环节下加载(回去看UEFI启动流程的那张图)

5.     更多的接口

UEFI提供了更多的接口,支持图形界面、鼠标操作之类的东西(不信你看看现在的UEFI BIOS)

 

这篇专栏到这里就结束了

以上都是UP自己学习的见解,欢迎到评论区发表意见,让我们友善讨论!


详解UEFI和传统BIOS(Legacy)以及它们的区别的评论 (共 条)

分享到微博请遵守国家法律