對(duì)于電腦用戶(hù)來(lái)說(shuō),打開(kāi)電源啟動(dòng)電腦幾乎是每天必做的事情,但計(jì)算機(jī)在顯示這些啟動(dòng)畫(huà)面的時(shí)候在做什么呢?大多數(shù)用戶(hù)都未必清楚了。下面就向大家介紹一下從打開(kāi)電源到出現(xiàn)Windows 9X的藍(lán)天白云,計(jì)算機(jī)到底干了些什么工作。 電腦的啟動(dòng)過(guò)程中有一個(gè)非常完善的硬件自檢機(jī)制。對(duì)于采用Award BIOS的電腦來(lái)說(shuō),它在上電自檢那短暫的幾秒鐘里,就可以完成100多個(gè)檢測(cè)步驟。 首先讓我們了解兩個(gè)基本概念:第一個(gè)是BIOS(基本輸入輸出系統(tǒng)),BIOS實(shí)際上就是被"固化"在計(jì)算機(jī)硬件中、直接與硬件打交道的一組程序,它為計(jì)算機(jī)提供最低級(jí)、最直接的硬件控制。 計(jì)算機(jī)的很多硬件中都有BIOS,最常見(jiàn)的如:主板(也稱(chēng)為系統(tǒng)BIOS)、顯示卡以及其它一些設(shè)備(例如IDE控制器、SCSI卡或網(wǎng)卡等)中都存在BIOS,其中系統(tǒng)BIOS是我們要介紹的主角,因?yàn)橛?jì)算機(jī)的啟動(dòng)過(guò)程是在它的控制下進(jìn)行的。 BIOS程序一般被存放在主板ROM(只讀存儲(chǔ)芯片)之中,即使在關(guān)機(jī)或掉電以后,程序也不會(huì)丟失。第二個(gè)基本概念是內(nèi)存的地址,通常計(jì)算機(jī)中安裝有32MB、64MB或128MB的內(nèi)存,為了便于CPU訪(fǎng)問(wèn),這些內(nèi)存的每一個(gè)字節(jié)都被賦予了一個(gè)地址。 32MB的地址范圍用十六進(jìn)制數(shù)表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB內(nèi)存非常特殊,因?yàn)槲覀兪褂玫?2位處理器能夠直接訪(fǎng)問(wèn)的內(nèi)存最大只有1MB,因此這1MB的低端640KB被稱(chēng)為基本內(nèi)存,而A0000H~BFFFFH要保留給顯示卡的顯存使用的,C0000H~FFFFFH則被保留給BIOS使用,其中系統(tǒng)BIOS一般占用最后的64KB或更多一點(diǎn)的空間,顯示卡BIOS一般在C0000H~C7FFFH處,IDE控制器的BIOS在C8000H~CBFFFH處。 好了,了解了這些基本概念之后,下面我們就來(lái)仔細(xì)看看計(jì)算機(jī)的啟動(dòng)過(guò)程。第一步:當(dāng)我們按下電源開(kāi)關(guān)時(shí),電源就開(kāi)始向主板和其它設(shè)備供電,此時(shí)電壓還不穩(wěn)定,主板控制芯片組會(huì)向CPU發(fā)出并保持一個(gè)RESET(重置)信號(hào),讓CPU初始化。當(dāng)電源開(kāi)始穩(wěn)定供電后(當(dāng)然從不穩(wěn)定到穩(wěn)定的過(guò)程也只是短暫的瞬間),芯片組便撤去RESET信號(hào)(如果是手動(dòng)按下計(jì)算機(jī)面板上的Reset按鈕來(lái)重啟機(jī)器,那么松開(kāi)該按鈕時(shí)芯片組就會(huì)撤去RESET信號(hào)),CPU馬上就從地址FFFF0H處開(kāi)始執(zhí)行指令,這個(gè)地址在系統(tǒng)BIOS的地址范圍內(nèi),無(wú)論是Award BIOS還是AMI BIOS,放在這里的只是一條跳轉(zhuǎn)指令,跳到系統(tǒng)BIOS中真正的啟動(dòng)代碼處。第二步:系統(tǒng)BIOS的啟動(dòng)代碼首先要做的事情就是進(jìn)行POST(Power On Self Test,加電自檢),POST的主要任務(wù)是檢測(cè)系統(tǒng)中的一些關(guān)鍵設(shè)備是否存在和能否正常工作,如內(nèi)存和顯卡等。由于POST的檢測(cè)過(guò)程在顯示卡初始化之前,因此如果在POST自檢的過(guò)程中發(fā)現(xiàn)了一些致命錯(cuò)誤,如沒(méi)有找到內(nèi)存或者內(nèi)存有問(wèn)題時(shí)(POST過(guò)程只檢查640K常規(guī)內(nèi)存),是無(wú)法在屏幕上顯示出來(lái)的,這時(shí)系統(tǒng)PIOS可通過(guò)喇叭發(fā)聲來(lái)報(bào)告錯(cuò)誤情況,聲音的長(zhǎng)短和次數(shù)代表了錯(cuò)誤的類(lèi)型。在正常情況下,POST過(guò)程進(jìn)行得非常快,我們幾乎無(wú)法感覺(jué)到這個(gè)過(guò)程。第三步:接下來(lái)系統(tǒng)BIOS將查找顯示卡的BIOS,存放顯示卡BIOS的ROM芯片的起始地址通常在C0000H處,系統(tǒng)BIOS找到顯卡BIOS之后調(diào)用它的初始化代碼,由顯卡BIOS來(lái)完成顯示卡的初始化。大多數(shù)顯示卡在這個(gè)過(guò)程通常會(huì)在屏幕上顯示出一些顯示卡的信息,如生產(chǎn)廠(chǎng)商、圖形芯片類(lèi)型、顯存容量等內(nèi)容,這就是我們開(kāi)機(jī)看到的第一個(gè)畫(huà)面,不過(guò)這個(gè)畫(huà)面幾乎是一閃而過(guò)的,也有的顯卡BIOS使用了延時(shí)功能,以便用戶(hù)可以看清顯示的信息。接著系統(tǒng)BIOS會(huì)查找其它設(shè)備的BIOS程序,找到之后同樣要調(diào)用這些BIOS內(nèi)部的初始化代碼來(lái)初始化這些設(shè)備。第四步:查找完所有其它設(shè)備的BIOS之后,系統(tǒng)BIOS將顯示它自己的啟動(dòng)畫(huà)面,其中包括有系統(tǒng)BIOS的類(lèi)型、序列號(hào)和版本號(hào)等內(nèi)容。同時(shí)屏幕底端左下角會(huì)出現(xiàn)主板信息代碼,包含BIOS的日期、主板芯片組型號(hào)、主板的識(shí)別編碼及廠(chǎng)商代碼等。第五步:接著系統(tǒng)BIOS將檢測(cè)CPU的類(lèi)型和工作頻率,并將檢測(cè)結(jié)果顯示在屏幕上,這就是我們開(kāi)機(jī)看到的CPU類(lèi)型和主頻。接下來(lái)系統(tǒng)BIOS開(kāi)始測(cè)試主機(jī)所有的內(nèi)存容量,并同時(shí)在屏幕上顯示內(nèi)存測(cè)試的數(shù)值,就是大家所熟悉的屏幕上半部份那個(gè)飛速翻滾的內(nèi)存計(jì)數(shù)器。這個(gè)過(guò)程我們可以在BIOS設(shè)置中選擇耗時(shí)少的"快速檢測(cè)"或者耗時(shí)多的"全面檢測(cè)"方式。第六步:內(nèi)存測(cè)試通過(guò)之后,系統(tǒng)BIOS將開(kāi)始檢測(cè)系統(tǒng)中安裝的一些標(biāo)準(zhǔn)硬件設(shè)備,這些設(shè)備包括:硬盤(pán)、CD-ROM、軟驅(qū)、串行接口和并行接口等連接的設(shè)備,另外絕大多數(shù)新版本的系統(tǒng)BIOS在這一過(guò)程中還要自動(dòng)檢測(cè)和設(shè)置內(nèi)存的定時(shí)參數(shù)、硬盤(pán)參數(shù)和訪(fǎng)問(wèn)模式等。第七步:標(biāo)準(zhǔn)設(shè)備檢測(cè)完畢后,系統(tǒng)BIOS內(nèi)部的支持即插即用的代碼將開(kāi)始檢測(cè)和配置系統(tǒng)中安裝的即插即用設(shè)備,每找到一個(gè)設(shè)備之后,系統(tǒng)BIOS都會(huì)在屏幕上顯示出設(shè)備的名稱(chēng)和型號(hào)等信息,同時(shí)為該設(shè)備分配中斷、DMA通道和I/O端口等資源。第八步:到這一步為止,所有硬件都已經(jīng)檢測(cè)配置完畢了,系統(tǒng)BIOS會(huì)重新清屏并在屏幕上方顯示出一個(gè)系統(tǒng)配置列表,其中概略地列出了系統(tǒng)中安裝的各種標(biāo)準(zhǔn)硬件設(shè)備,以及它們使用的資源和一些相關(guān)工作參數(shù)。第九步:按下來(lái)系統(tǒng)BIOS將更新ESCD(Extended System Configuration Data,擴(kuò)展系統(tǒng)配置數(shù)據(jù))。ESCD是系統(tǒng)BIOS用來(lái)與操作系統(tǒng)交換硬件配置信息的數(shù)據(jù),這些數(shù)據(jù)被存放在CMOS(一小塊特殊的RAM,由主板上的電池來(lái)供電)之中。通常ESCD數(shù)據(jù)只在系統(tǒng)硬件配置發(fā)生改變后才會(huì)進(jìn)行更新,所以不是每次啟動(dòng)機(jī)器時(shí)我們都能夠看到"Update ESCD... Success"這樣的信息。 不過(guò),某些主板的系統(tǒng)BIOS在保存ESCD數(shù)據(jù)時(shí)使用了與Windows 9x不相同的數(shù)據(jù)格式,于是Windows 9x在它自己的啟動(dòng)過(guò)程中會(huì)把ESCD數(shù)據(jù)轉(zhuǎn)換成自己的格式,但在下一次啟動(dòng)機(jī)器時(shí),即使硬件配置沒(méi)有發(fā)生改變,系統(tǒng)BIOS又會(huì)把ESCD的數(shù)據(jù)格式改回來(lái),如此循環(huán),將會(huì)導(dǎo)致在每次啟動(dòng)機(jī)器時(shí),系統(tǒng)BIOS都要更新一遍ESCD,這就是為什么有的計(jì)算機(jī)在每次啟動(dòng)時(shí)都會(huì)顯示"Update ESCD... Success"信息的原因。第十步:ESCD數(shù)據(jù)更新完畢后,系統(tǒng)BIOS的啟動(dòng)代碼將進(jìn)行它的最后一項(xiàng)工作,即根據(jù)用戶(hù)指定的啟動(dòng)順序從軟盤(pán)、硬盤(pán)或光驅(qū)啟動(dòng)。以從C盤(pán)啟動(dòng)為例,系統(tǒng)BIOS將讀取并執(zhí)行硬盤(pán)上的主引導(dǎo)記錄,主引導(dǎo)記錄接著從分區(qū)表中找到第一個(gè)活動(dòng)分區(qū),然后讀取并執(zhí)行這個(gè)活動(dòng)分區(qū)的分區(qū)引導(dǎo)記錄,而分區(qū)引導(dǎo)記錄將負(fù)責(zé)讀取并執(zhí)行IO.SYS,這是DOS和Windows 9x最基本的系統(tǒng)文件。Windows 9x的IO.SYS首先要初始化一些重要的系統(tǒng)數(shù)據(jù),然后就顯示出我們熟悉的藍(lán)天白云,在這幅畫(huà)面之下,Windows將繼續(xù)進(jìn)行DOS部分和GUI(圖形用戶(hù)界面)部分的引導(dǎo)和初始化工作。如果系統(tǒng)這中安裝有引導(dǎo)多種操件系統(tǒng)的工具軟件,通常主引導(dǎo)記錄將被替換成該軟件的引導(dǎo)代碼,這些代碼將允許用戶(hù)選擇一種操作系統(tǒng),然后讀取并執(zhí)行該操作系統(tǒng)的基本引導(dǎo)代碼(DOS和Windows的基本引導(dǎo)代碼就是分區(qū)引導(dǎo)記錄)。 上面介紹的便是計(jì)算機(jī)在打開(kāi)電源開(kāi)關(guān)(或按Reset鍵)進(jìn)行冷啟動(dòng)時(shí)所要完成的各種初始化工作,如果我們?cè)贒OS下按Ctrl+Alt+Del組合鍵(或從Windows中選擇重新計(jì)算機(jī))來(lái)進(jìn)行熱啟動(dòng),那么POST過(guò)程將被跳過(guò)去,直接從第三步開(kāi)始,另外第五步的檢測(cè)CPU和內(nèi)存測(cè)試也不會(huì)再進(jìn)行。無(wú)論是冷啟動(dòng)還是熱啟動(dòng),系統(tǒng)BIOS都會(huì)重復(fù)上面的硬件檢測(cè)和引導(dǎo)過(guò)程,正是這個(gè)不起眼的過(guò)程保證了我們可以正常的啟動(dòng)和使用計(jì)算機(jī)。
聯(lián)系客服