iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

接續昨天的 UEFI (統一可延伸韌體介面),UEFI 的前身是 Intel 在 1998 年開發的 EFI,2005 年時交由 UEFI 論壇來推廣與發展,並正式更名為 UEFI。UEFI 為電腦的操作系統和平台韌體之間的介面定義了新的模型,用以取代傳統的 BIOS。UEFI 程式有 99% 用 C 語言撰寫,部分 Assembly、ASL,並需要使用特定開發工具,例如 EDK II 或 TianoCore2。

UEFI開機流程分為下列階段:

  1. SEC (Security Phase)
    這個階段從 Cold Boot 開始執行所有 CPU 初始化程式碼 (Assembly)。它會設定暫存器、堆疊和暫存器,並尋找 PEI Core。
  2. PEI (Pre-EFI Initialization)
    這個階段包含了初始化記憶體 (MRC) 和其他硬體的程式。它會建立 HOB (Hand-Off Block) 資料結構,並將控制權交給 DXE Core。
  3. DXE (Driver Execution Environment)
    這個階段包含了執行 UEFI 驅動程式和應用程式的環境。它會建立 EFI 系統表、協定資料庫和事件佇列,並提供一些服務和介面,例如 Boot Services, Runtime Services, Dispatcher Services 等。
  4. BDS (Boot Device Selection)
    這個階段包含了選擇 Boot Device 和載入 Boot Loader 的程式。這時會讀取開機裝置並顯示開機選單,以讓 User 選擇要啟動的 OS 或其他應用程式如 Shell。

UEFI BIOS 與 Legacy BIOS 相比:

  1. 支援超過2TB的硬碟
    UEFI BIOS 可以使用 GPT 磁碟分區,GPT 支援最高 9.4ZB 的磁碟容量,並且可建立最多 128 個主分割區; 而Legacy BIOS只能使用MBR磁碟分區,MBR 支援最多 2TB 的磁碟容量,MBR 最多建立 4 個主分割區。
  2. Secure Boot
    可以防止開機時載入不受信任的程式,它會檢查數位簽章,且只允許已認證的程式執行。
  3. 更好的 UI
    UEFI BIOS 的介面更加直覺、有更好的互動性,且支援滑鼠操作和多國語言。由於用 C 撰寫,更易於實現複雜的Graphic UI,使各家廠商 BIOS 呈現完全不同的風格。
  4. Fast Boot
    它會跳過一些不必要的 BIOS 步驟,以大幅減少開機時間,直接進入作業系統,但可能會有一些副作用,如部分裝置無法被識別或正常運作。

UEFI 也提供了一些硬體資訊表給作業系統

  1. ACPI
    用來描述硬體設備和電源管理的資訊表,讓作業系統可以控制硬體的開關和省電模式。
  2. SMBIOS
    用來描述主機板、記憶體、處理器等系統資訊的資訊表,讓作業系統可以識別和管理硬體元件。

ACPI 與我要實作的功能有關,明日再續。

參考:

  1. https://uefi.org/specifications
  2. https://zh.wikipedia.org/zh-tw/統一可延伸韌體介面

上一篇
[Day 02] BIOS
下一篇
[Day 6] ACPI
系列文
我的第一個 BIOS 與 Web API 應用程式15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言