刚开始学习开发UEFI,分享以下学习过程,有不足之处,还请大佬指正

一、什么是UEFI?

UEFI:

  • 英文全称:Unified Extensible Firmware Interface,
  • 中文名字:统一可扩展固件接口;
  • 它定义了操作系统与平台固件之间的接口,
  • 它是BIOS的替代品。

二、UEFI 的系统组成

  • UEFI提供给操作系统的接口包括启动服务BS和运行时服务RT以及隐藏在BS之后的丰富的Protocol。
  • BS和RT在C语言中以结构体的形式存在。
    在这里插入图片描述

三、UEFI系统的启动过程

SEC安全验证

PEI前期初始化

DXE驱动执行环境

BDS启动设备选择

TSL操作系统加载前期

RT运行时

AL系统灾难恢复期

其中,

  • 前三个阶段是UEFI初始化阶段,DXE阶段结束后,UEFI环境准备完毕。
  • BDS和TSL是操作系统加载器作为UEFI应用程序运行的阶段。
  • 操作系统加载器调用ExitBootServices( )服务后进入RT阶段,RT阶段包括操作系统加载器后期和操作系统运行期。一旦ExitBootServices( )服务被调用,一切EFI Boot Services就不能再被调用,而只能调用EFI Runtime Services。
  • 只有当系统硬件或操作系统出现严重错误不能继续正常运行时,固件回尝试修复错误,这是系统进入AL期。
    在这里插入图片描述
    在这里插入图片描述

名词解释

  • UEFI(Unified Extensible Firmware Interface)【统一可扩展固件接口】
  • BS(Boot Services)【启动服务】
  • RT(Runtime Service)【运行时服务】
  • SEC(Security Phase)安全认证
  • PEI(Pre-EFI Initialization)UEFI 前期初始化
  • DXE(Driver Excution Environment)驱动执行环境
  • BSD(Boot Device Selection)启动设备选择
  • TSL(Transient System Load)操作系统加载器
  • RT(Run Time)系统运行时
  • AL(After Life)

版权声明:本文为downanddusk原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/downanddusk/article/details/106770399