UEFI的世界觀
如果有人對BIOS有興趣,那麼不得不提UEFI了。當然筆者這邊隻是代碼與說明的搬運工,通過UEFI組織的官方文檔來帶大家了解UEFI。當然您要是覺得筆者就是個DB,想直接翻UEFI的文檔,不想看筆者的瞎逼文章的話,請直接點選這裡,自行下載下傳看就是了。
UEFI的簡介
文章開頭就開始介紹了UEFI的由來~~~,感覺風中在淩亂~
并在構成介紹中說明第一章是
Introduces the UEFI Specification and topics related to using the specification.
開頭翻譯如下:
這個統一可擴充固件接口(UEFI)說明書描述了作業系統與平台固件的接口。UEFI是由EFI演變而來,因而UEFI的code與某些protocol的命名還是保持與EFI一緻。除非另有說明,本文中EFI的名稱是被認為UEFI的一部分。
但筆者絕對不是這樣一個循規蹈矩的人,看這些簡介貌似對我沒有任何漲進的地方,現在不可能還有用EFI架構的BIOS吧。
是以基本上我們可以跳過這段,但在這裡筆者也不能什麼都不說,因而在做簡介的時候,讓我們先來了解一下bios。

上面這張圖說明了整個bios的過程。
在這個過程中有3個元件是uefi一定會用到的。當然在此你隻需要了解一下即可。
- 啟動服務 bootservices(BS)
- 運作時服務 runtimeservice(RT)
- protocol
uefi啟動過程大約分成
sec->pei->dxe->bds->tsl->osloader->os
當然如果發生錯誤的話,會進al
這些當做自己的了解即可,先不用深究
下面筆者将介紹各個過程
sec
主要工作:前期驗證
功能:
- 接受并處理系統啟動和重新開機信号
系統加電信号
系統重新開機信号
系統運作過程中的嚴重異常信号
2.初始化臨時的存儲區域
3. 作為可信系統的根
4. 傳遞參數給pei
系統目前狀态,友善pei去檢查系統健康
可啟動固件的大小與位址
臨時ram區域的位址與大小
棧的位址與大小
pei
主要工作:為dxe準備執行環境,将資訊組成hob清單給dex
這裡不介紹hob是什麼,屆時會一一解說
功能:
- pei foundation 負責pei基礎服務和流程
- peimodule 找出所有的peim,并根據peim之間的依賴關系順序執行peim
pei的順序
初始化pei core service->排程peimodule->準備hob->dex ipl
排程peimodule也有順序
cpupeim->platfrom初始化->memory初始化
dxe
主要工作:系統初始化
dxe入口->根據hob初始化系統服務->排程driver->打開entry->bds
bds
主要工作:
執行啟動政策
功能:
初始化控制台裝置
加載必要的裝置驅動
根據系統設定加載和執行啟動項
好了筆者大緻對啟動流程介紹到這。