史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   作業系統操作技術文件 (http://forum.slime.com.tw/f128.html)
-   -   深入Win XP之認識神秘的啟始文件NTLDR (http://forum.slime.com.tw/thread166710.html)

psac 2006-01-24 09:13 PM

深入Win XP之認識神秘的啟始文件NTLDR
 
深入Win XP之認識神秘的啟始文件NTLDR

NTLDR一般存放於C碟根目錄下,是一個具有隱藏和只讀內容的系統檔案。它的主要職責是解析Boot.ini文件。如果你對它的理解還不是很清楚,那麼下面我們就以Windows XP為例介紹NTLDR在系統啟始程序中的作用。
  Windows XP在啟始程序中將經歷預啟始、啟始和載入內核三個階段,這與Windows 9X直接讀取啟始扇區的方式來啟動系統是完全不一樣的,NTLDR在這三個階段的啟始程序中將起到至關重要的作用。

  1.預啟始階段

  在預啟始階段裡電腦所做的工作有:執行POST程序,POST將檢測系統的總記憶體以及其他硬體設備的狀況,將磁牒第一個物理扇區載入到記憶體,載入硬碟硬碟分區表並執行,硬碟分區表會搜尋活動分區的起始位置。接著活動分區的啟始扇區被載入並執行,最後從啟始扇區載入並啟始化NTLDR文件。

  2.啟始階段

  在啟始階段中,Windows XP將會依次經歷初始啟始載入器階段、操作系統選項階段、硬體檢測階段以及組態選項階段這四個小的階段。


(1)在初始啟始載入器階段中,NTLDR將把電腦的微處理器從真實模式轉換為32位平面記憶體模式,在真實模式中,系統會為MS-DOS預留640KB大小的記憶體空間,其餘的記憶體都被看做是增強記憶體,在32位平面模式中系統將所有記憶體都視為可用記憶體,然後NTLDR執行適當的小型文件系統驅動程式,這時NTLDR可以識別每一個用NTFS或FAT格式的文件系統分區,至此初始啟始載入器階段結束。

  (2)當初始啟始載入器階段結束後將會進入操作系統選項階段,如果電腦上安裝了多個操作系統,由於NTLDR載入了正確的Boot.ini文件,那麼在啟動的時候將會出現要求選項操作系統的表單,NTLDR正是從boot.ini文件中搜尋到系統檔案的分區位置。如果選項了NT系統,那麼NTLDR將會執行NTDETECT.COM文件,否則NTLDR將載入BOOTSECT.DOS,然後將控制權交給BOOTSECT.DOS。如果Boot.ini文件中只有一個操作系統或者其中的timeout值為0,那麼將不會出現選項操作系統的表單畫面,如果Boot.ini文件非法或不存在,那麼NTLDR將會嘗試從預設系統磁碟區啟動系統。

  小提示:NTLDR啟動後,如果在系統根目錄下發現有Hiberfil.sys文件且該檔案有效,那麼NTLDR將讀取Hiberfil.sys文件裡的訊息並讓系統恢復到休眠以前的狀態,這時並不處理Boot.ini文件。

  (3)當操作系統選項階段結束後將會進入硬體檢測階段,這時NTDETECT.COM文件將會收集電腦中硬體訊息列表,然後將列表返回到NTLDR,這樣NTLDR將把這些硬體訊息載入到註冊表「HKEY_LOCAL_MACHINE」中的Hardware中。

  (4)硬體檢測階段結束後將會進入組態選項階段,如果有多個硬體組態列表,那麼將會出現組態文件選項表單,如果只有一個則不會顯示。

  3.載入內核階段

  在載入內核階段中,NTLDR將載入NTOKRNL.EXE內核程序,然後NTLDR將載入硬體抽像層(HAL.dll),接著系統將載入註冊表中的「HKEY_MACHINESystem」鍵值,這時NTLDR將讀取「HKEY_MACHINESystemselect」鍵值來決定哪一個ControlSet將被載入。所載入的ControlSet將包含設備的驅動程式以及需要載入的服務。再接著NTLDR載入註冊表「HKEY_LOCAL_MACHINESystemservice」下的start鍵值為0的底層設備驅動。當ControlSet的映射CurrentControlSet被載入時,NTLDR將把控制權傳送給NTOSKRNL.EXE,至此啟始程序將結束。

  小提示:如果在啟動的時候按F8鍵,那麼我們將會在啟動表單中看到多種選項啟動模式,這時NTLDR將根據用戶的選項來使用啟動參數載入NT內核,用戶也可以在Boot.ini文件裡設定啟動參數。


所有時間均為台北時間。現在的時間是 09:43 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1