999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

揭秘系統引導

2014-07-31 08:55:16劉宗凡
中國信息技術教育 2014年13期

劉宗凡

高手論技

編者按:啟動,是可以正常使用的前奏汽車的啟動、手機的啟動、計算機的啟動……日常生活中隨處可見的啟動,你可曾關注過?這其中,計算機的啟動尤為復雜。在此,主持人和嘉賓將分兩期揭秘系統啟動時的引導工作。

當按下計算機的電源開關鍵,等待系統啟動時,可能我們并沒有留意屏幕上不斷變化的英文,也沒有思考過,為什么安裝在硬盤中的操作系統能夠啟動。看似理所當然的背后,其實隱藏著不少“秘密”。

● 聲名顯赫的BIOS

1.BIOS是如何引導系統的

BIOS是英文“Basic Input Output System”的縮略語,直譯過來后中文名稱就是“基本輸入輸出系統”。其實,它是一組固化到計算機主板上的ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、系統設置信息、開機后自檢程序和系統自啟動程序。 其主要功能是為計算機提供最底層的、最直接的硬件設置和控制。

當我們接通電源或系統被重置時,處理器會執行一個位于BIOS的代碼。CPU會調用這個重置向量來啟動一個位于BIOS芯片ROM(只讀存儲器)中的已知地址處的程序。通常,它執行一個啟動自測(POST)來檢查機器。然后,它從引導驅動器上的主引導記錄(MBR)加載第一個扇區。

引導程序就位于硬盤或軟盤中 MBR的第一個扇區里。此時引導程序被裝入RAM(隨機讀寫存儲器)并執行。這個引導加載程序小于 512 字節(一個扇區)。

BIOS自檢完成之后,將MBR的代碼讀入內存,管理權交給主引導記錄MBR,MBR再讀取DPT(Disk Partition Table,硬盤分區表),從 DPT中找出硬盤的所有分區哪一個是激活的主分區。DPT讀完并找到主分區之后便開始找這個主分區的PBR(Partition Boot Record,分區引導記錄),PBR位于激活主分區的第一個扇區。不同的操作系統PBR是不同的,Windows XP的PBR寫進的代碼是去找NTLDR,而Windows Vista和Windows 7的PBR里寫進的就是去找 Bootmgr。

Bootmgr被找到之后管理權就交給了Bootmgr。Boot Manager調用Bootmgr與相應語言的bootmgr.exe,然后顯示器上顯示引導管理器,也就是選擇多操作系統的那個文字界面。選擇了相應的操作系統后,Bootmgr就去尋找系統分區Windows/System32下的Winload.exe加載操作系統內核。如果操作系統沒有問題,之后我們就可以看到登錄界面或桌面了。

2.BIOS的基本功能

我們已經了解了BIOS是如何引導操作系統的,那它具體有哪些功能呢?

(1)檢測硬件(POST)。對計算機的基本硬件進行檢測,看能不能正常工作,如我們看到的內存數不斷跳動,這就是在做內存檢測(Memory Test)。

(2)初始化硬件,設置其基本狀態,使得整個計算機達到所謂的“可用狀態”(Ready State)。硬件的設計廠家往往為了通用市場的考慮,不愿意將硬件設計成定制的狀態。為了使硬件能夠按照PC的架構工作,BIOS必須要按照由獨立硬件供應商提供的手冊將硬件設置好,如寫幾個必須的寄存器之類的,做一些Enable的工作。如果一個硬件沒有Enable,那么在OS下將不可見。

(3)啟動OS Loader加載操作系統。系統啟動的方式是由BIOS規定的,操作系統必須按照BIOS的要求來設計。這也是為什么操作系統從DOS一直到Vista,都只能把自己的loader放在MBR,因為BIOS只讀MBR。當然,在EFI時代,這一點有所改變,EFI支持的Boot From File不再需要MBR。

(4)在操作系統啟動起來以后,一部分繼續駐留內存,向操作系統以及其他軟件提供基本的系統級的服務,如磁盤讀寫等。

(5)修復硬件缺陷。Intel在它的CPU里專門留了一個叫System Management Mode的模式,擁有最高的權限。SMM中斷的時候,就連號稱無所不能的Windows也不知道,這時就可以給CPU補bug了。事實上,每次BIOS開機的時候,都會更新CPU Microcode,同樣是用來給CPU補bug的。

3.BIOS存儲介質的變遷

