當前位置:首頁>>軟件教程>>操作系統(tǒng)>>新聞內容
計算機啟動過程內幕大揭密
作者:佚名 發(fā)布時間:2004-5-29 9:03:35 文章來源:西部E網

  打開電源啟動機器幾乎是電腦愛好者每天必做的事情,面對屏幕上出現(xiàn)的一幅幅啟動畫面,我們一點兒也不會感到陌生,但是,計算機在顯示這些啟動畫面時都做了些什么工作呢?相信有的朋友還不是很清楚,本文就來介紹一下從打開電源到出現(xiàn)Windows的藍天白云時,計算機到底都干了些什么事情。

  首先讓我們來了解一些基本概念。第一個是大家非常熟悉的BIOS(基本輸入輸出系統(tǒng)),BIOS是直接與硬件打交道的底層代碼,它為操作系統(tǒng)提供了控制硬件設備的基本功能。BIOS包括有系統(tǒng)BIOS(即常說的主板BIOS)、顯卡BIOS和其它設備(例如IDE控制器、SCSI卡或網卡等)的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í)行指令。當芯片組檢測到電源已經開始穩(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過程進行得非?,我們幾乎無法感覺到它的存在,POST結束之后就會調用其它代碼來進行更完整的硬件檢測。

  第三步: 接下來系統(tǒng)BIOS將查找顯卡的BIOS,前面說過,存放顯卡BIOS的ROM芯片的起始地址通常設在C0000H處,系統(tǒng)BIOS在這個地方找到顯卡BIOS之后就調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數(shù)顯卡都會在屏幕上顯示出一些初始化信息,介紹生產廠商、圖形芯片類型等內容,不過這個畫面幾乎是一閃而過。系統(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端口等資源。

  第八步: 到這一步為止,所有硬件都已經檢測配置完畢了,多數(shù)系統(tǒng)BIOS會重新清屏并在屏幕上方顯示出一個表格,其中概略地列出了系統(tǒng)中安裝的各種標準硬件設備,以及它們使用的資源和一些相關工作參數(shù)。

  第九步: 接下來系統(tǒng)BIOS將更新ESCD(Extended System Configuration Data,擴展系統(tǒng)配置數(shù)據(jù))。ESCD是系統(tǒng)BIOS用來與操作系統(tǒng)交換硬件配置信息的一種手段,這些數(shù)據(jù)被存放在CMOS(一小塊特殊的RAM,由主板上的電池來供電)之中。通常ESCD數(shù)據(jù)只在系統(tǒng)硬件配置發(fā)生改變后才會更新,所以不是每次啟動機器時我們都能夠看到“Update ESCD… Success”這樣的信息,不過,某些主板的系統(tǒng)BIOS在保存ESCD數(shù)據(jù)時使用了與Windows 9x不相同的數(shù)據(jù)格式,于是Windows 9x在它自己的啟動過程中會把ESCD數(shù)據(jù)修改成自己的格式,但在下一次啟動機器時,即使硬件配置沒有發(fā)生改變,系統(tǒng)BIOS也會把ESCD的數(shù)據(jù)格式改回來,如此循環(huán),將會導致在每次啟動機器時,系統(tǒng)BIOS都要更新一遍ESCD,這就是為什么有些機器在每次啟動時都會顯示出相關信息的原因。

  第十步: ESCD更新完畢后,系統(tǒng)BIOS的啟動代碼將進行它的最后一項工作,即根據(jù)用戶指定的啟動順序從軟盤、硬盤或光驅啟動。以從C盤啟動為例,系統(tǒng)BIOS將讀取并執(zhí)行硬盤上的主引導記錄,主引導記錄接著從分區(qū)表中找到第一個活動分區(qū),然后讀取并執(zhí)行這個活動分區(qū)的分區(qū)引導記錄,而分區(qū)引導記錄將負責讀取并執(zhí)行IO.SYS,這是DOS和Windows 9x最基本的系統(tǒng)文件。Windows 9x的IO.SYS首先要初始化一些重要的系統(tǒng)數(shù)據(jù),然后就顯示出我們熟悉的藍天白云,在這幅畫面之下,Windows將繼續(xù)進行DOS部分和GUI(圖形用戶界面)部分的引導和初始化工作。

  如果系統(tǒng)之中安裝有引導多種操作系統(tǒng)的工具軟件,通常主引導記錄將被替換成該軟件的引導代碼,這些代碼將允許用戶選擇一種操作系統(tǒng),然后讀取并執(zhí)行該操作系統(tǒng)的基本引導代碼(DOS和Windows的基本引導代碼就是分區(qū)引導記錄)。

   上面介紹的便是計算機在打開電源開關(或按Reset鍵)進行冷啟動時所要完成的各種初始化工作,如果我們在DOS下按Ctrl+Alt+Del組合鍵(或從Windows中選擇重新啟動計算機)來進行熱啟動,那么POST過程將被跳過去,直接從第三步開始,另外第五步的檢測CPU和內存測試也不會再進行。我們可以看到,無論是冷啟動還是熱啟動,系統(tǒng)BIOS都一次又一次地重復進行著這些我們平時并不太注意的事情,然而正是這些單調的硬件檢測步驟為我們能夠正常使用電腦提供了基礎。


最新更新
·教你刪除Windows 7自動創(chuàng)建的
·檢測你的計算機是否能運行Wi
·如何安裝Windows 7 RC的中文
·解決Vista關閉UAC后邊欄無法
·Windows 7 RC新功能XP Mode詳
·Windows7操作系統(tǒng)硬件配置要
·wubi安裝Ubuntu 9.04失敗的原
·如何修改Windows7的軟件默認
·在Windows7在硬盤升級Window
·vista在硬盤下全新安裝Windo
相關信息
·徹底揪出Windows啟動蛀蟲
·Windows操作系統(tǒng)“自啟動”程序搜索大法
·巧思妙招改變自啟動項目順序
·在DOS下創(chuàng)建Windows啟動盤
·計算機常見的10種啟動故障解決方法
·系統(tǒng)自動啟動程序之十大藏身之所
·不修改BIOS 實現(xiàn)從軟盤引導系統(tǒng)
放生
愚愛
夠愛
觸電
白狐
心跳
知足
犯錯
降臨
分愛
葬愛
光榮
畫心
火花
稻香
愛得起
這種愛
大丈夫
花蝴蝶
二缺一
小酒窩
下雨天
右手邊
安靜了
棉花糖
明天過后
邊做邊愛
擦肩而過
沒有如果
懷念過去
等一分鐘
越來越愛
寂寞暴走
你的承諾
Nobody
我們都一樣
永遠在身邊
天使的翅膀
原諒我一次
i miss you
原諒我一次
吻的太逼真
姑娘我愛你
做你的愛人
一定要愛你
飛向別人的床
愛上別人的人
感動天感動地
心在跳情在燒
不潮不用花錢
如何能把你忘記
即使知道要見面
愛上你是一個錯
最后一次的溫柔
愛上你是我的錯
怎么會狠心傷害我
親愛的那不是愛情
傷心時候可以聽情歌
愛上你等于愛上了錯
不是因為寂寞才想你