一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

為你解密電腦啟動(dòng)的那一瞬間

 millerd 2010-12-03
網(wǎng)友巨獻(xiàn):為你解密電腦啟動(dòng)的那一瞬間

    我們已經(jīng)使用BIOS超過了二十年.可是直到今天還友許多朋友不知道BIOS到底是什么,以及它主要做些什么事情,它在整個(gè)個(gè)人計(jì)算機(jī)之中所處的地位如何.事實(shí)上,BIOS是整個(gè)計(jì)算機(jī)系統(tǒng)中最重要的底層系統(tǒng)軟件.二十多年來,中國的程序員們紛紛忽略了BIOS,或者由BIOS衍生出的開發(fā)技術(shù),相反,我們對(duì)如何調(diào)整一兩個(gè)BIOS設(shè)置津津樂道.今天,BIOS業(yè)界開始悄悄的變革,EFI或者UEFI的到來即將改變世界,從而徹底改變我們對(duì)過去的計(jì)算機(jī)啟動(dòng)過程的認(rèn)識(shí).但是我們中國的開發(fā)者們?nèi)匀辉谡務(wù)揓AVA或NET,我想,是到了清晰的研究BIOS的時(shí)候了.

    小生不才,但也愿意就我所學(xué),貢獻(xiàn)成一篇簡短的入門文章,帶領(lǐng)大家進(jìn)入BIOS這個(gè)有趣而又充滿了神秘的地域,我們一起來探究BIOS,尤其是探究下一代個(gè)人計(jì)算機(jī)的基礎(chǔ)系統(tǒng)軟件,或者說基礎(chǔ)固件:UEFI bios的方方面面.由于類似的文章網(wǎng)上也比較多,所以我就重點(diǎn)談些別人一般忽略的部分吧.

BIOS Definitions

BIOS -- Basic Input and Output System,is used for initializing,testing and putting the PC into the ready state so that an OS may be started.Part of the BIOS remains in the system main memory after POST,or Power On Self Test.BIOS provides a consistent software interface to varying types of the hardware devices.It also provides the basic system level services to OS.The BIOS is also used for helping IHV to fix their hardware design bugs by using the SMM mode of the IA architechture.

上面這句話是我在初學(xué)BIOS的時(shí)候,我的老師,一位受到整個(gè)業(yè)界尊敬的杰出BIOS Engineer對(duì)我說的,這段話雖然短,但是卻清楚的道出了BIOS的基本功能,那就是:

1)  檢測硬件,又叫POST.

2)  初始化硬件,設(shè)置其基本狀態(tài),使得整個(gè)計(jì)算機(jī)達(dá)到所謂的"可用狀態(tài)"(Ready State).

3)  啟動(dòng)OS Loader加載操作系統(tǒng).

4)  在操作系統(tǒng)啟動(dòng)起來以后,一部分繼續(xù)駐留內(nèi)存,向操作系統(tǒng)以及其他軟件提供基本的系統(tǒng)級(jí)的服務(wù).如磁盤讀寫等.

5)  修復(fù)硬件缺陷.

下面我們一個(gè)一個(gè)的來看這些功能.
第一個(gè)檢測硬件可能比較好理解一點(diǎn),就是看看你的硬件是否還正常的工作,但是從軟件的角度看.其中最重要的就是對(duì)內(nèi)存的檢測的.大家都還對(duì)剛開機(jī)的時(shí)候內(nèi)存的大小一直在跳的屏幕有記憶吧,那就是在做Memory Test,或者說Memory Sizing.

第二個(gè)功能是初始化硬件,可能有不少朋友問:為什么我的硬件還需要初始化?問的好,硬件的設(shè)計(jì)廠家往往為了通用市場的考慮,不愿意將硬件設(shè)計(jì)成定制的狀態(tài),可能一個(gè)網(wǎng)卡,可以安裝在PC,同樣也可以安裝在嵌入式系統(tǒng)上.所以為了使得硬件能夠按照PC的架構(gòu)工作,BIOS必須要按照由IHV(Indenpendent Hardware Vendor)提供的手冊將硬件設(shè)置好,比如寫幾個(gè)必須的寄存器之類的,做一些enable的工作.這點(diǎn)非常重要,如果一個(gè)硬件沒有enable,那么在OS下將不可見.