計算機內存可以根據不同的標準進行不同的分類。如果以是臨時還是永久存儲為衡量標準,我們可以用下面的圖來展示計算機的存儲體系。

一張圖看懂計算機存儲體系

由于BIOS與硬件系統集成在一起,所以有時候也被稱為固件。由于BIOS在系統啟動前就要獲得控制權,所以必須將其保存在永久存儲區域中,一般保存在只讀存儲器(ROM)中。

在計算機發展初期,BIOS都存放在ROM中。ROM內部的資料是在ROM的制造工序中,在工廠里用特殊的方法燒錄進去的,其中的內容只能讀不能改,一旦燒錄進去,用戶只能驗證寫入的資料是否正確,不能再作任何修改。

EPROM(Erasable Programmable ROM,可擦除可編程ROM)芯片可重復擦除和寫入,解決了ROM芯片只能寫入一次的弊端。EPROM芯片有一個很明顯的特征:在其正面的陶瓷封裝上,開有一個玻璃窗口,透過該窗口,可以看到其內部的集成電路,紫外線透過該孔照射內部芯片就可以擦除其內的數據,完成芯片擦除的操作要用到EPROM擦除器。EPROM芯片在寫入資料后,還要以不透光的貼紙或膠布把窗口封住,以免受到周圍的紫外線照射而使資料受損。

由于EPROM操作的不便,586以后的主板上BIOS ROM芯片大部分都采用EEPROM(Electrically Erasable Programmable ROM,電可擦除可編程ROM)。通過跳線開關和系統配帶的驅動程序盤,可以對EEPROM進行重寫,方便地實現BIOS升級。

4.BIOS修復

BIOS負責引導系統的啟動,一旦出現錯誤,可以想象得到,計算機系統就會癱瘓。臭名昭著的CIH病毒就是對BIOS進行破壞,從而使計算機無法啟動。另外,不適當的升級BIOS也可能導致BIOS被破壞。只要BIOS芯片本身沒損壞,都可以對其進行修復?,F在大多數BIOS廠家都提供了啟動引導塊保護功能。這個啟動引導塊在一般情況下會被自動寫保護,只有當刷新程序接收到對EPROM進行寫入的明確命令后,啟動引導塊才能夠被覆蓋。此外,啟動引導塊還支持一些最基本的BIOS功能,如支持符合ISA協議的顯卡、軟盤驅動和鍵盤輸入等。所以,只要系統具備了這幾項條件,就完全可以使主板的其他BIOS功能得到重新恢復。

(1)熱插拔修復。

熱插拔的工作原理:BIOS是由POST上的電自檢程序、系統啟動自舉程序、BIOS中斷調用、BIOS系統設置程序四部分組成的,當BIOS完成POST上的電自檢程序、系統啟動自舉程序后,由操作系統接管系統的控制權,完成機器的啟動過程。在此之后,除了相關的程序要調用BIOS中的中斷程序外,BIOS已完成了它的歷史使命,如果此時我們冒險把BIOS芯片拔下來,根本不會影響系統的正常工作。這時,把損壞的BIOS芯片插回主板,運行相應的刷新程序就可以重新把BIOS文件刷回來。

修復BIOS時采用熱插拔是危險的,原因很簡單,即任何元件都有一定的功率限額,ROM芯片也不例外。在帶電熱插拔元器件時,由于各管腳的工作電壓不同,熱插拔過程中,各管腳不可能同時插上或拔下,因此電路中會不可避免地出現浪涌過電壓和過電流,過高的浪涌電壓會擊穿芯片內的晶體管,而過大的浪涌電流會使芯片內的鋁膜引線被熔斷,從而導致芯片毀壞型失效。

endprint

(2)刷新修復。

如果BIOS的啟動引導模塊沒有損壞,我們可以利用純DOS啟動盤來引導修復。因為軟驅已經退出歷史,可以用U盤制作啟動盤,再將BIOS文件和刷新程序復制到啟動盤,修改autoexec.bat文件,以便系統啟動時自動載入并運行BIOS刷新程序。如果主板支持ISA顯卡并且還有這樣的古董的話,用戶甚至可以將電腦啟動到安全模式,從容刷新BIOS。

(3)用編程器修復。

如果BIOS引導模塊已經被破壞,那么用編程器修復是既安全又方便的方法。用戶可以在任何一臺計算機上用編程器來升級或修復BIOS,當燒錄好后,只要插在主板上即可使用。而且如果發現不正??梢灾匦聼?,省去了升級過程中怕出錯的擔憂,也避免了“熱插拔”帶來的危險。

