刚开始学习开发UEFI,分享以下学习过程,有不足之处,还请大佬指正
一、什么是UEFI?
UEFI:
- 英文全称:Unified Extensible Firmware Interface,
- 中文名字:统一可扩展固件接口;
- 它定义了操作系统与平台固件之间的接口,
- 它是BIOS的替代品。
二、UEFI 的系统组成
- UEFI提供给操作系统的接口包括启动服务BS和运行时服务RT以及隐藏在BS之后的丰富的Protocol。
- BS和RT在C语言中以结构体的形式存在。
三、UEFI系统的启动过程
其中,
- 前三个阶段是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)