我的BIOS之行3-UEFI的简介

发布时间 2023-08-15 14:21:24作者: King_Alex

UEFI的世界观

如果有人对BIOS有兴趣,那么不得不提UEFI了。当然笔者这边只是代码与说明的搬运工,通过UEFI组织的官方文档来带大家了解UEFI。当然您要是觉得笔者就是个DB,想直接翻UEFI的文档,不想看笔者的瞎逼文章的话,请直接点击这里,自行下载看就是了。

UEFI的简介

文章开头就开始介绍了UEFI的由来~~~,感觉风中在凌乱~

并在构成介绍中说明第一章是

Introduces the UEFI Specification and topics related to using the specification.

开头翻译如下:

这个统一可扩展固件接口(UEFI)说明书描述了操作系统与平台固件的接口。UEFI是由EFI演变而来,因而UEFI的code与某些protocol的命名还是保持与EFI一致。除非另有说明,本文中EFI的名称是被认为UEFI的一部分。

但笔者绝对不是这样一个循规蹈矩的人,看这些简介貌似对我没有任何涨进的地方,现在不可能还有用EFI架构的BIOS吧。

所以基本上我们可以跳过这段,但在这里笔者也不能什么都不说,因而在做简介的时候,让我们先来了解一下bios。

上面这张图说明了整个bios的过程。
在这个过程中有3个组件是uefi一定会用到的。当然在此你只需要了解一下即可。

  • 启动服务 bootservices(BS)
  • 运行时服务 runtimeservice(RT)
  • protocol

uefi启动过程大约分成
sec->pei->dxe->bds->tsl->osloader->os

当然如果发生错误的话,会进al

这些当做自己的了解即可,先不用深究

下面笔者将介绍各个过程

sec

主要工作:前期验证
功能:

  1. 接受并处理系统启动和重启信号

系统加电信号
系统重启信号
系统运行过程中的严重异常信号

2.初始化临时的存储区域
3. 作为可信系统的根
4. 传递参数给pei

系统当前状态,方便pei去检查系统健康
可启动固件的大小与地址
临时ram区域的地址与大小
栈的地址与大小

pei

主要工作:为dxe准备执行环境,将信息组成hob列表给dex

这里不介绍hob是什么,届时会一一解说

功能:

  1. pei foundation 负责pei基础服务和流程
  2. peimodule 找出所有的peim,并根据peim之间的依赖关系顺序执行peim

pei的顺序
初始化pei core service->调度peimodule->准备hob->dex ipl

调度peimodule也有顺序
cpupeim->platfrom初始化->memory初始化

dxe

主要工作:系统初始化
dxe入口->根据hob初始化系统服务->调度driver->打开entry->bds

bds

主要工作:
执行启动策略
功能:
初始化控制台设备
加载必要的设备驱动
根据系统设置加载和执行启动项

好了笔者大致对启动流程介绍到这。