(4)雙BIOS的修復。

為了避免BIOS損壞而導致系統故障,有些主板廠商使用了雙BIOS技術。其中備份BIOS平時并不工作,但當主BIOS出現問題時,重啟電腦后主板自動由備份BIOS接手修復主BIOS,修復完成后重啟由已修復好的主BIOS開機??芍^非常安全。還有一種情況,當BIOS出現錯誤導致電腦反復重啟,此時主板不認為主BIOS有錯誤,因而無法自動啟動修復程序。這時就要手動短接主BIOS的1、8腳,造成主BIOS錯誤從而啟動修復程序。

(5)工具修復。

有些病毒會感染BIOS,如BMW病毒能夠連環感染BIOS(主板芯片程序)、MBR(硬盤主引導區)和Windows系統文件,使中毒計算機無論重裝系統、格式化硬盤,還是換掉硬盤都無法徹底清除病毒,這種病毒要徹底清除非常困難。這時我們可以下載病毒的專殺工具來清除。它的原理其實也很簡單,用軟件把BIOS讀出來,檢查里面是否有病毒代碼,有的話,用工具清除后,再將BIOS代碼寫回即可。

5.BIOS的局限

BIOS既是操作系統和計算機硬件之間通訊的橋梁,更是充當了翻譯的角色,從DOS時代起,微軟的操作系統一直都是建立在“中斷”這個概念上的,程序的切換依靠中斷,系統的開關依靠中斷,甚至我們按下了機箱上“Reset”鍵強制重啟計算機,也還是中斷在后臺起的作用。為了延續整套的16位中斷系統,無論是CPU開發還是軟件升級,都得考慮中斷模式。

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

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

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

● 繼往開來的EFI和UEFI

正是由于BIOS已經老態龍鐘,英特爾在2006年提出了EFI的概念,并且在它的推動下,各大硬件廠商聯合升級了UEFI標準,使得BIOS終于可以突破瓶頸,具有無限的想象力。

EFI就是可擴展固件接口(Extensible Firmware Interface),是英特爾公司推出的一種在未來的類PC的計算機系統中替代BIOS的升級方案。

UEFI是統一的可擴展固件接口(Unified Extensible Firmware Interface),是一種詳細描述類型接口的標準。這種接口用于操作系統自動從預啟動的操作環境,加載到一種操作系統上。UEFI是以EFI1.10為基礎發展起來的,它的所有者是一個稱作Unified EFI Form的國際組織。

1.EFI的特點

那么,EFI是如何解決傳統BIOS所面臨的棘手問題的呢?

(1)EFI以全新的圖形操作界面代替BIOS的文字界面,支持高級顯示模式,而且支持鼠標操作,使它在設置方面比傳統BIOS直觀、簡單,更易上手,非常適合非專業的技術人員和英文不太好的用戶。

(2)EFI像一個被簡化了的操作系統,介于硬件設備及操作系統間,可以操作計算機的各種硬件。另外,由于符合TCP/IP網絡協議,PC用戶可以不進入操作系統,就能在EFI界面下使用網絡資源,進行遠程診斷、更換驅動、排除故障等。如果系統死機,用戶可以通過EFI修改配置或者安裝新的驅動,這是BIOS不能想象的。

(3)EFI采用模塊化結構,將固件分為硬件控制與OS軟件管理兩部分,可以支持新外圍設備、省略硬件檢測實現高速啟動,針對某模塊單獨對固件升級等。

(4)安全性的問題。相比BIOS的1M存儲空間,EFI需要更大的存儲空間,于是在硬盤中隔離出一個小分區作為存儲空間。這樣雖可裝入更多實用的工具,如硬盤分區、多操作系統引導、系統備份和恢復等,甚至能作為數字版權控制工具和電子安全防范工具。但硬盤是相當脆弱的配件之一,如果出現問題,后果不堪設想。EFI不再采用BIOS的機器匯編語言,而是使用了通用性比較強的C語言,盡管在技術更新上比BIOS有很大優勢,但對病毒、網絡攻擊等問題,與BIOS相比不一定更安全。

2.EFI的組成和存儲

由于EFI要實現比傳統的BIOS更多的功能,主板ROM芯片中的512KB的空間是遠遠不夠的。因此,除了最基本的引導模塊保留在ROM芯片中,EFI還要在硬盤上單獨保留一個分區作為專用,以充分展現其功能。

