UEFI

UEFI

提供連接操作系統與硬件的接口
新型UEFI,全稱“統一的可擴展固件接口”(Unified Extensible Firmware Interface), 是一種詳細描述類型接口的标準。這種接口用于操作系統自動從預啟動的操作環境,加載到一種操作系統上。UEFI是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified EFI Form的國際組織。可擴展固件接口(Extensible Firmware Interface,EFI)是 Intel 為 PC 固件的體系結構、接口和服務提出的建議标準。其主要目的是為了提供一組在 OS 加載之前(啟動前)在所有平台上一緻的、正确指定的啟動服務,被看做是有近20多年曆史的 BIOS 的繼任者。[1]
    中文名:統一可擴展固件接口 外文名: 别名: 英文名:Unified Extensible Firmware Interface 簡稱:UEFI 所有者:Unified EFI Form

百科名片

新型UEFI,全稱“統一的可擴展固件接口”(Unified Extensible Firmware Interface), 是一種詳細描述全新類型接口的标準。這種接口用于操作系統自動從預啟動的操作環境,加載到一種操作系統上,從而使開機程序化繁為簡,節省時間。

簡介

可擴展固件接口(Extensible Firmware Interface,EFI)是 Intel 為全新類型的 PC 固件的體系結構、接口和服務提出的建議标準。其主要目的是為了提供一組在 OS 加載之前(啟動前)在所有平台上一緻的、正确指定的啟動服務,被看做是有近20多年曆史的PC BIOS的繼任者。

由于電腦教育普及,很多人都知道BIOS就是Basic Input/Output System,翻成中文是“基本輸入/輸出系統”,是一種所謂的“固件”,負責在開機時做硬件啟動和檢測等工作,并且擔任操作系統控制硬件時的中介角色。

然而,那些都是過去DOS 時代的事情,自從Windows NT出現,Linux 開始嶄露頭角後,這些操作系統已将過去需要通過BIOS完成的硬件控制程序放在操作系統中完成,不再需要調用BIOS功能。一般來說,當今所謂的“電腦高手”,多半是利用BIOS來對硬件性能做些超頻調校,除了專業人士外,鮮有人再利用 BIOS 進行底層工作。

因為硬件發展迅速,傳統式(Legacy)BIOS 成為進步的包袱,現在已發展出最新的EFI(Extensible Firmware Interface)可擴展固件接口,以現在傳統 BIOS 的觀點來說,未來将是一個“沒有特定 BIOS”的電腦時代。

UEFI是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified EFI Form的國際組織,貢獻者有Intel,Microsoft,AMI,等幾個大廠,屬于open source,目前版本為2.3.1。與legacy BIOS 相比,最大的幾個區别在于:

1. 編碼99%都是由C語言完成;

2. 一改之前的中斷、硬件端口操作的方法,而采用了Driver/protocol的新方式;

3. 将不支持X86實模式,而直接采用Flat mode(也就是不能用DOS了,現在有些 EFI 或 UEFI 能用是因為做了兼容,但實際上這部分不屬于UEFI的定義了);

4. 輸出也不再是單純的二進制code,改為Removable Binary Drivers;

5. OS啟動不再是調用Int19,而是直接利用protocol/device Path;

6. 對于第三方的開發,前者基本上做不到,除非參與BIOS的設計,但是還要受到ROM的大小限制,而後者就便利多了。

7.彌補BIOS對新硬件的支持不足的毛病。

UEFI将是近3年的趨勢,到時候對于PC的利用以及維護都将步入一個新的時代。

結構

UEFI使用模塊化設計,它在邏輯上可分為硬件控制和OS軟件管理兩部分:操作系統—可擴展固件接口—固件—硬件。

根據UEFI概念圖的結構,可把uEFI概念劃為兩部分:uEFI的實體 (uEFI Image)跟平台初始化框架。

uEFI的實體-uEFI Image

(圖中藍框圍起部分)

根據uEFI規範定義,uEFI Image包含三種:uEFI Applications, OS Loaders and uEFI Drivers。

uEFI Applications是硬件初始化完,操作系統啟動之前的核心應用,比如:啟動管理、BIOS設置、uEFI Shell、診斷程式、調度和供應程式、調試應用...等等

OS Loaders是特殊的uEFI Application,主要功能是啟動操作系統并退出和關閉uEFI應用。

uEFI Drivers是提供設備間接口協議,每個設備獨立運行提供設備版本号和相應的參數以及設備間關聯,不再需要基于操作系統的支持。

平台初始化框架

uEFI框架主要包含兩部分,一是PEI(EFI預初始化),另一部分是驅動執行環境 (DXE)。

PEI主要是用來檢測啟動模式、加載主存儲器初始化模塊、檢測和加載驅動執行環境核心。

DXE是設備初始化的主要環節,它提供了設備驅動和協議接口環境界面。

UEFI

