電腦開機過程

來源:互聯網
上載者:User

開機全過程以每行一個過程來看
IO.SYS
MSDOS.SYS
CONFIG.SYS
COMMAND.COM
AUTOEXEC.BAT
這五個檔案是開機的五個應該有的檔案順序

電腦腦啟動流程是指從給電腦加電到裝載完作業系統的過程,這個過程涉及電腦硬體和軟體的一系列操作。對啟動流程的瞭解,有助於在電腦發生故障時分析、判斷產生故障的環節。

電腦從加電啟動到啟動成功,主要經曆了開機、加電自檢、檢測顯卡BIOS、顯示BIOS資訊、檢測CPU、檢測記憶體、檢測標準裝置、檢測隨插即用裝置、顯示標準裝置的參數、按指定啟動順序啟動系統、執行IO.SYS和MSDOS.SYS系統檔案、執行COMMAND.COM等其他系統檔案、讀取Windowns的初始設定檔案、啟動成功。

開啟電源啟動機器幾乎是電腦愛好者每天必做的事情,面對螢幕上出現的一幅幅啟動畫面,我們一點兒也不會感到陌生,但是,電腦在顯示這些啟動畫面時都做了些什麼工作呢?相信有的朋友還不是很清楚,本文就來介紹一下從開啟電源到出現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處。

引導過程

我們幾乎每天都要開啟電源啟動機器,面對螢幕上出現的一幅幅啟動畫面,我們一點兒也不會感到陌生,但是,電腦在顯示這些啟動畫面時都做了些什麼工作呢?

開啟電腦機電源後到電腦準備接受你發出的命令之間電腦所啟動並執行過程稱為引導(Boot)過程。我們知道,當關閉電源後,RAM的資料將丟失,因此,電腦不是用RA來保持電腦的基本工作指令,而是使用另外的方法將作業系統檔案載入到RAM中,再由作業系統接管對機器的控制。這是引導過程中的一個主要部分。總的說來,引導過程有下面幾個步驟:

① 加電––––開啟電源開關,給主板和內部風扇供電。

② 啟動引導程式––––CPU開始執行儲存在ROM BIOS中的指令。

③ 開機自我測試 (POST)––––電腦對系統的主要組件進行診斷測試。

④ 載入作業系統––––電腦將作業系統檔案從磁碟讀到RAM中。

⑤ 檢查設定檔,定製作業系統的運行環境––––讀取設定檔,根據使用者的設定對作業系統進行定製。

⑥ 準備讀取命令和資料––––電腦等待使用者輸入命令和資料。

(一) 加電

引導過程的第一步就是通電。電扇開始運轉,電源指示燈應該變亮,否則說明系統電源供應有問題,或是主板等組件和機箱發生短路。

(二) 啟動引導程式

CPU是從記憶體位址FFFF0H處開始執行指令的,從前面的介紹可知,這個地址實際上在系統BIOS的位址範圍內,無論是哪家公司的 BIOS,放在這裡的只是一條跳轉指令,跳到系統BIOS中真正的啟動代碼處。

(三) 開機自我測試 (POST)

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

POST結束之後,系統BIOS將尋找顯卡的BIOS並調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數顯卡都會在螢幕上顯示出一些初始化資訊,介紹

生產廠商、圖形晶片類型等內容。系統BIOS接著會尋找其他裝置的BIOS程式,找到之後同樣要調用這些BIOS內部的初始化代碼來初始化相關的裝置。

尋找完所有其他裝置的BIOS之後,系統BIOS將顯示出它自己的啟動畫面,其中包括系統BIOS的類型、序號和版本號碼等內容。然後檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,並同時在螢幕上顯示記憶體測試的進度。

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

標準裝置檢測完畢後,系統BIOS內部支援隨插即用的代碼將開始檢測和配置系統中安裝的隨插即用裝置,每找到一個裝置之後,系統BIOS都會在螢幕上顯示出裝置的名稱和型號等資訊,同時為該裝置分配中斷、DMA通道和I/O連接埠等資源。

經過上面幾步,所有硬體都已經檢測配置完畢,多數系統BIOS會重新清屏並在螢幕上方顯示出一個表格,其中概略地列出了系統中安裝的各種標準硬體裝置,以及它們使用的資源和一些相關工作參數。

