電腦啟動過程詳解

來源:互聯網
上載者:User
開啟電源啟動機器幾乎是電腦愛好者每天必做的事情,面對螢幕上出現的一幅幅啟動畫面,我們一點兒也不會感到陌生,但是,電腦在顯示這些啟動畫面時都做了些什麼工作呢?相信有的朋友還不是很清楚,本文就來介紹一下從開啟電源到出現Windows的藍天白雲時,電腦到底都幹了些什麼事情。

  首先讓我們來瞭解一些基本概念。第一個是大家非常熟悉的BIOS(基本輸出入系統 (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處。

  好了,下面我們就來仔細看看電腦的啟動過程吧。

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

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

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

  第四步: 尋找完所有其它裝置的BIOS之後,系統BIOS將顯示出它自己的啟動畫面,其中包括有系統BIOS的類型、序號和版本號碼等內容。

  第五步: 接著系統BIOS將檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,並同時在螢幕上顯示記憶體測試的進度,我們可以在CMOS設定中自行決定使用簡單耗時少或者詳細耗時多的測試方式。

  第六步: 記憶體測試通過之後,系統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,這就是為什麼有些機器在每次啟動時都會顯示出相關資訊的原因。

  第十步: ESCD更新完畢後,系統BIOS的啟動代碼將進行它的最後一項工作,即根據使用者指定的啟動順序從磁碟片、硬碟或光碟機啟動。以從C盤啟動為例,系統BIOS將讀取並執行硬碟上的主引導記錄,主引導記錄接著從分區表中找到第一個使用中的磁碟分割,然後讀取並執行這個使用中的磁碟分割的分區引導記錄,而分區引導記錄將負責讀取並執行IO.SYS,這是DOS和Windows 9x最基本的系統檔案。Windows 9x的IO.SYS首先要初始化一些重要的系統資料,然後就顯示出我們熟悉的藍天白雲,在這幅畫面之下,Windows將繼續進行DOS部分和GUI(圖形化使用者介面)部分的引導和初始化工作。

  如果系統之中安裝有引導多種作業系統的工具軟體,通常主引導記錄將被替換成該軟體的引導代碼,這些代碼將允許使用者選擇一種作業系統,然後讀取並執行該作業系統的基本引導代碼(DOS和Windows的基本引導代碼就是分區引導記錄)。   上面介紹的便是電腦在開啟電源開關(或按Reset鍵)進行冷啟動時所要完成的各種初始化工作,如果我們在DOS下按Ctrl+Alt+Del按鍵組合(或從Windows中選擇重新啟動電腦)來進行暖開機,那麼POST過程將被跳過去,直接從第三步開始,另外第五步的檢測CPU和記憶體測試也不會再進行。我們可以看到,無論是冷啟動還是暖開機,系統BIOS都一次又一次地重複進行著這些我們平時並不太注意的事情,然而正是這些單調的硬體檢測步驟為我們能夠正常使用電腦提供了基礎。

現在市場上主流的品牌機隨機安裝的作業系統一般為Windows XP,但是,部分使用者可能仍然對Windows 98、Windows ME或Windows 2000等作業系統情有獨鐘,希望能在不破壞原作業系統的前提下,再安裝一下以上作業系統。按常規來說,如不使用第三方的軟體,我們在安裝微軟的Windows系列作業系統時,應該按照從低版本到高版本的順序來依次安裝;如果使用第三方的軟體,又會涉及到所使用的軟體的著作權及用法問題,對一般使用者來說顯然是不太合適的。其實,按我們在本文提供的方法,不使用第三方的任何軟體也能實現作業系統反著裝,而且十分簡單!

例如我的聯想品牌機,硬碟的C區安裝Windows XP家庭版,C區的檔案格式為FAT 32,其它分區的檔案系統也是FAT 32。使用本文的辦法來安裝Windows 98,C區和安裝Windows 98的分區的檔案系統均需要轉化為FAT 32,否則需要第三方的啟動軟體。當然,如果檔案格式為NTFS,我們可以使用“Partition Magic”這款軟體來將它無損轉換為FAT 32。

準備:支援光碟機啟動的Windows 98/ME啟動磁碟片;DEBUG.EXE檔案(可從Windows\Command檔案夾中拷貝到啟動磁碟片,或從EBD.CAB中解壓縮出來)。

步驟:

第一部分:

安裝Windows 98/ME作業系統

1.將Windows 98/ME的安裝光碟片放入光碟機; 2.使用製作好的啟動盤來啟動電腦;

3.按照正常的安裝Windows 98/ME的方法來安裝作業系統;只是不要將Windows 98/ME安裝在Windows XP所在的分區;

4.安裝好之後,將電腦啟動到Windows 98/ME作業系統。

第二部分:

修改“BOOTSECT.DOS”檔案

按照以上方法安裝Windows 98/ME作業系統之後,會修改Windows XP所必需的開機檔案,我們需要對“BOOTSECT.DOS”檔案進行修改以修複它的開機檔案。

1.開啟“記事本”或其它的文本編輯軟體來製作“READ.SCR”(檔案名稱可以更改),內容如下:

L 100 2 0 1

N C:\BOOTSECT.DOS

R BX

0

R CX

200

W

Q

2.將以上製作好的檔案拷貝到啟動盤中;

3.用啟動盤啟動電腦到DOS方式;

4.修改“BOOTSECT.DOS”的檔案屬性,使用以下命令:

ATTRIB C:\BOOTSECT.DOS -S -H -R

5.在命令提示字元下輸入:DEBUG

  

第三部分:

修複Windows XP

1.修改BIOS中的啟動選項,使電腦能從光碟機啟動;也可以使用剛才製作好的啟動盤來啟動電腦,再在命令提示下輸入f:\i386\winnnt.exe(f為光碟機的盤符)來運行安裝指令;

2.在安裝Windows XP時,我們要選擇“修複”項,以修複硬碟中已安裝的作業系統;

3.選擇需要登入的作業系統,通常為“1”,鍵入“1”,並輸入管理員口令(安裝時所設定的,安裝Windows XP家庭版的聯想品牌機的使用者只需要按斷行符號鍵即可);

4.在命令提示字元下鍵入“FIXBOOT”,以修複Windows XP的開機檔案;

5.拿出光碟機中的Windows XP安裝光碟片,重新啟動電腦,並在BIOS修改啟動選項,將它設定為從硬碟啟動。

現在,你就可以看到Windows XP的啟動菜單了,並能選擇所需要進入的作業系統。重新啟動電腦之後,我們就可以選擇需要啟動的作業系統了。是不是很簡單?

第四部分:

WinXP下安裝Win2000

在安裝好Windows XP之後,再安裝Windows 2000比安裝98或ME要簡單得多。本文所說的方法也不用第三方的軟體,而且可以在FAT32 或NTFS的檔案格式上進行操作。

1.首先,開啟“控制台”,選擇“檔案夾選項”並雙擊,在“檔案夾選項”視窗中選擇“查看”,在“進階設定”中將“隱藏受保護的作業系統檔案”前的“√”去掉,以顯示我們所需要的兩個系統檔案:“NTLDR”和“NTDETECT.COM”;

2.將以上兩個檔案拷貝到一張磁碟片中;

3.修改BIOS中的啟動選項以從光碟片啟動電腦,並運行Windows 2000的安裝操作程式;

4.按正常方法安裝Windows 2000;

5.安裝完成後,將電腦啟動到Windows 2000;

6.將我們拷貝到磁碟片中的以上兩個檔案拷貝到C區根目錄;如果系統提示不能拷貝,使用者需要修改以上兩個檔案的屬性,去掉它們的“唯讀”和“隱藏”等屬性。

說明:我們這兒所以這樣做是因為Win XP版本的“NTLDR”和“NTDETECT.COM”支援啟動Windows 2000,但是後者並不支援啟動到前者,所以我們需要進行以上操作。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.