天天看點

我的BIOS之行(5)-UEFI的世界觀UEFI的世界觀

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之行(5)-UEFI的世界觀UEFI的世界觀

上面這張圖說明了整個bios的過程。

在這個過程中有3個元件是uefi一定會用到的。當然在此你隻需要了解一下即可。

  • 啟動服務 bootservices(BS)
  • 運作時服務 runtimeservice(RT)
  • protocol

uefi啟動過程大約分成

sec->pei->dxe->bds->tsl->osloader->os

當然如果發生錯誤的話,會進al

這些當做自己的了解即可,先不用深究

下面筆者将介紹各個過程

sec

主要工作:前期驗證

功能:

  1. 接受并處理系統啟動和重新開機信号

系統加電信号

系統重新開機信号

系統運作過程中的嚴重異常信号

2.初始化臨時的存儲區域

3. 作為可信系統的根

4. 傳遞參數給pei

系統目前狀态,友善pei去檢查系統健康

可啟動固件的大小與位址

臨時ram區域的位址與大小

棧的位址與大小

pei

主要工作:為dxe準備執行環境,将資訊組成hob清單給dex

這裡不介紹hob是什麼,屆時會一一解說

功能:

  1. pei foundation 負責pei基礎服務和流程
  2. peimodule 找出所有的peim,并根據peim之間的依賴關系順序執行peim

pei的順序

初始化pei core service->排程peimodule->準備hob->dex ipl

排程peimodule也有順序

cpupeim->platfrom初始化->memory初始化

dxe

主要工作:系統初始化

dxe入口->根據hob初始化系統服務->排程driver->打開entry->bds

bds

主要工作:

執行啟動政策

功能:

初始化控制台裝置

加載必要的裝置驅動

根據系統設定加載和執行啟動項

好了筆者大緻對啟動流程介紹到這。

繼續閱讀