|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-03-08, 01:44 AM | #1 |
榮譽會員
|
Windows XP Professional電腦啟動過程概述
Windows XP Professional電腦啟動過程概述
概述 本文講述了Microsoft Windows XP 在x86架構電腦上的啟動過程,旨在使讀者更加瞭解Windows XP專業版啟動的基本知識。瞭解了這些知識以後,當啟動發生問題時,可以更快地找到解決方案以避免可能發生的各方面的損失。但要注意的是,本文並沒有涉及到故障處理以及任何關於故障的闡述,本文僅僅介紹Windows XP啟始/啟動過程。 -------------------------------------------------------------------------------- 目錄 1. Windows XP啟動階段概覽 2. 每個啟動階段的詳細介紹 -------------------------------------------------------------------------------- Windows XP啟動階段概覽 從按下電腦開關啟動電腦,到登入到桌面完成啟動,一共經過了以下幾個階段: 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,完成這一步驟後,系統才意味著已經成功啟始了。 -------------------------------------------------------------------------------- 結論 本文簡單講述了Windows XP Professional在32位電腦上的啟動/啟始過程,包括每個啟動階段,以及階段中的詳細步驟。雖然本文沒有提及錯誤處理,但是通過讓讀者瞭解這些啟動過程,當遇到錯誤時他們會變得更加從容以及更加容易找到錯誤的原因。 -------------------------------------------------------------------------------- 參考資料 NT啟動所需檔案是: Ntldr-這是一個隱藏的,只讀的系統檔案,用來裝載操作系統Boot.ini-這是一個只讀的系統檔案,用來在基於Intel x86的電腦上建立啟動裝載操作系統選擇表單的檔案Bootsect.dos-這是個隱藏的系統檔案,如果另外的操作系統被選擇,則被Ntldr裝載到記憶體。 Ntdetect.com-這是個隱藏的,只讀系統檔案。,用於檢測可用的硬體並建立一個硬體列表。 Ntbootddd.sys-這個檔案僅被從SCSI磁碟啟動的系統使用。 共同的啟動序列檔案是: Ntoskrnl.exe-Windows NT 的內核System-這個檔案是系統配置設置的集合。 Device drivers-這些是支持各種設備驅動器的檔案 Hal.dll-硬體抽像層軟體 啟動序列如下: 1、電源自檢程序開始執行 2、主啟始記錄被裝入記憶體,並且程序開始執行 3、活動分區的啟始扇區被裝入記憶體 4、Ntldr從啟始扇區被裝入並初始化 5、將處理器的實模式改為32位平滑記憶體模式 6、Ntldr開始執行適當的小檔案系統驅動程式。小檔案系統驅動程式是建立在NTLDR內部的,它能讀FAT或NTFS。 7、Ntldr讀boot.ini檔案 8、Ntldr裝載所選操作系統 *如果WindowsNT被選擇,Ntldr執行Ntdetect.com *對於其他的操作系統,Ntldr裝載並執行Bootsect.dos然後向它傳遞控制. windows NT過程結束. 9.Ntdetect.com 搜索電腦硬體並將列表傳送給Ntldr,以便將這些訊息寫進HKE Y_LOCAL_MACHINEHARDWARE中. 10.然後Ntldr裝載Ntoskrnl.exe,Hal.dll和系統訊息集合 11.Ntldr搜索系統訊息集合,並裝載設備驅動配置以便設備在啟動時開始工作 12.Ntldr把控制權交給Ntoskrnl.exe,這時,啟動程序結束,裝載階段開始 [1] Microsoft Windows XP 專業版幫助; [2] MCSE: Windows XP Professional Study Guide. Sybex Press. [3] MCSE Training Kit Microsoft Windows XP Professional. Microsoft Press. |
送花文章: 3,
|
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
用Windows XP的原位昇級安裝解決系統問題 | psac | 作業系統操作技術文件 | 3 | 2006-08-20 07:59 PM |
Windows PreInstallation Environment深入研究 | psac | 作業系統操作技術文件 | 1 | 2006-02-08 05:03 PM |
WINDOWS XP調整、設定、最佳化全攻略 | psac | 作業系統操作技術文件 | 8 | 2005-01-11 08:55 PM |
Windows XP鮮為人知的70招 | psac | 作業系統操作技術文件 | 13 | 2004-01-02 01:10 PM |
Windows 2000/Xp 錯誤編號詳解(收集整理) | psac | 作業系統操作技術文件 | 9 | 2003-08-03 03:27 PM |