萬盛學電腦網

 萬盛學電腦網 >> BIOS故障 >> 和老BIOS說永別 EFI BIOS技術解析

和老BIOS說永別 EFI BIOS技術解析

BIOS最後的璀璨

  BIOS,幾乎和PC有著同樣的壽命,當年康柏第一台“克隆”PC誕生的時候,它為了簡化啟動的設置,引入了固化程序的概念,在啟動時負責將PC初始化,然後再將控制權交給磁盤上的操作系統。而今天,“康柏”這個品牌已經消失,而BIOS卻作為無心插柳柳成蔭之作,延續至今。

  BIOS伴隨了我們十幾年,在這麼長的日子裡(電腦自動關機),硬件升了一代又一代,電腦換了一台又一台,唯一不變的,就是BIOS。BIOS默默伴隨著我們這幫從剛學會打ABCD的毛頭孩子長大成人,當我們都變了,它卻還是它最初的模樣。
 風華已去,佳人已老,BIOS在十幾年的守護中,一步步逐漸落後於硬件的發展,趨於落寞,垂垂老暮。BIOS在PC啟動時,將PC初始化,然後控制權交給磁盤上的操作系統,在後面的階段,用戶的感覺是在通過操作系統直接和硬件對話,可實際上,操作系統想要與硬件進行溝通,仍然必須通過BIOS。

點擊浏覽下一頁

我們熟悉的BIOS操作界面

  BIOS的全稱是Basic Input/Output System,中文名是基本輸入輸出系統。BIOS即是操作系統和計算機硬件之間通訊的橋梁,更是充當翻譯的角色,從DOS時代起,微軟的操作系統一直都是建立在“中斷”這個概念上的,程序的切換依靠中斷,系統的開關依靠中斷,甚至我們按下了機箱上“Reset”鍵強http://.制重啟電腦,也還是中斷在後台的作用。為了延續整套的16位中斷系統,無論是CPU開發還是軟件升級,都得考慮中斷模式。

  在x86系列處理器進入32位時代後,由於兼容性的原因,新的處理器保留了16位的運行方式,此後多次處理器的升級換代都保留了這種運行方式。甚至在含64位擴展技術的至強http://.系列處理器中,處理器加電啟動時仍然會切換到16位的實模式下運行。BIOS程序以16位匯編代碼、寄存器參數調用方式、靜態鏈接以及1MB以下內存固定編址的形式存在了十幾年,雖然各大BIOS廠商近年來努力得對其進行改進,加入了許多新元素到產品中,如ACPI、USB支持等,但BIOS的根本性質沒有得到任何改變,16位的運行工作環境是其最為致命的缺點。

  現有的BIOS不但在工作方式存在令人不滿之處,在工作能力上,也令人頗有微詞。BIOS發展到現在,用來存放BIOS程序的芯片最大不過2Mb,換成實際字節就是256KB,面對這個數值,即使你想為BIOS編寫一些新的功能,BIOS芯片中也不會有足夠的空間讓你寫入。這也是BIOS這十幾年來一直停滯不前的原因之一。

  所以BIOS經過了這些年的輝煌期,已經逐漸脫離了時代的發展,成為了PC功能和性能進一步提升的瓶頸,只有尋求BIOS的接任者。而BIOS,必將在璀璨光環的環繞中,落下帷幕,成為歷史的記錄。

EFI接過接力棒

  EFI的英文全稱是Extensible Firmware Interface,中文名是可擴展固件接口,早在2006年的上半年,Intel曾經在IDF上進行過EFI的演示。要使用EFI系統,必須主板和操作系統都支持EFI功能,目前支持EFI功能的操作系統有Mac OS X、Vista和Server 2003。

點擊浏覽下一頁

  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支持,只需要一份驅動程序就能吃遍所有操作系統平http://www.xsyzj.cn台。

  更為神奇的是,EFI Byte Code驅動還能繞過操作系統,直接安裝在EFI環境中,這樣對硬件的控制就由EFI層負責,EFI向操作系統直接提供硬件操作的接口,不需要操作系統再調用驅動。這種方式的優點是不需要進入操作系統,只需要進入EFI界面,更新驅動程序就可以完成,而且不需要對每一個操作系統進行驅動升級,只要EFI界面中升級一次,所有上層的操作系統都可以直接調用新的EFI接口。

  EFI在開機之始就能夠驅動所有的硬件,網絡當然也不會例外,所以在EFI的操作界面中,程序可以直接連接上互聯網,向外界求助操作系統的維修信息或者在線升級驅動程序。

更方便的編程方式

  有人會問:既然EFI功能那麼強http://.大,那它存放在什麼地方是存放在原來的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平http://www.xsyzj.cn台EFI系統中的一個特殊的模塊,它將為不具備EFI引導能力的操作系統提供類似於傳統BIOS的系統服務。

  由於EFI驅動開發簡單,所有的硬件廠商都可以參與,為自家的硬件定制最為合適的驅動。基於EFI的驅動模型可以使EFI系統接觸到所有的硬件功能,不進入操作操作系統就浏覽網站不再是天方夜譚,甚至實現起來也非常簡單。這對基於傳統BIOS的系統來說是件不可能的任務,在BIOS中添加幾個簡單的USB設備支持都曾使很多BIOS設計師痛苦萬分,更何況除了添加對無數網絡硬件的支持外,還得憑空構建一個16位模式下的TCP/IP協議。

本新聞共2頁,當前在第1頁  1  2  

和老BIOS說永別 EFI BIOS技術解析
copyright © 萬盛學電腦網 all rights reserved