接下來系統BIOS將根據CMOS配置更新ESCD(Extended System Configuration Data,擴充系統配置資料),ESCD是系統BIOS用來與作業系統交換硬體設定資訊的一種手段。通常ESCD資料只在系統硬體設定發生改變後才會更新,所以不是每次啟動機器時我們都能夠看到“Update ESCD… Success”這樣的資訊。

(四) 載入作業系統

在POST成功之後,系統BIOS的啟動代碼將進行它的最後一項工作,即根據使用者指定的啟動順序從磁碟片、硬碟或光碟機啟動,定位並載入作業系統檔案。首先電腦尋找兩個作業系統檔案:Io.sys和Msdos.sys。如果這兩個檔案不存在,引導過程會顯示如下資訊:“Non-system disk or disk error”或者“Invalid system disk”。

提示:如果設定的啟動順序是先磁碟片後硬碟,出現上述提示時要檢查一下軟碟機中是否放的是系統硬碟(包含上述系統檔案)。如果不是系統硬碟,可將磁碟片取出,在按任意鍵後,電腦將從下一個磁碟機(硬碟)尋找系統檔案。

然後,微處理器將試圖載入另外一個作業系統檔案Command.com。如果載入失敗(Command.com檔案不存在或版本不對),會出現故障資訊:“Bad or missing command interpreter”,而且你發出的所有命令電腦都無法執行,因為Command.com是專門用來解釋這些命令的。

(五) 檢查設定檔並定製作業系統的運行環境

在引導過程初期,電腦通過檢查CMOS中的資訊對硬體作初始化等工作。但具

體到不同的作業系統中,電腦還需要更多的配置資訊來正確使用所有的裝置並建立個人化的運行環境。

我們以DOS和Windows兩種常用的PC作業系統為例,在DOS中我們常通過建立並編輯Autoexec.bat檔案實現開機後自動執行某些命令,比如設定硬碟緩衝區大小、自動啟動漢字環境等;在另一個檔案Config.sys中可以載入滑鼠、光碟機、音效卡等裝置的DOS驅動程式等,使在DOS中可以使用這些裝置。在Windows中對運行環境進行配置的方法更多,比如修改註冊表,編輯System.ini、Win.ini等系統設定檔,或將希望啟動完Windows後立即執行的內容放入Windows的啟動(Startup)組中。

(六) 準備接收命令和資料

當電腦準備好接收命令時就結束了引導過程。通常在引導結束後,電腦會顯示作業系統的螢幕或提示符。如果你使用的是Windows,那麼就會看到Windows的案頭;如果使用的是DOS,就會看到作業系統提示符(如C:\>;A:\>等)。

上面介紹的整個過程便是電腦在開啟電源開關(或按Reset鍵)進行冷啟動時所要完成的引導工作。如果我們在DOS下按Ctrl+Alt+Del按鍵組合(或從Windows中選擇重新啟動電腦)來進行暖開機,那麼POST過程將被跳過去,另外檢測CPU和記憶體測試也不會再進行。我們可以看到,無論是冷啟動還是暖開機,系統BIOS都一次又一次地重複進行著這些我們平時並不太注意的事情,然而正是這些單調的步驟為我們能夠正常使用電腦提供了基礎。

目錄

1、預引導(Pre-Boot)階段
2、引導階段
3、載入核心階段
4、初始化核心階段
5、登陸

一、預引導階段 在按下電腦電源使電腦啟動,
並且在Windows XP作業系統啟動之前這段時間,
我們稱之為預引導(Pre-Boot)階段,
在這個階段裡,電腦首先運行Power On Self Test(POST),
POST檢測系統的總記憶體以及其他硬體裝置的現狀。
如果電腦系統的BIOS(基礎輸入/輸出系統)是隨插即用的,
那麼電腦硬體裝置將經過檢驗以及完成配置。
電腦的基礎輸入/輸出系統(BIOS)定位電腦的引導裝置,
然後MBR(Master Boot Record)被載入並運行。
在預引導階段,電腦要載入Windows XP的NTLDR檔案。