EFI的存儲空間為50~100MB,具體視驅動文件多少而定。在這部分空間中,包含有Pre-EFI初始化模塊、EFI驅動執行環境、EFI驅動程序、兼容性支持模塊(CSM)、EFI高層應用及GUID 磁盤分區等幾個部分。

3.EFI引導系統過程

EFI在開機時的作用和BIOS一樣,就是初始化PC,但在細節上卻又不一樣。BIOS對PC的初始化,只是按照一定的順序對硬件通電,簡單地檢查硬件是否能工作,而EFI不但檢查硬件的完好性,還會加載硬件在EFI中的驅動程序,不用操作系統負責驅動的加載工作。EFI的創新之處,是顛覆了BIOS的界面概念,讓操作界面和Windows一樣易于上手。在EFI的操作界面中,鼠標成為替代鍵盤的輸入工具,各功能調節的模塊也做得和Windows程序一樣,可以說,EFI就是一個小型化的Windows系統。

在現實中,EFI初始化模塊和驅動執行環境通常被集成在一個只讀存儲器中。Pre-EFI初始化程序在系統開機時最先執行,它負責最初的CPU、主橋及存儲器的初始化工作,緊接著載入EFI驅動執行環境(DXE)。當DXE被載入運行時,系統便具有了枚舉并加載其他EFI驅動的能力。在基于PCI架構的系統中,各PCI橋及PCI適配器的EFI驅動會被相繼加載及初始化。此時,系統枚舉并加載各橋接器及適配器后面的各種總線及設備驅動程序,周而復始,直到最后一個設備的驅動程序被成功加載。正因如此,EFI驅動程序可以放置于系統的任何位置,只要能保證它可以按順序被正確枚舉。

endprint

4.EFI的優勢

對于操作系統來說,如果主板使用的是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的操作界面中,程序可以直接連接互聯網,向外界求助操作系統的維修信息或者在線升級驅動程序。

5.BIOS和EFI的對比

對比BIOS和EFI,它們有以下區別:①EFI編碼99%都是由C語言完成,而BIOS基本上是用匯編語言完成;②BIOS采用中斷、硬件端口操作的方法,EFI采用了Driver/protocal的新方式;③BIOS支持X86模式,EFI直接采用Flat mode(也就是不能用DOS了,現在有些EFI能用是因為做了兼容,但實際上這部分不屬于EFI的定義);④BIOS采用二進制code,EFI采用Removable Binary Drivers;⑤BIOS啟動調用Int19,EFI直接利用protocol/device Path;⑥對于第三方的開發,BIOS基本上做不到,EFI卻便利得多了;⑦EFI彌補了BIOS對新硬件支持不足的毛病。

● 革新的GPT硬盤分區模式

除了針對BIOS缺陷的革命,EFI還帶來了新的磁盤分區模式GPT。GPT分區模式的一個最明顯的改進就是對硬盤容量2TB限制的突破。

1.硬盤容量限制又來了

硬盤容量限制其實一直伴隨著我們。最初是528MB、2.1GB,后來是3.2GB、4.2GB,直到8.4G和137G的限制。這主要是由于操作系統及尋址方式的局限造成的。

隨著硬盤的容量不斷增加,價格不斷下降。如果我們新買了一個3TB的硬盤,在分區時又會出現新問題:怎么硬盤只能分出2.2TB,剩余部分沒辦法管理呢?有沒有辦法解決?2.2TB容量限制是傳統的MBR硬盤分區模式引起的,而EFI方案中的GPT分區表能完美解決這個問題。

傳統的分區方案(稱為MBR分區方案)是將分區信息保存到磁盤的第一個扇區(MBR扇區)中的64個字節中,每個分區項占用16個字節,這16個字節中存有活動狀態標志、文件系統標識、起止柱面號、磁頭號、扇區號、隱含扇區數目(4個字節)、分區總扇區數目(4個字節)等內容。由于MBR扇區只有64個字節用于分區表,所以只能記錄4個分區的信息。這就是硬盤主分區數目不能超過4個的原因。后來為了支持更多的分區,引入了擴展分區及邏輯分區的概念。但每個分區項仍用16個字節存儲。

在MBR分區表中最多能有4個主分區或者3個主分區+1個擴展分區:從主引導記錄的結構可以知道,它僅僅包含一個64個字節的硬盤分區表。由于每個分區信息需要16個字節,所以對于采用MBR型分區結構的硬盤,最多只能識別4個主要分區(Primary partition)。

