2018年11月4日 星期日

UEFI BIOS 架構 (4) BDS SMM VFR

BDS(Boot Service Selection)是BIOS開機的第四階段, 這階段會依照這套BIOS的設定去選擇boot的方式, 這些設定都存在變數(Variable)或Protocol裡, 變數與Protocol以後都會有專文介紹, 系微教材說BDS只會去連結Driver Model Driver但我不這麼認為(可能教材只是為了方便新人歸類理解), 總之BDS會去連接DXE driver, 同一支DXE driver第一次連結失敗時BDS會先把控制權轉給DXE(上一篇說過了, 也許BDS做了一些事讓DXE Dispatcher能Dispatch 更多Driver), 但是當第二次連結又失敗BDS會判斷BIOS壞掉了, 這時可能會自動關機或有其他處置方式

還有一個很重要的東西叫SMM(System Management Mode), SMM是一種極高優先權的模式, 進入的方法是使用者觸發SMI(System Management Interrupt), 所以我們必須在DXE階段註冊好當發生各種SMI時必須執行那些相對應的code, 比如按下電源鍵是一種SMI, 所以我們在DXE階段會把按下電源鍵要執行的code先寫好, 如此當使用者按下電源鍵就會跑我們註冊好的code, 跑完了再跳出SMM

最後講一下VFR, VFR控制BIOS選單(Menu), 圖形如下所示(以後會有專文介紹VFR)


沒有留言:

張貼留言