问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

BIOS和UEFI的区别

创作时间:
作者:
@小白创作中心

BIOS和UEFI的区别

引用
CSDN
1.
https://blog.csdn.net/py199122/article/details/120055042

UEFI(统一可扩展固件接口)是现代计算机系统中用于替代传统BIOS的新型固件接口标准。它不仅提供了更强大的硬件支持和更高的安全性,还带来了更灵活的启动选项。本文将详细介绍UEFI的工作原理、安全特性以及与传统BIOS的主要区别。

一:什么是UEFI

The Unified Extensible Firmware Interface (UEFI) Specification, previously known as the Extensible Firmware Interface (EFI) Specification, defines an interface between an operating system and platform firmware. The interface consists of data tables that contain platform-related information, boot service calls, and runtime service calls that are available to the operating system and its loader. These provide a standard environment for booting an operating system and running pre-boot applications.

1:自己的理解,为什么有uefi?

uefi和legacy是BIOS不同的启动模式。legacy可以理解为旧模式,uefi为新模式。在旧模式下,主机上各个硬件的交互,硬件与软件的交互没有统一的标准。导致很多问题难以解决,典型的就是电源管理,设备配置界面。在这种历史背景下Intel联合微软,惠普等巨头制定了UEFI,统一可扩展固件接口。

借鉴了软件编程的理念,协议化,接口化,可扩展化。UEFI本身是一个协议,如下图所示,有很多protocol支持完成各种功能,protocol就是完成各种功能的函数指针集合,如加载image。现在uefi通常代指新的启动模式。

uefi模式带来的变化:

1):接口协议化,让PCIE的uefi driver容易编写,提供HII接口,可以直接在BIOS setup界面配置cpu,设备参数。

2):支持GPT设备,解除了磁盘2T的限制。

3):增加了很多安全功能。参考下文

4):支持更多的启动设备。

2:启动流程

UEFI启动流程如下,每个阶段名称缩写参考图片:

1):SEC是security,执行硬件相关的安全认证

2):PEI,包括CPU,内存,chipset初始化等。最初内存没有ready,程序运行在cache中。

3):DXE,会把uefi驱动全部注册,然后把设备全部注册,使用connect_all函数双循环去匹配设备和驱动,最后bind在一起。

4):BDS,将能启动的设备生成启动项,供用户选择。包括磁盘,USB,网络,cd等等。

5):BIOS下选择了一个系统启动项,实际进入了UEFI的APP中,Linux一般是grub。它的作用是将磁盘中的kernel加载到内存,然后跳转kernel的入口函数。grub还会把内核参数传递到制定位置,kernel启动后还会再用。

BIOS到OS的过程:

1):UEFI负责初始化硬件设备,包括CPU,MEM,外接设备的初始化,资源分配等。

2):UEFI转到OS时,内存已经包括很多有用信息。包括mem table(e820),ACPI table,SMBIOS table等等。OS会拿到信息进行内存构建,设备再次初始化等等。

简而言之:BIOS负责初始化好硬件设备,让它处于ready状态,OS负责管理资源,向用户态程序提供服务。最后应用程序使用服务,向普通的user提供服务。

二:安全性

1:UEFI secure Boot

UEFI支持安全启动模式。

2:UEFI支持设备固件签名

支持用户在SETUP配置界面查看外接设备的校验信息。

3:UEFI支持安全开发包,开发者可以直接使用,增强安全。

4:SMM角度保护系统:

5:Network Boot in a Zero-Trust Environment with UEFI

三:OS兼容列表

1:centos

This page describes the current status of UEFI support in CentOS and what is being done to fix the remaining issues.

Current status for x86_64 install media

media VirtualBox VMWare Real iron

CentOS 6.5 DVD OK OK OK1

CentOS 6.5 minimal OK to be verified OK2

CentOS 6.5 netinstall gets stuck in UEFI shell not working TBD

CentOS 6.5 LiveCD gets stuck in GRUB to be verified TBD

CentOS 6.5 LiveDVD gets stuck in GRUB to be verified TBD

CentOS 7 (any media) OK OK OK

centos6.5以上应该都支持UEFI模式。

RHEL 7 Beta and RC can be booted with Secure Boot enabled.

2:redhat

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号