MBR分區方案無法支持超過2TB容量的磁盤。因為這一方案用4個字節存儲分區的總扇區數,最大能表示2的32次方的扇區個數,按每扇區512個字節計算,每個分區最大不能超過2TB。磁盤容量超過2TB以后,分區的起始位置也就無法表示了。(前面講到MBR硬盤最多管理2.2TB容量,是對應廠商以1000為步進單位來說的,而這里是以1024作為步進單位來討論,所以換算成容量為2TB。)

2.革新的GPT分區模式

為解決上述問題,微軟和英特爾在EFI方案中開發了GPT分區模式。

GPT,即全局唯一標識分區表(Globally Unique Identifier Partition Table Format),它還有一個名字叫GUID分區表(GUID Partition Table) 。GPT是EFI方案的一部分,但并不依賴于EFI主板,在BIOS主板的PC中也可使用GPT分區。與MBR最大4個分區表項的限制相比,GPT對分區數量沒有限制,但Windows最大僅支持128個GPT分區。GPT可管理硬盤大小達到了18EB(1EB=1024PB=1,048,576TB),不過NTFS格式最大僅支持256TB。在目前來看GPT可管理的硬盤容量還是一個天文數字,如果硬盤超過256TB,那就是NTFS格式逐漸被淘汰的時候了。

GPT的分區信息是在分區中,而不像MBR一樣在主引導扇區。為保護GPT不受MBR類磁盤管理軟件的危害,GPT在主引導扇區建立了一個保護分區,這種分區的類型標識為0xEE,這個保護分區的大小在Windows下為128MB,Mac OS X下為200MB,在Window磁盤管理器里名為GPT保護分區,可讓MBR類磁盤管理軟件把GPT看成一個未知格式的分區,而不是錯誤地當成一個未分區的磁盤。

GPT分區的一大優勢就是針對不同的數據建立不同的分區,同時為不同的分區創建不同的權限。就如其名字一樣,GPT能夠保證磁盤分區的GUID的唯一性,所以GPT不允許對整個硬盤進行復制,從而保證了磁盤內數據的安全。

3.操作系統對GPT的支持

從以上兩個表中可見,所有32位的Windows系統都是無法使用GPT分區格式的硬盤作為啟動盤的,而最常使用的32位Windows XP甚至不能讀寫GPT硬盤,所以如果使用32位的Vista或更早的Windows系統,那GPT硬盤只能掛載為從盤作為數據盤使用。而Vista以后的64位Windows系統都既支持GPT硬盤的讀寫,也在UEFI支持下可以作為啟動盤使用。當然,我們知道BIOS在引導系統時會去硬盤的MBR中讀取引導記錄,所以要從GPT硬盤啟動,我們就必須要有UEFI的支持,否則是不能成功的。另外,Linux和MacOSX10.6+對GPT提供了完美支持。

在計算機的引導過程中,BIOS在二十多年來作出了舉足輕重的貢獻。隨著硬件和操作系統的不斷發展,BIOS已經無法適應時代的潮流,EFI和UEFI取代BIOS是大勢所趨。目前,使用UEFI和BIOS兼容的主板大量出現,可以預見,UEFI完全取代BIOS已經為期不遠了。

endprint

4.EFI的優勢

對于操作系統來說,如果主板使用的是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的操作界面中,程序可以直接連接互聯網,向外界求助操作系統的維修信息或者在線升級驅動程序。

5.BIOS和EFI的對比

對比BIOS和EFI,它們有以下區別:①EFI編碼99%都是由C語言完成,而BIOS基本上是用匯編語言完成;②BIOS采用中斷、硬件端口操作的方法,EFI采用了Driver/protocal的新方式;③BIOS支持X86模式,EFI直接采用Flat mode(也就是不能用DOS了,現在有些EFI能用是因為做了兼容,但實際上這部分不屬于EFI的定義);④BIOS采用二進制code,EFI采用Removable Binary Drivers;⑤BIOS啟動調用Int19,EFI直接利用protocol/device Path;⑥對于第三方的開發,BIOS基本上做不到,EFI卻便利得多了;⑦EFI彌補了BIOS對新硬件支持不足的毛病。

● 革新的GPT硬盤分區模式

除了針對BIOS缺陷的革命,EFI還帶來了新的磁盤分區模式GPT。GPT分區模式的一個最明顯的改進就是對硬盤容量2TB限制的突破。

1.硬盤容量限制又來了

