WindowsXP啓動過程

從按下計算機開關啓動計算機,到登入到桌面完成啓動,一共經過了以下幾個階段:
  1. 預引導(Pre-Boot)階段;
  2. 引導階段;
  3. 加載內核階段;
  4. 初始化內核階段;
  5. 登錄。

  每個啓動階段的詳細介紹
   a) 預引導階段
    在按下計算機電源使計算機啓動,並且在Windows XP專業版操作系統啓動之前這段
時間,我們稱之爲預引導(Pre-Boot)階段,在這個階段裏,計算機首先運行Power
On
Self Test(POST),POST檢測系統的總內存以及其他硬件設備的現狀。如果計算機系統
的BIOS(基礎輸入/輸出系統)是即插即用的,那麼計算機硬件設備將經過檢驗以及完成配
置。計算機的基礎輸入/輸出系統(BIOS)定位計算機的引導設備,然後MBR(Master Boot
Record)被加載並運行。在預引導階段,計算機要加載Windows XP的NTLDR文件。
   b) 引導階段
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的結果。
  在boot.ini中,主要包含以下內容:
  [boot loader]
  timeout=30
  default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
  [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional" /
fastdetect
  multi(0)disk(0)rdisk(0)partition(2)/WINNT="Windows Windows 2000 Professional"
    其中,multi(0)表示磁盤控制器,disk(0)rdisk(0)表示磁盤,partition(x)表示分區。
NTLDR就是從這裏查找Windows XP Professional的系統文件的位置的。(*本文不會更詳細
地講解boot.ini的組成結構,因爲其與本主題關係不大,如果想了解,可以到一些專門的網
站處查詢相關信息。)如果在boot.ini中只有一個操作系統選項,或者把timeout值設爲0,
則系統不出現操作系統選擇菜單,直接引導到那個唯一的系統或者默認的系統。在選擇啓
動Windows XP Professional後,操作系統選擇階段結束,硬件檢測階段開始。
  在硬件檢測階段中,ntdetect.com將收集計算機硬件信息列表並將列表返回到NTLDR,
這樣做的目的是便於以後將這些硬件信息加入到註冊表HKEY_LOCAL_MACHINE下的
hardware中。
    硬件檢測完成後,進入配置選擇階段。如果計算機含有多個硬件配置文件列表,可以
通過按上下按鈕來選擇。如果只有一個硬件配置文件,計算機不顯示此屏幕而直接使用默
認的配置文件加載Windows XP專業版。

引導階段結束。在引導階段,系統要用到的文件一共有:NTLDR,Boot.ini,
ntdetect.com,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可選的)。
c) 加載內核階段
在加載內核階段,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傳遞控制給內核,初始化內核階段就
開始了。
d) 初始化內核階段
在初始化內核階段開始的時候,彩色的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進程,初始化內核完
畢。
e) 登錄
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,完成這一步驟後,系統才意味着
已經成功引導了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章