UEFI学习总结

1.UEFI只是硬件和预启动软件间的接口规范,它是 UEFI Forum 发布的一种标准;
2.UEFI环境下不提供中断的机制,也就是说每个EFI驱动程序必须用轮询(polling)的方式来检查硬件状态,并且需要以解释的方式运行,较操作系统下的机械码驱动效率更低;
3.UEFI系统不提供复杂的缓存器保护功能,它只具备简单的缓存器管理机制,具体来说就是指运行在x64或x86处理器的64位模式或保护模式下,以最大寻址能力为限把缓存器分为一个平坦的段(Segment),所有的程序都有权限访问任何一段位置,并不提供真实的保护服务;
4.UEFI 提供给操作系统的借口包括启动服务(BS)和运行时服务(RT)以及隐藏在 BS 之后丰富的 Protocol;

启动服务:主要服务对象是操作系统加载器以及其他 UEFI 应用程序和 UEFI 驱动。操作系统加载器通过启动服务逐步取得对整个计算机系统资源的控制。当加载器完全控制计算机软硬件资源后,系统结束启动服务,进入运行时。启动服务主要包括:事件服务、内存管理、Protocol 管理、Protocol 使用类服务、驱动管理、Image 管理、ExitBootServices 服务。

运行时服务:主要服务对象是操作系统、操作系统加载器以及 UEFI 应用和 UEFI 驱动。运行时服务主要包括:时间服务、读写 UEFI 系统变量服务、虚拟内存服务、重启系统服务。

5.一旦引导软件将控制权交给操作系统,所有用于引导的服务代码将全部停止工作,部分运行时,该服务程序还可以继续工作,以便于操作系统一时无法找到特定设备的驱动程序时,该设备还可以继续被使用。

疑问:看上边描述,操作系统启动后,UEFI还会一直存在?

6.EFI应用程序和EFI驱动程序可以是PE格式的.efi文件,可用C语言编写。

7.UEFI 的优点:
可以使用 C++ 编写,提高开发效率。
驱动的模块化设计和软硬件升级的兼容性,每个表、Protocol 都有版本号,易于升级。
基于事件的异步操作,提高 CPU 利用率;舍弃中断,仅保留时钟中断。
先检测程序和驱动的证书,提高安全性。

8.UEFI 系统从加电到关机可分为七个阶段:
SEC(安全验证)->PEI(EFI前期初始化)->DXE(驱动执行环境)->BDS(启动设备选择)->TSL(操作系统加载前期)->RT(Run Time)->AL(系统灾难恢复期)

其中前三个阶段是 UEFI 初始化阶段,DXE 阶段结束后 UEFI 环境已经准备完毕。BDS 和 TSL 是操作系统加载器作为 UEFI 应用程序运行阶段。

以上资料摘抄自:
UEFI 概述
第一章 UEFI 概述
第三章 UEFI 工程模块文件
《UEFI原理与编程》读书笔记(工具书类)
UEFI原理与编程学习笔记(一)——UEFI概述
UEFI相关源码







你可能感兴趣的:(linux)