一、SEC 安全驗證安全
SEC(Security Phase)階段是平臺初始化的第一個階段,計算機系統加電後進入這個階段。函數
1)接收並處理系統啓動和重啓信號:系統加點信號、系統重啓信號、系統運行過程當中的嚴重異常信號,確認BIOS是否被篡改,沒法由BIOS獨立完成,需額外硬件幫助。spa
2)初始化臨時存儲區域,在SEC階段,僅CPU和CPU、內部資源被初始化,各類外部設備和內存都沒有被初始化,須要CPU中的L2 cache來做爲RAM(Cache AS RAM),而後將部分BIOS代碼加載到Seccurity environment中來。操作系統
3)做爲系統信任的根源,只有根源被信任,其後續才能信任。blog
4)傳遞系統參數給下一個階段(即PEI),SEC階段的一切工做都是爲PEI階段作準備,最終SEC要把控制權轉交給PEI,同時要將現階段的成果彙報給PEI。內存
SEC階段執行流程資源
二、PEI 前期初始化it
PEI即(Pre-EFI Intitialization)階段資源仍然十分有限,內存到了PEI後期才被初始化,其主要功能是爲DXE準備執行環境,將須要傳遞到DXE的信息組成HOB(Handoff Block)列表,最終將控制權轉交到DXE手中。io
PEI可分爲如下兩部分:基礎
1)PEI內核:負責PEI基礎服務和流程
2)PEIM(PEI Module)派遣器:主要功能是找出系統中的全部PEIM,並根據PEIM之間的依賴關係按順序執行PEIM。PEI階段對系統的初始化主要是由PEIM完成的。
PEI執行流程圖:
經過PeiServices,PEIM可使用PEI階段提供的系統服務,經過這些系統服務,PEIM能夠訪問PEI內核。PEIM之間的通訊經過PPI(PEIM-to-PEIM Interfaces)完成。每一個PPI都有一個GUID。
三、DXE 驅動執行環境
DXE(Driver Execution Environment)階段執行大部分系統初始化工做,進入此階段時,內存已經能夠被徹底使用,於是此階段能夠進行大量的複雜工做。
DXE能夠分爲如下兩部分:
1)DXE內核:負責DXE基礎服務和執行流程
2)DXE派遣器:負責調度執行DXE驅動,初始化系統設備。
DXE執行流程:
DXE驅動之間經過Protocol通訊,Protocol是一種特殊的結構體,每一個Protocol對應一個GUID。當全部的Driver都執行完畢後,系統完成初始化,DXE經過EFI_BDS_ARCH_PROTOCOL找到BDS並調用BDS的入口函數,從而進入BDS階段。從本質上講,BDS是一種特殊的DXE階段的應用程序。
四、BDS 啓動設備選擇
BDS(Boot Device Selection)的主要功能是執行啓動策略,其主要功能包括:
1)初始化控制檯設備
2)加載必要的設備驅動
3)根據系統設置加載和執行啓動項
4)鏈接默認控制檯輸入輸出
5)在屏幕上顯示徽標或系統信息
6)鏈接全部設備和驅動程序
7)枚舉全部啓動選項設備
8)引導到系統,用戶選中某個啓動項(或系統進入默認的啓動項)後,OS Loader啓動,系統進入TSL階段。
總而言之:發現啓動設備,進入SCU,啓動選擇界面,開啓輸入輸出設備
BDS執行流程:
1)初始化輸入輸出
2)check熱鍵是否被按 A:是,進入BIOS/UEFI B:否,Boot by BootOrder
3)OS Loader call ExitBootServices() to end BDS 並開始runtime timer
五、TSL 操做系統加載前期
TSL(Transient System Load)是操做系統加載器執行的第一階段,在這一階段OS Loader做爲一個UEFI應用程序運行,系統資源仍然由UEFI內核控制。當啓動服務的ExitBootServices()服務被調用後,系統進入Run Time階段。TSL階段之因此稱爲臨時系統,在於它存在的目的就是爲操做系統加載器準備執行環境。雖然是臨時系統,但其功能已經很強大,已經具有了操做系統的雛形,UEFI Shell是這個臨時系統的人機交互界面。正常狀況下,系統不會進入UEFI Shell,而是直接執行操做系統加載器,只有在用戶干預下或操做系統加載器遇到嚴重錯誤時纔會進入UEFI Shell。
六、RT 運行時
RT(Run Time)系統進入RT階段後,系統的控制權從UEFI內核轉交到OS Loader手中,UEFI佔用的各類資源被回收到OS Loader,僅有UEFI運行時服務保留給OS Loader和OS使用。隨着OS Loader的執行,OS最終取得對系統的控制權。
七、AL 系統災難恢復期
在RT階段,若是系統(硬件或軟件)遇到災難性錯誤,系統固件須要提供錯誤處理和災難恢復機制,這種機制運行在AL(After Life)階段。UEFI和UEFI PI標準都沒有定義此階段的行爲和規範。