Windows系統(tǒng)及應用技巧(17)-計算機啟動過程詳解

字號:

打開電源啟動機器幾乎是電腦愛好者每天必做的事情,面對屏幕上出現(xiàn)的一幅幅啟動畫面,我們一點兒也不會感到陌生,但是,計算機在顯示這些啟動畫面時都做了些什么工作呢?相信有的朋友還不是很清楚,本文就來介紹一下從打開電源到出現(xiàn)Windows的藍天白云時,計算機到底都干了些什么事情。
    首先讓我們來了解一些基本概念。第一個是大家非常熟悉的BIOS(基本輸入輸出系統(tǒng)),BIOS是直接與硬件打交道的底層代碼,它為操作系統(tǒng)提供了控制硬件設備的基本功能。BIOS包括有系統(tǒng)BIOS(即常說的主板BIOS)、顯卡BIOS和其它設備(例如IDE控制器、SCSI卡或網(wǎng)卡等)的BIOS,其中系統(tǒng)BIOS是本文要討論的主角,因為計算機的啟動過程正是在它的控制下進行的。BIOS一般被存放在ROM(只讀存儲芯片)之中,即使在關機或掉電以后,這些代碼也不會消失。
    第二個基本概念是內存的地址,我們的機器中一般安裝有32MB、64MB或128MB內存,這些內存的每一個字節(jié)都被賦予了一個地址,以便CPU訪問內存。32MB的地址范圍用十六進制數(shù)表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB內存非常特殊,因為最初的8086處理器能夠訪問的內存只有1MB,這1MB的低端640KB被稱為基本內存,而A0000H~BFFFFH要保留給顯示卡的顯存使用,C0000H~FFFFFH則被保留給BIOS使用,其中系統(tǒng)BIOS一般占用了最后的64KB或更多一點的空間,顯卡BIOS一般在C0000H~C7FFFH處,IDE控制器的BIOS在C8000H~CBFFFH處。
    好了,下面我們就來仔細看看計算機的啟動過程吧。
    第一步: 當我們按下電源開關時,電源就開始向主板和其它設備供電,此時電壓還不太穩(wěn)定,主板上的控制芯片組會向CPU發(fā)出并保持一個RESET(重置)信號,讓CPU內部自動恢復到初始狀態(tài),但CPU在此刻不會馬上執(zhí)行指令。當芯片組檢測到電源已經(jīng)開始穩(wěn)定供電了(當然從不穩(wěn)定到穩(wěn)定的過程只是一瞬間的事情),它便撤去RESET信號(如果是手工按下計算機面板上的Reset按鈕來重啟機器,那么松開該按鈕時芯片組就會撤去RESET信號),CPU馬上就從地址FFFF0H處開始執(zhí)行指令,從前面的介紹可知,這個地址實際上在系統(tǒng)BIOS的地址范圍內,無論是Award BIOS還是AMI BIOS,放在這里的只是一條跳轉指令,跳到系統(tǒng)BIOS中真正的啟動代碼處。
    第二步: 系統(tǒng)BIOS的啟動代碼首先要做的事情就是進行POST(Power-On Self Test,加電后自檢),POST的主要任務是檢測系統(tǒng)中一些關鍵設備是否存在和能否正常工作,例如內存和顯卡等設備。由于POST是最早進行的檢測過程,此時顯卡還沒有初始化,如果系統(tǒng)BIOS在進行POST的過程中發(fā)現(xiàn)了一些致命錯誤,例如沒有找到內存或者內存有問題(此時只會檢查640K常規(guī)內存),那么系統(tǒng)BIOS就會直接控制喇叭發(fā)聲來報告錯誤,聲音的長短和次數(shù)代表了錯誤的類型。在正常情況下,POST過程進行得非??欤覀儙缀鯚o法感覺到它的存在,POST結束之后就會調用其它代碼來進行更完整的硬件檢測。
    第三步: 接下來系統(tǒng)BIOS將查找顯卡的BIOS,前面說過,存放顯卡BIOS的ROM芯片的起始地址通常設在C0000H處,系統(tǒng)BIOS在這個地方找到顯卡BIOS之后就調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數(shù)顯卡都會在屏幕上顯示出一些初始化信息,介紹生產(chǎn)廠商、圖形芯片類型等內容,不過這個畫面幾乎是一閃而過。系統(tǒng)BIOS接著會查找其它設備的BIOS程序,找到之后同樣要調用這些BIOS內部的初始化代碼來初始化相關的設備。
    第四步: 查找完所有其它設備的BIOS之后,系統(tǒng)BIOS將顯示出它自己的啟動畫面,其中包括有系統(tǒng)BIOS的類型、序列號和版本號等內容。
    第五步: 接著系統(tǒng)BIOS將檢測和顯示CPU的類型和工作頻率,然后開始測試所有的RAM,并同時在屏幕上顯示內存測試的進度,我們可以在CMOS設置中自行決定使用簡單耗時少或者詳細耗時多的測試方式。
    第六步: 內存測試通過之后,系統(tǒng)BIOS將開始檢測系統(tǒng)中安裝的一些標準硬件設備,包括硬盤、CD-ROM、串口、并口、軟驅等設備,另外絕大多數(shù)較新版本的系統(tǒng)BIOS在這一過程中還要自動檢測和設置內存的定時參數(shù)、硬盤參數(shù)和訪問模式等。
    第七步: 標準設備檢測完畢后,系統(tǒng)BIOS內部的支持即插即用的代碼將開始檢測和配置系統(tǒng)中安裝的即插即用設備,每找到一個設備之后,系統(tǒng)BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時為該設備分配中斷、DMA通道和I/O端口等資源。