硬盤容量限制其實一直伴隨著我們。最初是528MB、2.1GB,后來是3.2GB、4.2GB,直到8.4G和137G的限制。這主要是由于操作系統及尋址方式的局限造成的。

隨著硬盤的容量不斷增加,價格不斷下降。如果我們新買了一個3TB的硬盤,在分區時又會出現新問題:怎么硬盤只能分出2.2TB,剩余部分沒辦法管理呢?有沒有辦法解決?2.2TB容量限制是傳統的MBR硬盤分區模式引起的,而EFI方案中的GPT分區表能完美解決這個問題。

傳統的分區方案(稱為MBR分區方案)是將分區信息保存到磁盤的第一個扇區(MBR扇區)中的64個字節中,每個分區項占用16個字節,這16個字節中存有活動狀態標志、文件系統標識、起止柱面號、磁頭號、扇區號、隱含扇區數目(4個字節)、分區總扇區數目(4個字節)等內容。由于MBR扇區只有64個字節用于分區表,所以只能記錄4個分區的信息。這就是硬盤主分區數目不能超過4個的原因。后來為了支持更多的分區,引入了擴展分區及邏輯分區的概念。但每個分區項仍用16個字節存儲。

在MBR分區表中最多能有4個主分區或者3個主分區+1個擴展分區:從主引導記錄的結構可以知道,它僅僅包含一個64個字節的硬盤分區表。由于每個分區信息需要16個字節,所以對于采用MBR型分區結構的硬盤,最多只能識別4個主要分區(Primary partition)。

MBR分區方案無法支持超過2TB容量的磁盤。因為這一方案用4個字節存儲分區的總扇區數,最大能表示2的32次方的扇區個數,按每扇區512個字節計算,每個分區最大不能超過2TB。磁盤容量超過2TB以后,分區的起始位置也就無法表示了。(前面講到MBR硬盤最多管理2.2TB容量,是對應廠商以1000為步進單位來說的,而這里是以1024作為步進單位來討論,所以換算成容量為2TB。)

2.革新的GPT分區模式

為解決上述問題,微軟和英特爾在EFI方案中開發了GPT分區模式。

GPT,即全局唯一標識分區表(Globally Unique Identifier Partition Table Format),它還有一個名字叫GUID分區表(GUID Partition Table) 。GPT是EFI方案的一部分,但并不依賴于EFI主板,在BIOS主板的PC中也可使用GPT分區。與MBR最大4個分區表項的限制相比,GPT對分區數量沒有限制,但Windows最大僅支持128個GPT分區。GPT可管理硬盤大小達到了18EB(1EB=1024PB=1,048,576TB),不過NTFS格式最大僅支持256TB。在目前來看GPT可管理的硬盤容量還是一個天文數字,如果硬盤超過256TB,那就是NTFS格式逐漸被淘汰的時候了。

GPT的分區信息是在分區中,而不像MBR一樣在主引導扇區。為保護GPT不受MBR類磁盤管理軟件的危害,GPT在主引導扇區建立了一個保護分區,這種分區的類型標識為0xEE,這個保護分區的大小在Windows下為128MB,Mac OS X下為200MB,在Window磁盤管理器里名為GPT保護分區,可讓MBR類磁盤管理軟件把GPT看成一個未知格式的分區,而不是錯誤地當成一個未分區的磁盤。

GPT分區的一大優勢就是針對不同的數據建立不同的分區,同時為不同的分區創建不同的權限。就如其名字一樣,GPT能夠保證磁盤分區的GUID的唯一性,所以GPT不允許對整個硬盤進行復制,從而保證了磁盤內數據的安全。

3.操作系統對GPT的支持

從以上兩個表中可見,所有32位的Windows系統都是無法使用GPT分區格式的硬盤作為啟動盤的,而最常使用的32位Windows XP甚至不能讀寫GPT硬盤,所以如果使用32位的Vista或更早的Windows系統,那GPT硬盤只能掛載為從盤作為數據盤使用。而Vista以后的64位Windows系統都既支持GPT硬盤的讀寫,也在UEFI支持下可以作為啟動盤使用。當然,我們知道BIOS在引導系統時會去硬盤的MBR中讀取引導記錄,所以要從GPT硬盤啟動,我們就必須要有UEFI的支持,否則是不能成功的。另外,Linux和MacOSX10.6+對GPT提供了完美支持。