二、引導階段 Windows XP Professional引導階段包含4個小的階段。
首先,電腦要經過初始引導載入器階段(Initial Boot Loader),
在這個階段裡,NTLDR將電腦微處理器從實模式轉換為32位平面記憶體模式。
在實模式中,系統為MS-DOS保留640kb記憶體,其餘記憶體視為擴充記憶體,
而在32位平面記憶體模式中,系統(Windows XP Professional)視所有記憶體為可用記憶體。
接著,NTLDR啟動內建的mini-file system drivers,
通過這個步驟,使NTLDR可以識別每一個用NTFS或者FAT檔案系統格式化的分區,
以便發現以及載入Windows XP Professional,
到這裡,初始引導載入器階段就結束了。
接著系統來到了作業系統選擇階段,
如果電腦安裝了不止一個作業系統(也就是多系統),
而且正確設定了boot.ini使系統提供作業系統選擇的條件下,
電腦顯示器會顯示一個作業系統選單,
這是NTLDR讀取boot.ini的結果。

三、載入核心階段 在載入核心階段,ntldr載入稱為Windows XP核心的ntokrnl.exe。
系統載入了Windows XP核心但是沒有將它初始化。
接著ntldr載入硬體抽象層(HAL,hal.dll),然後,
系統繼續載入HKEY_LOCAL_MACHINE\system鍵,
NTLDR讀取select鍵來決定哪一個Control Set將被載入。
控制集中包含裝置的驅動程式以及需要載入的服務。
NTLDR載入HKEY_LOCAL_MACHINE\system\service\...下start索引值為0的最底層裝置驅動。
當作為Control Set的鏡像的Current Control Set被載入時,
ntldr傳遞控制給核心,初始化核心階段就開始了。

四、初始化核心階段 在初始化核心階段開始的時候,
彩色的Windows XP的logo以及進度條顯示在螢幕中央,
在這個階段,系統完成了啟動的4項任務:
核心使用在硬體檢測時收集到的資料來建立了HKEY_LOCAL_MACHINE\HARDWARE鍵。
核心通過引用HKEY_LOCAL_MACHINE\system\Current的預設值複製Control Set來建立了Clone Control Set。
Clone Control Set配置是電腦資料的備份,不包括啟動中的改變,也不會被修改。
系統完成初始化以及載入裝置驅動程式,核心初始化那些在載入核心階段被載入的底層驅動程式,
然後核心掃描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start索引值為1的裝置驅動程式。

這些裝置驅動程式在載入的時候便完成初始化,如果有錯誤發生,核心使用ErrorControl索引值來決定如何處理,
值為3時,錯誤標誌為危機/關鍵,系統初次遇到錯誤會以LastKnownGood Control Set重新啟動,
如果使用LastKnownGood Control Set啟動仍然產生錯誤,系統報告啟動失敗,錯誤資訊將被顯示,
系統停止啟動;值為2時錯誤情況為嚴重,系統啟動失敗並且以LastKnownGood Control Set重新啟動,
如果系統啟動已經在使用LastKnownGood值,它會忽略錯誤並且繼續啟動;
當值是1的時候錯誤為普通,系統會產生一個錯誤資訊,
但是仍然會忽略這個錯誤並且繼續啟動;當值是0的時候忽略,系統不會顯示任何錯誤資訊而繼續運行
Session Manager啟動了Windows XP進階子系統以及服務,
Session Manager啟動控制所有輸入、輸出裝置以及訪問顯示器螢幕的Win32子系統以及Winlogon進程,
初始化核心完畢。

五、登陸 Winlogon.exe啟動Local Security Authority,
同時Windows XP Professional歡迎畫面或者登陸對話方塊顯示,
這時候,系統還可能在後台繼續初始化剛才沒有完成的驅動程式。
提示輸入有效使用者名稱或密碼。
Service Controller最後執行以及掃描HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servives來檢查是否還有服務需要載入,
Service Controller尋找start索引值為2或更高的服務,
服務按照start的值以及DependOnGroup和DepandOnService的值來載入。
只有使用者成功登陸到電腦後,Windows XP的啟動才被認為是完成,
在成功登陸後,系統拷貝Clone Control Set到LastKnownGood Control Set,完成這一步驟後,
系統才意味著已經成功引導了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.