UEFI(Unified Extensible Firmware Interface,統一可延伸韌體介面)是新一代BIOS韌體,用來定義作業系統與系統靭體之間的軟體介面,為OS與Device FW之間架設一個軟體介面,用於替代傳統BIOS的升級規格,主要功能是負責開機自我檢測、聯繫OS以及提供連接OS與Device的介面。
UEFI無須手動地使作業系統從預啟動的操作環境(如:在系統啟動之後,但是作業系統開始運作之前),加載到一種作業系統上,這類作業系統可以是Windows或者是Linux。UEFI將提供一個明確的在作業系統與開機時啟動固定於硬體中的軟體平台之間的介面規範。UEFI還支持一種用於初始化插卡的獨立於電腦架構的裝置。
最初制定的EFI版本為2000年12月的1.02版,在2002年12月又加入EFI驅動程式模型的1.10版。於2005年,Intel將此規格提供給負責UEFI開發和推廣的UEFI論壇,因此EFI也被更名為UEFI,依照UEFI論壇規範,使用C語言寫作的BIOS即為UEFI BIOS。
UEFI用模組化之C語言方式的參數堆疊傳遞,藉由動態連結形式所建構出來的系統,相較於使用組合語言的傳統BIOS更易於實作,在容錯和錯誤更正的表現上更加良好,更好開發。
UEFI BIOS與傳統BIOS比較:
1.定址空間更彈性
傳統BIOS是以真實模式中斷向量的方式增加硬體功能,要將一段類似於驅動程式的16位元代碼,放置在記憶體0x000C0000至0x000DFFFF之間,而這段記憶體空間有限最大為128KB。
UEFI BIOS是以32或64位元CPU保護模式執行,也稱為Flat Mode,突破傳統16位元代碼的定址能力,可達到CPU的最大定址空間。UEFI 利用載入EFI driver的形式,來進行硬體的辨識、控制及系統資源掌控,UEFI可以更有系統的分配儲存空間,避免使用強制定址。
2.可適用於任何系統
傳統BIOS的硬體服務程式都是以16位元代碼的形式存在,在增強模式下執行的作業系統想存取這些服務會有困難,因此BIOS提供的服務在現實中只能提供給MS-DOS之類的系統用。
UEFI系統下的驅動並不是可以直接在CPU執行的代碼,而是用EBC(EFI Byte Code)這種專用於EFI driver的虛擬機器指令,該指令必須在UEFI的DXE階段被解壓縮後翻譯執行,便有更佳的向下相容性,因為EFI driver是彈性的驅動程式模組架構,可不斷的擴充驅動程式及介面,不用重新編寫,就無需考慮因系統升級所衍生的相容性因素。
3.開發維護容易
EFI driver開發簡單,所有的PC零組件廠商都可以參與,這樣的模式曾使Windows系統短短幾年就變得無比強大。有EFI driver,也可以讓顯示卡在開機階段就載入某種程度的功能,進而可以把傳統文字介面為主的BIOS轉成圖形介面。
4. 精簡系統
EFI Shell,這是精簡的作業系統,可以讓使用者進行BIOS的更新、系統診斷、安裝特定軟體。
支援UEFI的作業系統:
(1).2000年,Linux作業系統便可以支援EFI。
(2).蘋果電腦Mac OS X 10.4(代號Tiger)的Intel版支援EFI。
(3).2002年微軟給Itanium CPU使用的Windows 2000,其中Advanced Server Limited Edition及Datacenter Server Limited Edition版支援了EFI v1.10規範。對UEFI的支援是從Windows Server 2008和Vista SP1的64位元版本開始,包括Windows 7也只有64位元版完整支援UEFI。
Microsoft強制新作業系統Windows 8,無論CPU採用x86或ARM架構的系統,軔體都必須使用UEFI規格,應用領域包含NB及平板電腦等。
傳統BIOS vs UEFI BIOS比較:
種類 |
傳統BIOS |
UEFI BIOS |
程式語言 |
組合語言 |
C語言 |
資源控制 |
中斷向量
寫死的記憶體存取
寫死的輸出/輸入存取 |
驅動程式/協定 |
處理器運行環境 |
X86 16位元 |
CPU保護模式 |
擴充方式 |
接合中斷向量 |
載入驅動程式 |
第三方IHV和ISV支援性 |
較差 |
較佳且可以支援多平台 |
圖形化能力 |
較差 |
較佳 |
內建簡化的作業系統前環境 |
無 |
有 |
資料來源:Techbang
UEFI BIOS開機,能使開機速度更快,而相較於過去大多僅能以鍵盤方向鍵操作,以及僅有文字敘述為主的操作選單呈現,使用者在UEFI中可直接透過圖形化介面操作開機模式,更容易明白選項功能所在,而硬體廠商也更能客製化識別圖示呈現或內容說明。UEFI也能允許使用者從其他外接裝置啟動系統,如光碟機或隨身碟等,比起過去傳統BIOS可能會無法正常識別較新的連接裝置,透過UEFI即可對應更多新連接規格的外接裝置。