在計算機的引導過程中,BIOS在二十多年來作出了舉足輕重的貢獻。隨著硬件和操作系統的不斷發展,BIOS已經無法適應時代的潮流,EFI和UEFI取代BIOS是大勢所趨。目前,使用UEFI和BIOS兼容的主板大量出現,可以預見,UEFI完全取代BIOS已經為期不遠了。

endprint

4.EFI的優勢

對于操作系統來說,如果主板使用的是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的操作界面中,程序可以直接連接互聯網,向外界求助操作系統的維修信息或者在線升級驅動程序。

5.BIOS和EFI的對比

對比BIOS和EFI,它們有以下區別:①EFI編碼99%都是由C語言完成,而BIOS基本上是用匯編語言完成;②BIOS采用中斷、硬件端口操作的方法,EFI采用了Driver/protocal的新方式;③BIOS支持X86模式,EFI直接采用Flat mode(也就是不能用DOS了,現在有些EFI能用是因為做了兼容,但實際上這部分不屬于EFI的定義);④BIOS采用二進制code,EFI采用Removable Binary Drivers;⑤BIOS啟動調用Int19,EFI直接利用protocol/device Path;⑥對于第三方的開發,BIOS基本上做不到,EFI卻便利得多了;⑦EFI彌補了BIOS對新硬件支持不足的毛病。

● 革新的GPT硬盤分區模式

除了針對BIOS缺陷的革命,EFI還帶來了新的磁盤分區模式GPT。GPT分區模式的一個最明顯的改進就是對硬盤容量2TB限制的突破。

1.硬盤容量限制又來了

硬盤容量限制其實一直伴隨著我們。最初是528MB、2.1GB,后來是3.2GB、4.2GB,直到8.4G和137G的限制。這主要是由于操作系統及尋址方式的局限造成的。

隨著硬盤的容量不斷增加,價格不斷下降。如果我們新買了一個3TB的硬盤,在分區時又會出現新問題:怎么硬盤只能分出2.2TB,剩余部分沒辦法管理呢?有沒有辦法解決?2.2TB容量限制是傳統的MBR硬盤分區模式引起的,而EFI方案中的GPT分區表能完美解決這個問題。

傳統的分區方案(稱為MBR分區方案)是將分區信息保存到磁盤的第一個扇區(MBR扇區)中的64個字節中,每個分區項占用16個字節,這16個字節中存有活動狀態標志、文件系統標識、起止柱面號、磁頭號、扇區號、隱含扇區數目(4個字節)、分區總扇區數目(4個字節)等內容。由于MBR扇區只有64個字節用于分區表,所以只能記錄4個分區的信息。這就是硬盤主分區數目不能超過4個的原因。后來為了支持更多的分區,引入了擴展分區及邏輯分區的概念。但每個分區項仍用16個字節存儲。

在MBR分區表中最多能有4個主分區或者3個主分區+1個擴展分區:從主引導記錄的結構可以知道,它僅僅包含一個64個字節的硬盤分區表。由于每個分區信息需要16個字節,所以對于采用MBR型分區結構的硬盤,最多只能識別4個主要分區(Primary partition)。

MBR分區方案無法支持超過2TB容量的磁盤。因為這一方案用4個字節存儲分區的總扇區數,最大能表示2的32次方的扇區個數,按每扇區512個字節計算,每個分區最大不能超過2TB。磁盤容量超過2TB以后,分區的起始位置也就無法表示了。(前面講到MBR硬盤最多管理2.2TB容量,是對應廠商以1000為步進單位來說的,而這里是以1024作為步進單位來討論,所以換算成容量為2TB。)

2.革新的GPT分區模式

為解決上述問題,微軟和英特爾在EFI方案中開發了GPT分區模式。

GPT,即全局唯一標識分區表(Globally Unique Identifier Partition Table Format),它還有一個名字叫GUID分區表(GUID Partition Table) 。GPT是EFI方案的一部分,但并不依賴于EFI主板,在BIOS主板的PC中也可使用GPT分區。與MBR最大4個分區表項的限制相比,GPT對分區數量沒有限制,但Windows最大僅支持128個GPT分區。GPT可管理硬盤大小達到了18EB(1EB=1024PB=1,048,576TB),不過NTFS格式最大僅支持256TB。在目前來看GPT可管理的硬盤容量還是一個天文數字,如果硬盤超過256TB,那就是NTFS格式逐漸被淘汰的時候了。