第三個(gè)功能是啟動(dòng)操作系統(tǒng),這也是BIOS必須要做的事情之一.啟動(dòng)的方式是由BIOS規(guī)定,操作系統(tǒng)必須按照BIOS的要求來設(shè)計(jì).這也是為什么操作系統(tǒng)從DOS一直到Vista,都只能把自己的loader放在MBR,因?yàn)锽IOS只讀MBR.強(qiáng)大的微軟都必須要按照這個(gè)不成標(biāo)準(zhǔn)的標(biāo)準(zhǔn)來:)當(dāng)然,在EFI時(shí)代,這一點(diǎn)有所改變,EFI支持的Boot From File不在需要MBR.

第四個(gè)功能可能之前作過DOS開發(fā)的朋友比較熟悉吧,還記得INT 10基本屏幕服務(wù),INT 13磁盤服務(wù)嗎?多少病毒正是靠INT 13來傳播.又有朋友曾經(jīng)試圖繞過INT 10來直接寫屏?Windows時(shí)代,這些東西事實(shí)上仍然存在,并且繼續(xù)發(fā)揮著基本的核心作用,只是他們被Windows包裝起來了,一般的程序無法接觸到,但這并不能說明他們就沒有用處了.MS的開發(fā)人員不久前還表示,事實(shí)上甚至就是開發(fā)中的Longhorn的安裝程序,目前仍然有許多code是基于INT 10來寫屏的.

第五個(gè)功能估計(jì)一般的朋友可能就不知道了,就是之前稍微接觸過BIOS的朋友們可能也是第一次聽說吧!Intel在它的CPU里專門留了個(gè)模式叫System Managment Mode,擁有最高的權(quán)限.SMM中斷的時(shí)候,就連號(hào)稱無所不能的Windows的也不知道,這樣就可以給CPU撲bug了,舉個(gè)例子,比如某天Intel的一個(gè)CPU對(duì)ADD指令給出錯(cuò)誤操作結(jié)果,那么就可以利用SMM在每次執(zhí)行這個(gè)指令的時(shí)候,中斷一下,由BIOS軟件給出正確的執(zhí)行結(jié)果.這就達(dá)到了給硬件修復(fù)缺陷的目的.這樣Intel也不用招回它的CPU了,呵呵.此外,每次BIOS開機(jī)的時(shí)候,事實(shí)上都會(huì)更新CPU Microcode,同樣是用來給CPU補(bǔ)bug的.所以很多時(shí)候,刷BIOS刷出問題,事實(shí)上某個(gè)CPU的bug沒有補(bǔ)上導(dǎo)致出了問題出現(xiàn).

BIOS在哪里

上面羅嗦了一大堆的BIOS Basics,那么BIOS到底在哪里呢?答案是在你的計(jì)算機(jī)里:) 的確有些無聊,事實(shí)上BIOS有三種狀態(tài),分別是:

1)  Before Build

2)  BIOS Image

3)  BIOS Runtime

第一種呢,這個(gè)時(shí)候BIOS表現(xiàn)為BIOS開發(fā)者硬盤上的一堆源代碼. 處于第二種的時(shí)候,BIOS則是沉睡在Flash里的一段image.BIOS真正發(fā)揮作用是在第三種模式下,哪個(gè)時(shí)候BIOS執(zhí)行,控制系統(tǒng),與操作系統(tǒng)交互.

EFI BIOS

EFI是由Intel提出的,目的在于為下一代的BIOS開發(fā)樹立全新的框架。EFI是英文Extensible Firmware Interfaces的縮寫。正如它的名字一樣,EFI不是一個(gè)具體的軟件,而是在操作系統(tǒng)與平臺(tái)固件(platform firmware)之間的一套完整的接口規(guī)范。EFI定義了許多重要的數(shù)據(jù)結(jié)構(gòu)以及系統(tǒng)服務(wù),如果完全實(shí)現(xiàn)了這些數(shù)據(jù)結(jié)構(gòu)與系統(tǒng)服務(wù),也就相當(dāng)于實(shí)現(xiàn)了一個(gè)真正的BIOS核心。

