電腦硬件啓動順序
很多人認爲計算機開機就是按下主機上的電源開關那麼簡單,其實在我們按下電源開關,到出現操作系統界面期間,計算機經歷了系統加電、系統自檢和加載操作系統等一些列過程,瞭解計算機的開機過程可以幫助解決計算機無法開機、啓動速度慢等一些列問題,從而保證計算機的征程啓動,提高開機素的,最大限度地節約開機時間
第一個是大家非常熟悉的BIOS(基本輸入輸出系統),BIOS是直接與硬件打交道的底層代碼,它爲操作系統提供了控制硬件設備的基本功能。BIOS包括有系統BIOS(即常說的主板BIOS)、 顯卡BIOS和其它設備(例如IDE控制器、SCSI卡或網卡等)的BIOS,其中系統BIOS是本文要討論的主角,因爲計算機的啓動過程正是在它的控制下進行的。BIOS一般被存放在ROM(只讀存儲芯片)之中,即使在關機或掉電以後,這些代碼也不會消失。
計算機一般安裝有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處。
ESCD是Extended System ConfigurationData的引文縮寫,中文意思是擴展系統配置數據。它是系統BIOS用來和操作系統交換硬件配置信息的一種手段,這些數據被存放在CMOS(一塊特殊的RAM,由主板上的電池來供電)之中,通常情況下ESCD的數據只有在計算機的硬件配置發生改變後纔會進行更新,因此並不是每次啓動計算機時都能看到“Update ESCD……Success”這樣的信息。
3開機過程
第一步:當我們按下電源開關時,電源就開始向主板和其它設備供電,此時電壓還不穩定,主板控制芯片組會向CPU發出並保持一個RESET(重置)信號,讓CPU初始化。當電源開始穩定供電後(當然從不穩定到穩定的過程也只是短暫的瞬間),芯片組便撤去RESET信號(如果是手動按下計算機面板上的 Reset按鈕來重啓機器,那麼鬆開該按鈕時芯片組就會撤去RESET信號),CPU馬上就從地址FFFF0H處開始執行指令,這個地址在系統BIOS的地址範圍內,無論是Award BIOS還是AMI BIOS,放在這裏的只是一條跳轉指令,跳到系統BIOS中真正的啓動代碼處。
第二步:系統BIOS的啓動代碼首先要做的事情就是進行POST(Power On Self Test,加電自檢),POST的主要任務是檢測系統中的一些關鍵設備是否存在和能否正常工作,如內存和顯卡等。由於POST的檢測過程在顯示卡初始化之前,因此如果在POST自檢的過程中發現了一些致命錯誤,如沒有找到內存或者內存有問題時(POST過程只檢查640K常規內存),是無法在屏幕上顯示出來的,這時系統PIOS可通過喇叭發聲來報告錯誤情況,聲音的長短和次數代表了錯誤的類型。在正常情況下,POST過程進行得非常快,我們幾乎無法感覺到這個過程。
第三步:接下來系統BISO將查找顯示卡的BIOS,存放顯示卡BIOS的ROM芯片的起始地址通常在C0000H 處,系統BIOS找到顯卡BIOS 之後調用它的初始化代碼,由顯卡BIOS來完成顯示卡的初始化。大多數顯示卡在這個過程通常會在屏幕上顯示出一些顯示卡的信息,如生產廠商、圖形芯片類型、顯存容量等內容,這就是我們開機看到的第一個畫面,不過這個畫面幾乎是一閃而過的,也有的顯卡BIOS使用了延時功能,以便用戶可以看清顯示的信息。接着系統BIOS會查找其它設備的BIOS程序,找到之後同樣要調用這些BIOS內部的初始化代碼來初始化這些設備。
第四步:查找完所有其它設備的BIOS之後,系統BIOS將顯示它自己的啓動畫面,其中包括有系統BIOS的類型、序列號和版本號等內容。同時屏幕底端左下角會出現主板信息代碼,包含BIOS的日期、主板芯片組型號、主板的識別編碼及廠商代碼等。
第五步:接着系統BIOS將檢測CPU的類型和工作頻率,並將檢測結果顯示在屏幕上,這就是我們開機看到的CPU類型和主頻。接下來系統BIOS開始測試主機所有的內存容量,並同時在屏幕上顯示內存測試的數值,就是大家所熟悉的屏幕上半部份那個飛速翻滾的內存計數器。這個過程我們可以在BIOS設置中選擇耗時少的"快速檢測"或者耗時多的"全面檢測"方式。
第六步:內存測試通過之後,系統BIOS將開始檢測系統中安裝的一些標準硬件設備,這些設備包括:硬盤、CD-ROM、軟驅、串行接口和並行接口等連接的設備,另外絕大多數新版本的系統BIOS在這一過程中還要自動檢測和設置內存的定時參數、硬盤參數和訪問模式等。
第七步:標準設備檢測完畢後,系統BIOS內部的支持即插即用的代碼將開始檢測和配置系統中安裝的即插即用設備,每找到一個設備之後,系統BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時爲該設備分配中斷、DMA通道和I/O端口等資源。
第八步:到這一步爲止,所有硬件都已經檢測配置完畢了,系統BIOS會重新清屏並在屏幕上方顯示出一個系統配置列表,其中概略地列出了系統中安裝的各種標準硬件設備,以及它們使用的資源和一些相關工作參數。
第九步:按下來系統BIOS將更新ESCD(Extended System Configuration Data,擴展系統配置數據)。ESCD是系統BIOS用來與操作系統交換硬件配置信息的數據,這些數據被存放在CMOS(一小塊特殊的RAM,由主板上的電池來供電)之中。通常ESCD數據只在系統硬件配置發生改變後纔會進行更新,所以不是每次啓動機器時我們都能夠看到"Update ESCD... Success"這樣的信息,不過,某些主板的系統BIOS在保存ESCD數據時使用了與Windows 9x不相同的數據格式,於是Windows 9x在它自己的啓動過程中會把ESCD數據轉換成自己的格式,但在下一次啓動機器時,即使硬件配置沒有發生改變,系統BIOS又會把ESCD的數據格式改回來,如此循環,將會導致在每次啓動機器時,系統BIOS都要更新一遍ESCD,這就是爲什麼有的計算機在每次啓動時都會顯示"Update ESCD... Success"信息的原因。
第十步:ESCD數據更新完畢後,系統BIOS的啓動代碼將進行它的最後一項工作,即根據用戶指定的啓動順序從軟盤、硬盤或光驅啓動。以從C盤啓動爲例,系統BIOS將讀取並執行硬盤上的主引導記錄,主引導記錄接着從分區表中找到第一個活動分區,然後讀取並執行這個活動分區的分區引導記錄,而分區引導記錄將負責讀取並執行IO.SYS,這是DOS和Windows 9x最基本的系統文件。Windows 9x的IO.SYS首先要初始化一些重要的系統數據,然後就顯示出我們熟悉的藍天白雲,在這幅畫面之下,Windows將繼續進行DOS部分和GUI(圖形用戶界面)部分的引導和初始化工作。如果系統這中安裝有引導多種操件系統的工具軟件,通常主引導記錄將被替換成該軟件的引導代碼,這些代碼將允許用戶選擇一種操作系統,然後讀取並執行該操作系統的基本引導代碼(DOS和Windows的基本引導代碼就是分區引導記錄)。
11、BIOS 按照設置的驅動器順序找驅動器,如果驅動器存在的話繼續找 MBR,如果找不到驅動器,系統顯示錯誤信息並停止
12、MBR 從分區表中找到第一個活動分區(分區描述中第一個字節爲 80H),然後讀取並執行這個活動分區的分區引導記錄,而分區引導記錄將負責引導系統(如 XP)
步驟11中若爲 grub4dos MBR則依次查找各個分區的根目錄是否有 grub4dos 的啓動文件(通常爲 grldr,寫入 MBR 時可以指定此文件名),也就是說若是 grub4dos MBR 可以不設置活動分區
上面是打開電源開關(或按Reset鍵)進行冷啓動時的過程,在DOS下按Ctrl+Alt+Del組合鍵(或從Windows中選擇重新啓動計算機)來進行熱啓動時將從步驟8開始
以上介紹的是計算機在打開電源開關進行冷啓動時所需要完成的各種初始化工作,如果是一下情況則有所不同:一種是在同時按下Ctrl+Alt+Del組合鍵或者從Windows操作系統中選擇重新啓動計算機來進行的熱啓動,POST過程將被直接跳過,從第三步開始執行啓動,同事也不再進行CPU檢測和內存測試;另一種是按下主機上的重啓動按鈕(Reset鍵)來進行復位啓動,計算是隻是沒有進行加點的過程,其他各種檢測仍然照樣要進行,然後才啓動操作系統。復位啓動可以使計算機的主要部件不會再次受到衝擊電流的影響,因此不會加速計算機的老化。
簡化後的啓動過程
1、PC電源的ON----顯示器、鍵盤、機箱上的燈閃爍;
2、檢測顯卡----畫面出現短暫的顯卡信息;
3、檢測內存----隨着嘟嘟的聲音畫面上出現內存的容易信息;
4、執行BIOS----畫面上出現簡略的BIOS信息;
5、檢測其它設備----出現其它設備的信息(CPU,HDD,MEM......);
6、執行OS(操作系統)的初始化文件----STARTING WINDOWS2000等