与传统的BIOS引导相反, UEFI规范覆盖了硬件初始化开始到操作系统启动前的每一个步骤, 该规范主要分七个步骤,如下:
1.
安全性阶段(SEC):初始化临时缓存区, 即将Cpu的Cache设置为no
-
eviction模式, 并将整理的参数传递给BFV中找出的PEI入口函数。(在SEC阶段执行的代码是从SPI闪存运行)
2.
Pre
-
EFI 初始化阶段(PEI):配置内存控制器,初始化芯片组,并处理S3恢复过程。在此阶段执行的代码在临时内存中运行,直到初始化内存控制器为止。随后从DXE IPL PPI的Entry服务中找到DXE Image的入口函数并调用。
3.
驱动执行环境阶段(DXE):初始化系统管理模式(SMM) 和 DXE服务(Protocol)以及BS和RT服务。初始化完毕后DXE通过 EFI_BDS_ARCH_PROTOCOL找到BDS并调用入口函数。
4.
引导设备选择阶段(BDS):通过枚举可能包含UEFI兼容引导程序的PCI总线上的外围设备,来发现可以从中引导OS的硬件设备(Os loader)。
5.
临时系统加载阶段(TSL):操作系统加载器(Os loader)执行的第一阶段, 这个阶段是为Os loader准备执行环境,直至启动服务调用ExitBootServices(),系统将进入RT阶段。
6.
运行时阶段(RT):此时系统的控制权已由UEFI内核转交给Os loader手中, 随着Os loader的运行,最终会进入内核入口KiSystemStartup函数,将控制权完全交给OS。
7.
AL阶段:在RT阶段系统遇到灾难性错误会来到这(不做详细描述)。