EFI最早是在Spring 2000 IDF(Intel Developer’s Forum)上提出的,當(dāng)時(shí)Intel認(rèn)為,隨著IBM在80年代初推出了第一臺(tái)個(gè)人計(jì)算機(jī)開始,直到今天為止,個(gè)人計(jì)算機(jī)硬件平臺(tái)已經(jīng)發(fā)生了翻天覆地的變化,相關(guān)的系統(tǒng)軟件如操作系統(tǒng)等也從最早的MS DOS1.0到今天的Windows XP,而作為整個(gè)系統(tǒng)的最底層也最為關(guān)鍵的系統(tǒng)軟件之一的BIOS卻基本上保持了架構(gòu)二十年不變。這在整個(gè)軟件史上都是一件不可思議的事情。如今,BIOS已經(jīng)變成了嚴(yán)重阻礙IT產(chǎn)業(yè)前進(jìn)的絆腳石,必須通過對(duì)BIOS的革新來為下一代的操作系統(tǒng)(如Windows Server Longhorn)提供更加強(qiáng)大的支持。

上面是我很早之前寫的一段對(duì)EFI的介紹,現(xiàn)在看來,難免有些錯(cuò)誤,不過大致意思非常明確,EFI就是用來替換傳統(tǒng)BIOS.作為更好的BIOS,EFI可以提供過去無法在BIOS中作到的許多事情.后面的文章我會(huì)逐步展現(xiàn)給大家.

一些常見的關(guān)于BIOS/EFI的問題以及我的簡短回答:
1) BIOS一般有多大?
傳統(tǒng)bios(以后說legacy bios)一般都是512KB,而早期的EFI bios也是512KB.現(xiàn)在EFI基本上是1MB了.

2) BIOS用什么工具開發(fā)?
legacy bios一般用MASM 6.11開發(fā),同時(shí)還會(huì)配上一些廠商自己寫的buid tools. EFI則使用Viusal Studio.NET 2003以及MASM 6.11開發(fā)(沒想到吧~)

3) EFI boot是怎么一回事?
EFI有自己獨(dú)特的boot方式,完全拋棄掉了傳統(tǒng)的0磁道0扇區(qū)的MBR概念.EFI的boot方式與文件系統(tǒng)息息相關(guān).過去的legacy bios由于不帶文件系統(tǒng),不得已選擇從硬盤上特定空間裝載程序的辦法,而EFI則附帶了完整的文件系統(tǒng)支持,所以不再對(duì)硬盤有特定的要求,EFI下的操作系統(tǒng)加載程序事實(shí)上存儲(chǔ)在bootia32bootia32.efi文件里.(假定是IA32架構(gòu)).這是一個(gè)EFI應(yīng)用程序.

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲国产一区精品一区二区三区色 | 亚洲一区二区三区四区性色av| 国产不卡最新在线视频| 久久综合狠狠综合久久综合| 后入美臀少妇一区二区| 深夜视频成人在线观看| 91精品国产综合久久不卡| 东京热男人的天堂社区| 亚洲国产性感美女视频| 国产精品视频一级香蕉| 日本深夜福利视频在线| 国产成人人人97超碰熟女| 九九久久精品久久久精品| 夫妻性生活黄色录像视频 | 天堂热东京热男人天堂| 日本黄色高清视频久久| 亚洲熟妇熟女久久精品| 国产精品熟女在线视频| 国产精品免费视频久久| 日韩精品一级一区二区| 国产极品粉嫩尤物一区二区 | 夫妻性生活黄色录像视频| 色婷婷日本视频在线观看| 日韩人妻中文字幕精品| 免费精品国产日韩热久久| 国产美女精品人人做人人爽| 国产精品成人一区二区三区夜夜夜| 亚洲最大福利在线观看| 大尺度剧情国产在线视频| 99久热只有精品视频最新| 日本不卡在线一区二区三区| 最新国产欧美精品91| 欧美又黑又粗大又硬又爽| 国产一级不卡视频在线观看| 国产精品午夜福利在线观看| 久久99国产精品果冻传媒| 国产色一区二区三区精品视频| 色偷偷偷拍视频在线观看| 国产精品久久熟女吞精| 日本免费一本一二区三区| 久久综合亚洲精品蜜桃|