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將會嘗試從預設系統卷啟動系統。
(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,至此引導過程將結束。
解讀Zend框架 四 引導檔案
根據上回的專案結構介紹,我們可以很清晰的認識到zf專案的一切路由請求都交由index.php這個引導檔案來處理,那麼在這個檔案中到底有哪些內容,需要我們做些什麼?請先預讀 view source print?01.defined 02.define realpath dirname file 03....
安裝CentOS時不小心將系統引導檔案寫在U盤上
最近在window7上面安裝了乙個centos,採用的方法是u盤安裝,安裝的時候沒注意將引導檔案寫在電腦硬碟上,而是按照預設步驟寫在u盤上,導致開機的時候直接進入windows 7系統,而沒有提供讓你進入centos的選項.但是,如果插入u盤,選擇u盤啟動,又能進入centos系統,神奇了 廢話不多...
再談WINXP下的檔案共享問題!
最近一直有朋友在問winxp下檔案共享問題,比如如何實現guest使用者訪問共享,如何保證共享的安全等。其實這已經是乙個老話題了,今天閒暇,寫一寫,有需要的朋友可以作為參考。環境 工作組,所有計算機允可以網路連通。注 如果是域環境,所有的計算機是可以互相訪問資源的 當然不要開相應的防火牆設定即可 拓...