沒有一項技術可以像BIOS一樣從PC興起以來一直發展到現在卻沒有變,不過主闆制造商微星最近表示,我們熟悉的BIOS可能會在三年内被UEFI取代用戶的需求和存儲技術的進步讓UEFI的實施成為非常容易的工作,因此不需要付出太多的資源就可以實現轉換。

優點

糾錯特性

與BIOS顯着不同的是,UEFI是用模塊化、C語言風格的參數堆棧傳遞方式、動态鍊接的形式構建系統,它比BIOS更易于實現,容錯和糾錯特性也更強,從而縮短了系統研發的時間。更加重要的是,它運行于32位或64位模式,突破了傳統16位代碼的尋址能力,達到處理器的最大尋址,此舉克服了BIOS代碼運行緩慢的弊端。

兼容性

與BIOS不同的是,UEFI體系的驅動并不是由直接運行在CPU上的代碼組成的,而是用EFI Byte Code(EFI字節代碼)編寫而成的。Java是以“Byte Code”形式存在的,正是這種沒有一步到位的中間性機制,使Java可以在多種平台上運行。UEFI也借鑒了類似的做法。EFI Byte Code是一組用于UEFI驅動的虛拟機器指令,必須在UEFI驅動運行環境下被解釋運行,由此保證了充分的向下兼容性。

一個帶有UEFI驅動的擴展設備既可以安裝在使用安騰的系統中,也可以安裝在支持UEFI的新PC系統中,它的UEFI驅動不必重新編寫,這樣就無須考慮系統升級後的兼容性問題。基于解釋引擎的執行機制,還大大降低了UEFI驅動編寫的複雜門檻,所有的PC部件提供商都可以參與。

鼠标操作

UEFI内置圖形驅動功能,可以提供一個高分辨率的彩色圖形環境,用戶進入後能用鼠标點擊調整配置,一切就像操作Windows系統下的應用軟件一樣簡單。

可擴展性

UEFI将使用模塊化設計,它在邏輯上分為硬件控制與OS(操作系統)軟件管理兩部分,硬件控制為所有UEFI版本所共有,而OS軟件管理其實是一個可編程的開放接口。借助這個接口,主闆廠商可以實現各種豐富的功能。比如我們熟悉的各種備份及診斷功能可通過UEFI加以實現,主闆或固件廠商可以将它們作為自身産品的一大賣點。UEFI也提供了強大的聯網功能,其他用戶可以對你的主機進行可靠的遠程故障診斷,而這一切并不需要進入操作系統。

圖形界面

目前UEFI主要由這幾部分構成:UEFI初始化模塊、UEFI驅動執行環境、UEFI驅動程序、兼容性支持模塊、UEFI高層應用和GUID磁盤分區組成。

UEFI初始化模塊和驅動執行環境通常被集成在一個隻讀存儲器中,就好比如今的BIOS固化程序一樣。UEFI初始化程序在系統開機的時候最先得到執行,它負責最初的CPU、北橋、南橋及存儲器的初始化工作,當這部分設備就緒後,緊接着它就載入UEFI驅動執行環境(Driver Execution Environment,簡稱DXE)。當DXE被載入時,系統就可以加載硬件設備的UEFI驅動程序了。DXE使用了枚舉的方式加載各種總線及設備驅動,UEFI驅動程序可以放置于系統的任何位置,隻要保證它可以按順序被正确枚舉。借助這一點,我們可以把衆多設備的驅動放置在磁盤的UEFI專用分區中,當系統正确加載這個磁盤後,這些驅動就可以被讀取并應用了。在這個特性的作用下,即使新設備再多,UEFI也可以輕松地一一支持,由此克服了傳統BIOS捉襟見肘的情形。UEFI能支持網絡設備并輕松聯網,原因就在于此。

值得注意的是,一種突破傳統MBR(主引導記錄)磁盤分區結構限制的GUID(全局唯一标志符)磁盤分區系統将在UEFI規範中被引入。MBR結構磁盤隻允許存在4個主分區,而這種新結構卻不受限制,分區類型也改由GUID來表示。在衆多的分區類型中,UEFI系統分區用來存放驅動和應用程序。很多朋友或許對這一點感到擔心:當UEFI系統分區遭到破壞時怎麼辦?而容易受病毒侵擾更是UEFI被人诟病的一大緻命缺陷。事實上,系統引導所依賴的UEFI驅動通常不會存放在UEFI系統分區中,當該分區的驅動程序遭到破壞,我們可以使用簡單方法加以恢複,根本不用擔心。

X86處理器能夠取得成功,與它良好的兼容性是分不開的。為了讓不具備UEFI引導功能的操作系統提供類似于傳統BIOS的系統服務,UEFI還特意提供了一個兼容性支持模塊,這就保證了UEFI在技術上的良好過渡。

相關詞條

相關搜索

其它詞條