GPT的分區信息是在分區中,而不像MBR一樣在主引導扇區。為保護GPT不受MBR類磁盤管理軟件的危害,GPT在主引導扇區建立了一個保護分區,這種分區的類型標識為0xEE,這個保護分區的大小在Windows下為128MB,Mac OS X下為200MB,在Window磁盤管理器里名為GPT保護分區,可讓MBR類磁盤管理軟件把GPT看成一個未知格式的分區,而不是錯誤地當成一個未分區的磁盤。

GPT分區的一大優勢就是針對不同的數據建立不同的分區,同時為不同的分區創建不同的權限。就如其名字一樣,GPT能夠保證磁盤分區的GUID的唯一性,所以GPT不允許對整個硬盤進行復制,從而保證了磁盤內數據的安全。

3.操作系統對GPT的支持

從以上兩個表中可見,所有32位的Windows系統都是無法使用GPT分區格式的硬盤作為啟動盤的,而最常使用的32位Windows XP甚至不能讀寫GPT硬盤,所以如果使用32位的Vista或更早的Windows系統,那GPT硬盤只能掛載為從盤作為數據盤使用。而Vista以后的64位Windows系統都既支持GPT硬盤的讀寫,也在UEFI支持下可以作為啟動盤使用。當然,我們知道BIOS在引導系統時會去硬盤的MBR中讀取引導記錄,所以要從GPT硬盤啟動,我們就必須要有UEFI的支持,否則是不能成功的。另外,Linux和MacOSX10.6+對GPT提供了完美支持。

在計算機的引導過程中,BIOS在二十多年來作出了舉足輕重的貢獻。隨著硬件和操作系統的不斷發展,BIOS已經無法適應時代的潮流,EFI和UEFI取代BIOS是大勢所趨。目前,使用UEFI和BIOS兼容的主板大量出現,可以預見,UEFI完全取代BIOS已經為期不遠了。

endprint

主站蜘蛛池模板: 国产欧美又粗又猛又爽老| 99久久婷婷国产综合精| 2021国产v亚洲v天堂无码| 欧美午夜视频| 日韩无码黄色网站| 欧美一区福利| 亚洲精品中文字幕午夜| www.国产福利| 国产噜噜噜视频在线观看| 欧美在线国产| 五月天天天色| 国产在线视频欧美亚综合| 亚洲欧美国产视频| 国精品91人妻无码一区二区三区| 婷婷亚洲最大| 亚洲视频欧美不卡| 天堂岛国av无码免费无禁网站| 国产精品视频久| 黄色网页在线播放| 伊人天堂网| 伊人中文网| 中国毛片网| 国产高清毛片| 无码AV日韩一二三区| 天天综合网色| 国产成人无码播放| 五月天综合婷婷| 国语少妇高潮| 深夜福利视频一区二区| 国产91久久久久久| 国产精品成人一区二区不卡 | 99久久国产精品无码| 亚洲第一精品福利| 久久久亚洲色| 亚洲欧美精品日韩欧美| 99热这里都是国产精品| 91午夜福利在线观看精品| 日韩AV无码免费一二三区| 免费又黄又爽又猛大片午夜| 好紧好深好大乳无码中文字幕| 一本大道视频精品人妻| 欧美中文一区| 2021国产乱人伦在线播放 | 天天色天天操综合网| 九九香蕉视频| 国产视频大全| 国产成人无码综合亚洲日韩不卡| 午夜免费小视频| 原味小视频在线www国产| 色噜噜在线观看| 亚洲综合婷婷激情| 久久公开视频| 五月婷婷综合网| 99久久精品免费观看国产| 欧美一级在线看| 国产哺乳奶水91在线播放| 一级毛片在线播放| 一本一道波多野结衣av黑人在线| 99在线视频网站| 欧美成人精品一区二区| 国产极品嫩模在线观看91| 国产小视频网站| 99久久精彩视频| 天天做天天爱天天爽综合区| 福利小视频在线播放| 久草视频精品| 国内精品一区二区在线观看| 欧美在线中文字幕| 国产91在线|日本| 亚洲成a人片在线观看88| 99视频精品全国免费品| 欧美亚洲一区二区三区导航| 日韩无码视频专区| 少妇被粗大的猛烈进出免费视频| 草草影院国产第一页| 国产综合精品日本亚洲777| 国产91精选在线观看| 国产又色又爽又黄| 亚洲成人网在线播放| 亚洲香蕉伊综合在人在线| 第九色区aⅴ天堂久久香| 亚洲人成在线精品|