[轉]計算機開機過程詳解

from : http://blog.csdn.net/range0505/archive/2008/09/13/2924915.aspx

1 引言

很多人認爲計算機開機就是按下主機上的電源開關那麼簡單,其實在我們按下電源開關,到出現操作系統界面期間,計算機經歷了系統加電、系統自檢和加載操作系統等一些列過程,瞭解計算機的開機過程可以幫助解決計算機無法開機、啓動速度慢等一些列問題,從而保證計算機的征程啓動,提高開機素的,最大限度地節約開機時間

2 基本概念

2.1 BIOS

    第一個是大家非常熟悉的BIOS(基本輸入輸出系統),BIOS是直接與硬件打交道的底層代碼,它爲操作系統提供了控制硬件設備的基本功能。BIOS包括有系統BIOS(即常說的主板BIOS)、 顯卡BIOS和其它設備(例如IDE控制器、SCSI卡或網卡等)的BIOS,其中系統BIOS是本文要討論的主角,因爲計算機的啓動過程正是在它的控制下進行的。BIOS一般被存放在ROM(只讀存儲芯片)之中,即使在關機或掉電以後,這些代碼也不會消失。

2.2 內存地址

計算機一般安裝有32MB、64MB或128MB內存,這些內存的每一個字節都被賦予了一個地址,以便CPU訪問內存。32MB的地址範圍用十六進制數表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB內存非常特殊,因爲最初的8086處理器能夠訪問的內存最大隻有1MB,這1MB的低端640KB被稱爲基本內存,而A0000H~BFFFFH要保留給顯示卡的顯存使用,C0000H~FFFFFH則被保留給BIOS使用,其中系統BIOS一般佔用了最後的64KB或更多一點的空間,顯卡BIOS一般在C0000H~C7FFFH處,IDE控制器的 BIOS在C8000H~CBFFFH處。 

2.3 ESCD

ESCD是Extended System Configuration Data的引文縮寫,中文意思是擴展系統配置數據。它是系統BIOS用來和操作系統交換硬件配置信息的一種手段,這些數據被存放在CMOS(一塊特殊的RAM,由主板上的電池來供電)之中,通常情況下ESCD的數據只有在計算機的硬件配置發生改變後纔會進行更新,因此並不是每次啓動計算機時都能看到“Update ESCD……Success”這樣的信息。

3 開機過程

3.1 第一步

    當按下電源開關時,電源就開始向主板和其它設備供電,此時電壓還不太穩定,主板上的控制芯片組會向CPU發出並保持一個RESET(重置)信號,讓CPU內部自動恢復到初始狀態,但CPU在此刻不會馬上執行指令。當芯片組檢測到電源已經開始穩定供電了(當然從不穩定到穩定的過程只是一瞬間的事情),它便撤去RESET信號(如果是手工按下計算機面板上的Reset按鈕來重啓機器,那麼鬆開該按鈕時芯片組就會撤去RESET信號),CPU馬上就從地址FFFF0H處開始執行指令,從前面的介紹可知,這個地址實際上在系統BIOS的地址範圍內,無論是Award BIOS還是AMI BIOS,放在這裏的只是一條跳轉指令,跳到系統BIOS中真正的啓動代碼處。 

3.2 第二步

    系統BIOS的啓動代碼首先要做的事情就是進行POST(Power-On Self Test,加電後自檢),POST的主要任務是檢測系統中一些關鍵設備是否存在和能否正常工作,例如內存和顯卡等設備。由於POST是最早進行的檢測過程,此時顯卡還沒有初始化,如果系統BIOS在進行POST的過程中發現了一些致命錯誤,例如沒有找到內存或者內存有問題(此時只會檢查640K常規內存),那麼系統BIOS就會直接控制喇叭發聲來報告錯誤,聲音的長短和次數代表了錯誤的類型。在正常情況下,POST過程進行得非常快,幾乎無法感覺到它的存在。 

3.3 第三步

    接下來系統BIOS將查找顯卡的BIOS,前面說過,存放顯卡BIOS的ROM芯片的起始地址通常設在C0000H處,系統BIOS在這個地方找到顯卡 BIOS之後就調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數顯卡都會在屏幕上顯示出一些初始化信息,介紹生產廠商、圖形芯片類型等內容,不過這個畫面幾乎是一閃而過。系統BIOS接着會查找其它設備的BIOS程序,找到之後同樣要調用這些BIOS內部的初始化代碼來初始化相關的設備。 

3.4 第四步

    查找完所有其它設備的BIOS之後,系統BIOS將顯示出它自己的啓動畫面,其中包括有系統BIOS的類型、序列號和版本號等內容。接着系統BIOS將檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,並同時在屏幕上顯示內存測試的進度。

3.5 第五步

    內存測試通過之後,系統BIOS將開始檢測系統中安裝的一些標準硬件設備,包括硬盤、CD-ROM、串口、並口、軟驅等設備,另外絕大多數較新版本的系統BIOS在這一過程中還要自動檢測和設置內存的定時參數、硬盤參數和訪問模式等。 

3.6 第六步

    標準設備檢測完畢後,系統BIOS內部的支持即插即用的代碼將開始檢測和配置系統中安裝的即插即用設備,每找到一個設備之後,系統BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時爲該設備分配中斷、DMA通道和I/O端口等資源。 

3.7 第七步

    接下來系統BIOS將更新ESCD。 ESCD更新完畢後,系統BIOS的啓動代碼將進行它的最後一項工作,即根據用戶指定的啓動順序從軟盤、硬盤或光驅啓動。以從C盤啓動爲例,系統BIOS將讀取並執行硬盤上的主引導記錄,主引導記錄接着從分區表中找到第一個活動分區,然後讀取並執行這個活動分區的分區引導記錄,然後讀取並執行這個活動分區的分區引導記錄,而分區引導記錄將負責讀取並執行操作系統的引導文件,從而啓動操作系統。

4 結束語

    以上介紹的是計算機在打開電源開關進行冷啓動時所需要完成的各種初始化工作,如果是一下情況則有所不同:一種是在同時按下Ctrl+Alt+Del組合鍵或者從Windows操作系統中選擇重新啓動計算機來進行的熱啓動,POST過程將被直接跳過,從第三步開始執行啓動,同事也不再進行CPU檢測和內存測試;另一種是按下主機上的重啓動按鈕(Reset鍵)來進行復位啓動,計算是隻是沒有進行加點的過程,其他各種檢測仍然照樣要進行,然後才啓動操作系統。復位啓動可以使計算機的主要部件不會再次受到衝擊電流的影響,因此不會加速計算機的老化。
發佈了88 篇原創文章 · 獲贊 0 · 訪問量 3552
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章