大家是不是為了不會設置bios而煩惱,不用怕,以後我們不用bios了,我們用EFI。windows7系統能全面支持EFI,那麼什麼是EFI呢。
EFI的英文全稱是Extensible Firmware Interface,中文名是可擴展固件接口,早在2006年的上半年,Intel曾經在IDF上進行過EFI的演示。要使用EFI系統,必須主板和操作系統都支持EFI功能,目前支持EFI功能的操作系統有Mac OS X、Vista和Server 2003。
EFI工作原理簡介
EFI在開機時的作用和BIOS一樣,就是初始化PC,但在細節上卻又不一樣。BIOS對PC的初始化,只是按照一定的順序對硬件通電,簡單地檢查硬件是否能工作,而EFI不但檢查硬件的完好性,還會加載硬件在EFI中的驅動程序,不用操作系統負責驅動的加載工作。 EFI的最革命之處,是顛覆了BIOS的界面概念,讓操作界面和Windows一樣易於上手。在EFI的操作界面中,鼠標成為了替代鍵盤的輸入工具,各功能調節的模塊也做的和Windows程序一樣,可以說,EFI就是一個小型化的Windows系統。
對於操作系統來說,如果主板使用的是BIOS,那麼操作系統就必須面對所有的硬件,大到主板顯卡,小到鼠標鍵盤,每次重裝系統或者系統升級,都必須手動安裝新的驅動,否則硬件很可能無法正常工作。而基於EFI的主板則方便很多,因為EFI架構使用的驅動基於EFI Byte Code。EFI Byte Code有些類似於Java的中間代碼,並不由CPU直接執行操作,而是需要EFI層進行翻譯。對於不同的操作系統來說,EFI將硬件層很好地保護了起來,所有操作系統看到的,都只是EFI留給EFI Byte Code的程序接口,而EFI Byte Code又直接和Windows的API聯系,這就意味著無論操作系統是Windows還是Linux,只要有EFI Byte Code支持,只需要一份驅動程序就能吃遍所有操作系統平台。
更為神奇的是,EFI Byte Code驅動還能繞過操作系統,直接安裝在EFI環境中,這樣對硬件的控制就由EFI層負責,EFI向操作系統直接提供硬件操作的接口,不需要操作系統再調用驅動。這種方式的優點是不需要進入操作系統,只需要進入EFI界面,更新驅動程序就可以完成,而且不需要對每一個操作系統進行驅動升級,只要EFI界面中升級一次,所有上層的操作系統都可以直接調用新的EFI接口。
EFI在開機之始就能夠驅動所有的硬件,網絡當然也不會例外,所以在EFI的操作界面中,程序可以直接連接上互聯網,向外界求助操作系統的維修信息或者在線升級驅動程序。
既然EFI功能那麼強大,那它存放在什麼地方?是存放在原來的BIOS芯片中嗎?答案當然是No。BIOS芯片只有256KB,遠遠不夠EFI使用。EFI是以小型磁盤分區的形式存放在硬盤上的。EFI的安裝,必須在支持EFI功能的主板上,使用光驅引導系統,然後對磁盤進行EFI化的處理,這個處理的過程,主要就是劃分EFI獨用的磁盤空間。
EFI的存儲空間大約為50MB到100MB,具體視驅動文件多少而定。在這部分空間中,包含以下幾個部分:
1. Pre-EFI初始化模塊
2. EFI驅動執行環境
3. EFI驅動程序
4. 兼容性支持模塊(CSM)
5. EFI高層應用
6. GUID 磁盤分區
在實現中,EFI初始化模塊和驅動執行環境通常被集成在一個只讀存儲器中。Pre-EFI初始化程序在系統開機的時候最先得到執行,它負責最初的CPU、北橋、南橋、內存和硬盤的初始化工作,緊接著載入EFI驅動。當EFI驅動程序被載入運行後,系統便具有控制所有硬件的能力。在EFI規范中,一種突破傳統MBR磁盤分區結構限制的GUID磁盤分區系統(GPT)被引入,新結構中,磁盤的分區數不再受限制(在MBR結構下,只能存在4個主分區),並且分區類型將由GUID來表示。在眾多的分區類型中,EFI系統分區可以被EFI系統存取,用於存放部分驅動和應用程序。CSM是在x86平台EFI系統中的一個特殊的模塊,它將為不具備EFI引導能力的操作系統提供類似於傳統BIOS的系統服務。
由於EFI驅動開發簡單,所有的硬件廠商都可以參與,為自家的硬件定制最為合適的驅動。基於EFI的驅動模型可以使EFI系統接觸到所有的硬件功能,不進入操作操作系統就浏覽網站不再是天方夜譚,甚至實現起來也非常簡單。這對基於傳統BIOS的系統來說是件不可能的任務,在BIOS中添加幾個簡單的USB設備支持都曾使很多BIOS設計師痛苦萬分,更何況除了添加對無數網絡硬件的支持外,還得憑空構建一個16位模式下的TCP/IP協議。
很多人擔心EFI這種開放的模式將會導致新的安全隱患,因為EFI系統比傳統的BIOS更易於受到計算機病毒的攻擊,當一部分EFI驅動程序被破壞時,系統有可能面臨無法引導的情況。實際上,系統引導所依賴的EFI驅動部分通常都不會存放在EFI的GUID分區中,即使分區中的驅動程序遭到破壞,也可以用簡單的方法得到恢復,因為只讀芯片中的EFI代碼足夠用來引導計算機從光驅啟動,此時插入EFI的安裝盤,對EFI的系統存儲區域進行修復或者覆蓋安裝,就能將PC恢復到正常。而且這個修復過程對操作系統來說,等於是從兩台配置一模一樣配置機器中的一台轉移到另一台,並不會出現需要重新識別硬件的情況。 EFI在概念上非常類似於一個低等級的操作系統,並且具有操控所有硬件資源的能力。不少人感覺它的不斷發展將有可能代替現代的操作系統。事實上,EFI的締造者們在第一版規范出台時就將EFI的能力限制於不足以威脅操作系統的統治地位。首先,它只是硬件和操作系統間的接口規范;其次,EFI環境下不提供中斷的訪問機制,也就是說每個EFI驅動程序必須用輪詢的方式來檢查硬件狀態,並且需要以解釋的方式運行,較操作系統下的驅動效率低得多;第三,EFI系統不提供復雜的存儲器保護功能,它只具備簡單的存儲器管理機制,具體來說就是指運行在x86處理器的段保護模式下,以最大尋址能力為限把存儲器分為一個平坦的段,所有的程序都有權限存取任何一段位置,並不提供真實的保護服務。
EFI的命令行控制模式
EFI的設計架構中,一旦引導軟件將控制權交給操作系統,所有用於引導的服務代碼將全部停止工作,部分運行時代服務程序還可以繼續工作,以便於操作系統一時無法找到特定設備的驅動程序時,該設備還可以繼續被使用。EFI的程序只限於類似Java偽執行文件的能力,並沒有直接訪問磁盤所有資源的能力,而且在進入操作系統後的大多數情況下,EFI部分的代碼都進入沉睡模式,即使有針對EFI的病毒,也無法造成進一步的影響。
EFI的出現,可以說是充分彌補了BIOS原有的不足。因為BIOS過於自信芯片的安全,所以當遇上CIH病毒,啟動機制也被完全破壞。而EFI將主要程序文件放在了硬盤上,被破壞了還可以使用光盤進行維修,對操作系統而言,這種“破壞-維修”的方式是完全透明的,不會影響操作系統的使用。雖然看起來EFI更容易受到損壞,但也更為易於修復。
BIOS在經歷了十幾年發展之後,也終於走到了盡頭,外觀上的落後、功能上的羸弱、安全上的薄弱、性能上的不足,都嚴重制約著它的進一步發展。雖然在這些日子裡,BIOS能夠帶給我們基本的功能,但PC要進步,就必須尋求更高更好的技術。
EFI作為BIOS的替代者,無論是界面、功能還是安全性,都要遠遠高於後者,而且作為未來主板的趨勢所向,EFI上能執行的程序會越來越多,EFI能夠提供的基本功能也就越來越強。今天,微星在CES展會上展示了EFI主板的強大,因為和普通BIOS主板在設計難度以及生產兼容性上並不沖突,所以可以相信,擁有諸多優點的EFI會取代BIOS,讓PC越來越易於使用。
Intel作為EFI大力的推廣者和制定者,能看到EFI逐漸從服務器平台走向桌面級市場,其中辛酸甘苦只有自己才知道。從初期廠商對EFI的概念毫無興趣,到今天各大BIOS提供商如Phoenix, AMI等,原先被認為是EFI發展的阻礙力量,現在也不斷的推出各自的解決方案。支持EFI功能的主板也逐漸退出。一切的一切,都似乎預示著我們可以和BIOS說聲再見,讓技術的進步來記錄歷史。