2024年1月28日发(作者:)
開機程序(Boot Process Sequences)
1. 啟動準備(Pre-Boot)
2. 啟動(Boot)
3. 核心讀取(Kernel Lord)
4. 核心初始化(Kernel Initiation)
5. 登入(Logon)
Pre-Boot
啟動電源後:
1. BIOS進行基本測試,並顯示實體記憶體及基本元件
2. 如果有隨插即用輸入/輸出裝置,在這個時候BIOS已經可以辨識和配置
3. BIOS定位啟動裝置,接著讀取主要開機磁區(MBR)
Boot
.初始化開機程序(Initial Boot Loader)
.作業系統選擇(Operating System Selection)
.硬體檢測(Hardware Detection)
.組態選擇(Configuration selection)
Boot Sequence Files(開機檔案)
共有6個:
Ntldr
(選擇性的)
Initial Boot Loader
在這階段,NTLDR在真實模式分割出640KB的記憶體給MS-DOS,剩下的記憶體就是32位元Windows XP可用的總記憶體。
接著NTLDR建立迷你的系統驅動程式,來辨識分割區為FAT或是NTFS並且在上面啟動程序,完成後結束初始化開機程序(Initial Boot Loader)。
Operating System Selection
如果電腦安裝有多重作業系統,會設定並顯示多重開機選單,所以NTLDR會讀取檔。是一個在系統磁區下的隱藏檔。如果電腦只有單一作業系統,會自動選擇並啟動。
timeout=0
timeout=-1
Hardware Detection
NTDETECT和NTLDR執行硬體檢測。當Windows XP讀取完後,NTDETECT會收集已安裝的硬體清單並且回報給NTLDR,以便稍後在登錄檔(registry)中創造硬體機碼(hardware key)。
元件檢測(Components Detected):
.匯流排類型(Bus/Adapter Types)
.顯示卡(Video Adapters )
.通訊連接埠(Communication Port)
.序列連接埠(Parallel Port)
.浮點運算處理器(Floating-Point Coprocessors)
.抽取式媒體(Removable Media)
.鍵盤(Keyboards)
.指向性裝置(Pointing Devices)
Configuration selection
如果電腦存有多組硬體設定檔,NTLDR會顯示出硬體設定檔選單,用來選擇或是復原。如果只有單一硬體設定檔,Windows XP會自動使用預設值。
Kernel Lord
在核心讀取的過程中,NTLDR會讀取,呼叫Windows XP核心,這時核心被讀取,但還未初始化。接著NTLDR會讀取HAL(Hardware
Abstraction Layer),檔案為檔。
HAL是一個介於Windows XP Kernel和真實硬體間的微小軟體層,常駐在記憶體中。核心和少數的核心模式服務可以直接存取硬體,但硬體有時繪製造出為解決的異常呼叫(Exception Call)。HAL就是為了解決無法辨識的硬體所製造出的異常呼叫模式,像一個過濾器(Filter)。HAL使不同類型的硬體像是不同的作業系統,這讓Windows XP可以存取更多不同類型的硬體。HAL也支援讓單一驅動程式支援所有的平臺。不過並不是所有的硬體呼交都需要透過HAL。
HAL讀取完後,接著會讀取HKEY_LOCAL_MACHINESYSTEM的登錄機碼(Registry Key),NTLDR會讀取Select 來決定要載入那些控制設定。
Control Set包含了控制系統的設定檔,像是驅動程式、系統服務的讀取與啟動。
NTLDR會載入數值為0的裝置並啟動,這是典型的低階驅動程式。登入檔中包含了驅動程式的路徑,所以NTLDR可以找到那些檔案。當Control Set設定完成後,他會製造出一個鏡像來當作預設值。到這裡後,NTLDR已功成身退,控制權完全轉交於Kernel。
Kernel Initiation
當核心開始初始化,螢幕上會出現Windows XP的開機畫面,初始化狀態的顯示就是那條藍色的光棒。
在初始化的過程中,有4個作業會完成:
1.硬體資訊已被建立(The hardware key is created)
2.複製後的Control Set已被建立(The clone control set is created)
3.裝置驅動程式已被載入且以初始化完畢(The device drivers are loaded and
initialized)
4.服務被啟動(Services are started)
The hardware key is created
要建立Hardware Key在登錄檔中(Registry),核心使用在Hardware Detection
階段收集來的資料把Hardware Key建立在HKEY_LOCAL_MACHINEHARDWARE
The clone control set is created
要建立Clone Control Set,核心使用default值來建立在系統底下,位置為Select。這個Clone Control Set和NTLDR所載入的是完全一樣的。這個複製的Control Set完全不會被修改,但會被用在接下來的開機程序中。
The device drivers are loaded and initialized
要載入並初始化驅動程式,核心讀取在Kernel Lord時所建立的低階驅動程式,再來核心會掃描在HKEY_LOCAL_MACHINESystemCurrentControlSetServices中的驅動程式,start值為1。很快的,驅動程式已被初始化且載入。如果發生錯誤,核心使用在驅動程式中的ErrorControl的值來決定結果。
0:忽略,開機程序繼續
1:正常,顯示錯誤訊息,開機程序繼續
2:嚴重錯誤,開機程序失敗,重新啟動使用中的LKG(LastKnownGood)Control
Set
3:臨界錯誤,開機程序失敗,重新啟動使用中的LKG(LastKnownGood)Control
Set。如果是LKG Control Set造成錯誤,開機程序終止,並顯示錯誤訊息。
Services are started
接著,Session Manger啟動高次(Higher-order)子系統和服務。再來就可在螢幕存取所有的輸入/輸出裝置了。這代表Graphical User Interface(GUI)已經被啟動了。。至此,核心已經完全初始化完畢,Session Manger會啟動登入程
序。
Logon
啟動本機安全性權限(Local Security Authority),到這裡,熟悉的登入畫面將會出現(依據設定會有所不同)。當你登入時,Windows
XP正在背景安裝第3階段的驅動程式。
接下來,服務控制器(Service Controller)會在做最後的掃描。
網路登入(Netlogon)服務是附屬於LanmanWorkstation Service,在LanmanWorkstation Service還未成功啟動前,網路不會登入。
當使用者成功登入後,開機程序還未結束。登入成功後,系統會複製Clone
Control Set到LastKnownGood。
以上,完成了Windows XP的開機程序
发布评论