從按下計算機開關(guān)啟動計算機,到登入到桌面完成啟動,一共經(jīng)過了以下幾個階段:
1. 預(yù)引導(dǎo)(Pre-Boot)階段;
2. 引導(dǎo)階段;
3. 加載內(nèi)核階段;
4. 初始化內(nèi)核階段;
5. 登陸。
每個啟動階段的詳細介紹
a) 預(yù)引導(dǎo)階段
在按下計算機電源使計算機啟動,并且在Windows XP專業(yè)版操作系統(tǒng)啟動之前這段時
間,我們稱之為預(yù)引導(dǎo)(Pre-Boot)階段,在這個階段里,計算機首先運行Power On Sel
f Test(POST),POST檢測系統(tǒng)的總內(nèi)存以及其他硬件設(shè)備的現(xiàn)狀。如果計算機系統(tǒng)的BI
OS(基礎(chǔ)輸入/輸出系統(tǒng))是即插即用的,那么計算機硬件設(shè)備將經(jīng)過檢驗以及完成配置。
計算機的基礎(chǔ)輸入/輸出系統(tǒng)(BIOS)定位計算機的引導(dǎo)設(shè)備,然后MBR(Master Boot Re
cord)被加載并運行。在預(yù)引導(dǎo)階段,計算機要加載Windows XP的NTLDR文件。
b) 引導(dǎo)階段
Windows XP Professional引導(dǎo)階段包含4個小的階段。
首先,計算機要經(jīng)過初始引導(dǎo)加載器階段(Initial Boot Loader),在這個階段里,
NTLDR將計算機微處理器從實模式轉(zhuǎn)換為32位平面內(nèi)存模式。在實模式中,系統(tǒng)為MS-DOS保
留640kb內(nèi)存,其余內(nèi)存視為擴展內(nèi)存,而在32位平面內(nèi)存模式中,系統(tǒng)(Windows XP Pr
ofessional)視所有內(nèi)存為可用內(nèi)存。接著,NTLDR啟動內(nèi)建的mini-file system driver
s,通過這個步驟,使NTLDR可以識別每一個用NTFS或者FAT文件系統(tǒng)格式化的分區(qū),以便發(fā)
現(xiàn)以及加載Windows XP Professional,到這里,初始引導(dǎo)加載器階段就結(jié)束了。
接著系統(tǒng)來到了操作系統(tǒng)選擇階段,如果計算機安裝了不止一個操作系統(tǒng)(也就是多
系統(tǒng)),而且正確設(shè)置了boot.ini使系統(tǒng)提供操作系統(tǒng)選擇的條件下,計算機顯示器會顯
示一個操作系統(tǒng)選單,這是NTLDR讀取boot.ini的結(jié)果。(至于操作系統(tǒng)選單,由于暫時條
件不夠,沒辦法截圖,但是筆者模擬了一個)
在boot.ini中,主要包含以下內(nèi)容:
[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 Pr
ofessional"
其中,multi(0)表示磁盤控制器,disk(0)rdisk(0)表示磁盤,partition(x)
表示分區(qū)。NTLDR就是從這里查找Windows XP Professional的系統(tǒng)文件的位置的。(*本文
不會更詳細地講解boot.ini的組成結(jié)構(gòu),因為其與本主題關(guān)系不大,如果想了解,可以到
一些專門的網(wǎng)站處查詢相關(guān)信息。)如果在boot.ini中只有一個操作系統(tǒng)選項,或者把ti
meout值設(shè)為0,則系統(tǒng)不出現(xiàn)操作系統(tǒng)選擇菜單,直接引導(dǎo)到那個唯一的系統(tǒng)或者默認的
系統(tǒng)。在選擇啟動Windows XP Professional后,操作系統(tǒng)選擇階段結(jié)束,硬件檢測階段開
始。
在硬件檢測階段中,ntdetect.com將收集計算機硬件信息列表并將列表返回到NTLDR,
這樣做的目的是便于以后將這些硬件信息加入到注冊表HKEY_LOCAL_MACHINE下的hardware
中。
硬件檢測完成后,進入配置選擇階段。如果計算機含有多個硬件配置文件列表,可以
通過按上下按鈕來選擇。如果只有一個硬件配置文件,計算機不顯示此屏幕而直接使用默
認的配置文件加載Windows XP專業(yè)版。
引導(dǎo)階段結(jié)束。在引導(dǎo)階段,系統(tǒng)要用到的文件一共有:NTLDR,Boot.ini,ntdetec
t.com,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可選的)。
c) 加載內(nèi)核階段
在加載內(nèi)核階段,ntldr加載稱為Windows XP內(nèi)核的ntokrnl.exe。系統(tǒng)加載了Window
s XP內(nèi)核但是沒有將它初始化。接著ntldr加載硬件抽象層(HAL,hal.dll),然后,系統(tǒng)
繼續(xù)加載HKEY_LOCAL_MACHINE\system鍵,NTLDR讀取select鍵來決定哪一個Control Set將
被加載??刂萍邪O(shè)備的驅(qū)動程序以及需要加載的服務(wù)。NTLDR加載HKEY_LOCAL_MACH
INE\system\service\…下start鍵值為0的最底層設(shè)備驅(qū)動。當作為Control Set的鏡像的
Current Control Set被加載時,ntldr傳遞控制給內(nèi)核,初始化內(nèi)核階段就開始了。
d) 初始化內(nèi)核階段
在初始化內(nèi)核階段開始的時候,彩色的Windows XP的logo以及進度條顯示在屏幕中央
,在這個階段,系統(tǒng)完成了啟動的4項任務(wù):
內(nèi)核使用在硬件檢測時收集到的數(shù)據(jù)來創(chuàng)建了HKEY_LOCAL_MACHINE\HARDWARE鍵。
內(nèi)核通過引用HKEY_LOCAL_MACHINE\system\Current的默認值復(fù)制Control Set來創(chuàng)建
了Clone Control Set。Clone Control Set配置是計算機數(shù)據(jù)的備份,不包括啟動中的改
變,也不會被修改。
系統(tǒng)完成初始化以及加載設(shè)備驅(qū)動程序,內(nèi)核初始化那些在加載內(nèi)核階段被加載的底
層驅(qū)動程序,然后內(nèi)核掃描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\…
下start鍵值為1的設(shè)備驅(qū)動程序。這些設(shè)備驅(qū)動程序在加載的時候便完成初始化,如果有
錯誤發(fā)生,內(nèi)核使用ErrorControl鍵值來決定如何處理,值為3時,錯誤標志為危機/關(guān)鍵
,系統(tǒng)初次遇到錯誤會以LastKnownGood Control Set重新啟動,如果使用LastKnownGood
Control Set啟動仍然產(chǎn)生錯誤,系統(tǒng)報告啟動失敗,錯誤信息將被顯示,系統(tǒng)停止啟動
;值為2時錯誤情況為嚴重,系統(tǒng)啟動失敗并且以LastKnownGood Control Set重新啟動,
如果系統(tǒng)啟動已經(jīng)在使用LastKnownGood值,它會忽略錯誤并且繼續(xù)啟動;當值是1的時候
錯誤為普通,系統(tǒng)會產(chǎn)生一個錯誤信息,但是仍然會忽略這個錯誤并且繼續(xù)啟動;當值是
0的時候忽略,系統(tǒng)不會顯示任何錯誤信息而繼續(xù)運行
Session Manager啟動了Windows XP高級子系統(tǒng)以及服務(wù),Session Manager啟動控制
所有輸入、輸出設(shè)備以及訪問顯示器屏幕的Win32子系統(tǒng)以及Winlogon進程,初始化內(nèi)核完
畢。
基于x86 系統(tǒng)上 Windows XP Professional 的啟動文件
文件名 文件所處位置 描述
Ntldr 系統(tǒng)分區(qū)根目錄 操作系統(tǒng)裝載器
Boot.ini 系統(tǒng)分區(qū)根目錄 該文件指定 Windows XP Professional 的安裝路徑。對
于多引導(dǎo)系統(tǒng) Boot.ini 包含一個顯示在啟動菜單上的操作系統(tǒng)選擇菜單。
Bootsect.dos (僅適用于多引導(dǎo)系統(tǒng)) 系統(tǒng)分區(qū)根目錄 Ntldr 將會裝載此文件,以讀取
可能包含 MS-DOS, Windows 95, Windows 98, or Windows Me 等OS的Windows Xrofessio
nal 多引導(dǎo)系統(tǒng)設(shè)定。 Bootsect.dos 包含這些操作系統(tǒng)的引導(dǎo)扇區(qū),文件屬性為系統(tǒng)、
隱藏。
Ntdetect.com 系統(tǒng)分區(qū)根目錄 此文件將掃描硬件設(shè)置信息,并傳遞給 Ntldr
Ntbootdd.sys 系統(tǒng)分區(qū)根目錄 (SCSI 或者ATA 等固件本身禁用或者不支持 INT-13 中
斷擴展調(diào)用的設(shè)備需要此文件). 該驅(qū)動程序用于訪問不使用 BIOS,而連接到 SCSI 或者
ATA 的硬盤驅(qū)動器, The contents of this file depend on the startup controller
used.
Ntoskrnl.exe systemroot\System32 Windows XP Professional操作系統(tǒng)的核心 (也被叫
做 kernel) 。作為 kernel的一部分,運行在處理器特權(quán)模式下的代碼,允許直接訪問系
統(tǒng)數(shù)據(jù)和硬件。
在安裝Windows XP Professional 操作系統(tǒng)期間,如果是單處理器系統(tǒng),setup程序從操
作系統(tǒng)光盤上復(fù)制 Ntoskrnl.exe 文件,如果是多處理器系統(tǒng),Setup 從安裝光盤上復(fù)制
Ntoskrnlmp.exe 并將它重命名為Ntoskrnl.exe.
Hal.dll systemroot\System32 硬件抽象層動態(tài)(HAL)鏈接庫文件。HAL abstracts 從操
作系統(tǒng)提取底層硬件信息,并給相同類型的設(shè)備,提供公用編程接口。
Microsoft® Windows® XP Professional 操作系統(tǒng)光盤包含若干 Hal 文件,Se
tup 將適合您系統(tǒng)硬件設(shè)置的文件復(fù)制到您的計算機,并重命名為 Hal.dll.
System registry file systemroot\System32\Config\System 此注冊表文件包含創(chuàng)建HK
EY_LOCAL_MACHINE\SYSTEM 注冊表鍵值所需要的數(shù)據(jù)。該鍵值包含了操作系統(tǒng)啟動設(shè)備和
系統(tǒng)服務(wù)所需要的信息。
Device drivers systemroot\System32\Drivers 一些硬件設(shè)備的驅(qū)動程序文件,比如鍵
盤、鼠標、顯卡。
systemroot是眾多環(huán)境變量之一,用于將象文件和文件路徑這樣的字符串關(guān)聯(lián)到變量,
以便 Windows XP Professional應(yīng)用程序和服務(wù)使用。例如,通過使用環(huán)境變量,
腳本不同修改就可以運行在不同環(huán)境設(shè)置的計算機上。您可以通過在命令行執(zhí)行
set 命令查看環(huán)境變量列表
檢測硬件和硬件配置文件
進入此階段,Ntldr 啟動Ntdetect.com, 后者將執(zhí)行基礎(chǔ)硬件掃描。隨后 Ntldr 掃描
Boot.ini 信息,以及保存在注冊表中的硬件和軟件信息,傳送給 Ntoskrnl.exe。Ntdet
ect.com 檢測硬件配置信息 (比如 便攜計算機上接駁或未接駁設(shè)置) 和保存在 Advanced
Configuration and Power Interface (ACPI) 表中的信息。 ACPI 兼容固件允許Window
s XP Professional 檢測設(shè)備電源管理功能和設(shè)備資源需求。
檢測、設(shè)置硬件階段在讀取 Boot.ini 并完成其任務(wù)后, Ntldr 啟動 Ntdetect.com
。在 x86 系統(tǒng)上 Ntdetect.com 調(diào)用系統(tǒng)例行程序收集已經(jīng)安裝的硬件信息,并將收集的
信息返回給Ntldr,Ntldr 將這些信息收集后存入內(nèi)部數(shù)據(jù)庫 ,然后啟動 Ntoskrnl.exe
并將信息傳遞給它。
Ntdetect.com 所收集的硬件設(shè)備的信息如下:
信息固件信息,比如日期和時間
總線和板卡類型
顯卡
鍵盤
通訊端口
硬盤
軟盤
輸入設(shè)備 (比如鼠標)
并行端口
安裝在Industry Standard Architecture (ISA) 總線上的設(shè)備
Ntdetect.com 在非ACPI兼容計算機的設(shè)備掃描中扮演了重要的角色。因為在這些類型
的計算機上,固件而不是操作系統(tǒng)決定了分配給設(shè)備的資源,對于使用ACPI固件的計算機
,Windows XP Professional 對硬件設(shè)備分配資源。在這個階段,Ntdetect.com 收集硬件
信息, Windows XP Professional 為桌面計算機創(chuàng)建一個單獨的默認硬件配置文件,而為
便攜計算機創(chuàng)建兩個缺省的配置文件。對于便攜計算機,操作系統(tǒng)基于當前計算機上硬件
狀態(tài)選擇適當?shù)呐渲梦募?/p>
桌面型計算機. Profile 1
便攜式計算機.
Docked Profile
Undocked Profile
硬件配置文件對于便攜式計算機是非常有用的,因為這些計算機的硬件狀態(tài)通常都不是靜
態(tài)的,啟動的時候,沒有列表在特定的硬件配置文件中的設(shè)備驅(qū)動是不會被加載的。
關(guān)于創(chuàng)建和使用硬件配置文件的信息,請參考Windows XP Professional 幫助和支持中
心,也可以參考知識庫文檔 225810, "How to Create Hardware Profiles on Windows 2
000?Based Mobile Computers," 查找此文檔,請查詢Web Resources 頁面 http://www.m
icrosoft.com/windows/reskits/webresources 上的知識庫鏈接,同時您也可以查看"Man
aging Devices" 和 "Supporting Mobile Users"
核心裝載階段Ntldr 負責(zé)將 Windows 核心層 (Ntoskrnl.exe) 和硬件抽象層 (HAL) 裝
載到內(nèi)存。您的系統(tǒng)所使用的 Hal.dll 文件是可以發(fā)生變化的。在安裝期間,Windows X
P Professional 安裝程序從若干 HAL 文件中選擇一個復(fù)制到系統(tǒng),(請參看表28.2 關(guān)于
這些文件的列表) 并重名為Hal.dll。
在設(shè)備管理器中查看計算機描述
在運行對話框,輸入 devmgmt.msc,點擊確定。
在設(shè)備管理器展開計算機察看您計算機的描述。
通過比較設(shè)備管理器中的描述和下面表 28.2中的描述, 您可以確定從 Windows XP Profe
ssional 操作系統(tǒng)光盤復(fù)制到您系統(tǒng)中的HAL文件
Table 28.2 關(guān)于不同 Hal.dll 文件的描述
設(shè)備管理器中計算機的描述 復(fù)制的HAL文件
ACPI 多處理器 PC Halmacpi.dll
ACPI 單處理器 PC Halaacpi.dll
Advanced Configuration and Power Interface (ACPI) PC Halacpi.dll
MPS 多處理器 PC Halmps.dll
MPS 單處理器 PC Halapic.dll
標準 PC Hal.dll
Compaq SystemPro 多處理器或者完全兼容 Halsp.dll
核心層kernel 和硬件抽象層HAL 初始化一組軟件組件,他們統(tǒng)稱為windows 執(zhí)行體。Win
dows 執(zhí)行體掃描儲存在注冊表control sets中的信息,并啟動服務(wù)和驅(qū)動程序。
關(guān)于Windows executive services, 請查看 "Common Stop Messages for Troubleshooti
ng"
控制集Control Sets
Ntldr 從 HKEY_LOCAL_MACHINE\SYSTEM 注冊表子鍵中讀取相關(guān)信息,該子健中的數(shù)據(jù)創(chuàng)建
于\System32\Config\ System 文件,故而 Ntldr 能夠決定哪些設(shè)備驅(qū)動在系統(tǒng)啟動時裝載
。 通常,注冊表中存在幾個control sets, 其后面的序號取決于系統(tǒng)設(shè)定多長時間變更一
次。。
提示:
如非必要不要直接編輯注冊表。注冊表編輯器繞開了系統(tǒng)保護機制,您的修改有可能會破
壞系統(tǒng),嚴重者甚至需要重新安裝 Windows。如果你必須編輯注冊表,請事先作備份,并
詳細閱讀 Microsoft® Windows® 2000 Server Resource Kit 中關(guān)于 Registry
Reference 的章節(jié)http://www.microsoft.com/windows/reskits/webresources.
典型的注冊表控制集 control set 子鍵如下:
\CurrentControlSet, 一個注冊在\Select\Current 項中,指向 ControlSetxxx 子鍵的指
針 (xxx 代表一個 control set 編號, 比如 001)
\Clone, 一份 \CurrentControlSet的拷貝,當您每次啟動計算機的時候創(chuàng)建。(gnaw072
5注:此處原文如此,有待考證)
\Select, 包含如下鍵值:
Default, 指針指向系統(tǒng)指定用戶下次登陸所使用的控制集編號 (比如 001=ControlSet00
1)。 如果沒有錯誤發(fā)生,或者并非由 LastKnownGood 啟動項所設(shè)置,此 control set 編
號將為 Default, Current和 LastKnownGood 注冊項所影響 (假定當前用戶可以成功登錄
)
Current, 指向此次用于啟動系統(tǒng)的控制集
Failed, 指向沒有成功啟動 Windows XP Professional 的控制集。當使用 LastKnownGoo
d 選項啟動系統(tǒng)時,此項被更新 (gnaw0725注:表示 Windows XP 在其中保存失敗啟動產(chǎn)
生的數(shù)據(jù)的控件組。 此控件組在用戶第一次調(diào)用“最近一次的正確配置”選項之前并不實
際存在。)
LastKnownGood, 指向上次用戶會話所使用的控制集 。當用戶登錄的時候,LastKnownGoo
d 控制集被前一次用戶會話使用的設(shè)置信息所更新。
除非您從Windows Advanced Options菜單中選擇Last Known Good Configuration,Ntldr
將使用Default 鍵值所標示的控制集。
核心層使用Ntldr 提供的內(nèi)部數(shù)據(jù)結(jié)構(gòu)創(chuàng)建 HKEY_LOCAL_MACHINE\HARDWARE 子鍵,其中包
含在系統(tǒng)啟動階段收集的硬件信息。這些數(shù)據(jù)包含信息包括各種硬件組件和分配給每個設(shè)
備的系統(tǒng)資源。您可以通過查看在啟動過程中顯示的進度指示器來監(jiān)控核心層加載過程 關(guān)
于 Last Known Good Configuration的相關(guān)信息,您可以查閱 "Tools for Troubleshoot
ing"
Windows XP Professional 支持設(shè)備擴展。新的或者更新的驅(qū)動程序并不存在于 Windows
XP Professional 操作系統(tǒng)光盤上,而是由于硬件廠商提供。驅(qū)動程序是核心模式組件,
需要Drivers are kernel-mode components required by devices to function within
an operating system. 服務(wù)是支持操作系統(tǒng)功能和應(yīng)用程序的組件。與用戶應(yīng)用程序相比
,服務(wù)可以運行在一個不同的上下文,通常不會提供用戶可以設(shè)置的選項。服務(wù),比如脫
機打印 Print Spooler,不需要用戶登錄即可運行,而且與登陸到系統(tǒng)的用戶無關(guān)。Wind
ows XP Professional 驅(qū)動程序和服務(wù)系統(tǒng)文件通常被存放在 systemroot\System32 和
systemroot\System32\Drivers 目錄下,以 .exe, .sys, or .dll 等擴展名保存。
驅(qū)動程序也是服務(wù),因此在核心層初始化期間,Ntldr 和 Ntoskrnl.exe 按照存儲在HKEY
_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename 注冊表子鍵中的數(shù)值
來確定裝載的驅(qū)動程序和服務(wù)次序。例如,Ntldr 首先搜索Services 子鍵中 Start 值為
0的服務(wù),比如硬盤控制器。當 Ntldr 啟動 Ntoskrnl.exe后,一個Ntoskrnl.exe 組件搜
索并啟動驅(qū)動程序,比如網(wǎng)絡(luò)協(xié)議,這些啟動項 Start 值為 1.
Table 28.3 ,列出了 Start 項的值(十進制)。Boot 類型的驅(qū)動 (Start 值為0的項)
文件系統(tǒng)驅(qū)動程序的Start值始終為0,因為啟動 Windows XP Professional 需要它們的支
持。
表 28.3 <服務(wù)名> Start項的賦值
值 Start類型 關(guān)于 Start 項賦值的描述
0 Boot 基于x86系統(tǒng) Ntldr 或者Itanium IA64ldr上的固件調(diào)用模式指定裝載的驅(qū)動,如
果沒有錯誤發(fā)生,核心層Kernel將啟動該驅(qū)動程序
1 System 指定在系統(tǒng)核心層 Kernel 初始化期間被 Windows XP Professional boot dri
vers 所調(diào)用的驅(qū)動程序
2 Auto load 指定在系統(tǒng)啟動時被會話管理器 (Smss.exe)或者服務(wù)控制器 (Services.ex
e)所加載的驅(qū)動程序或者服務(wù)。
3 Load on demand 指定一個通過用戶、進程或者其他服務(wù)手動啟動的驅(qū)動程序或者服務(wù)
4 Disabled 指定一個禁止(不啟動)的驅(qū)動程序或者服務(wù)。
表 28.4 列出了Type 項的一些值(十進制)
表 28.4 <服務(wù)名> Type 項的賦值
值 Type 項賦值描述
1 指定一個核心設(shè)備驅(qū)動程序
2 指定一個文件系統(tǒng)驅(qū)動程序 (也是一個核心設(shè)備驅(qū)動程序)
4 指定參數(shù)傳遞給設(shè)備驅(qū)動程序
16 指定一個遵循服務(wù)控制協(xié)議的服務(wù),該服務(wù)可以獨立運行在一個進程中,且可以為服務(wù)
控制器所啟動
32 指定一個可以和其他服務(wù)共享進程的服務(wù)
一些驅(qū)動程序和服務(wù)需要在啟動之前確定之間的相互依賴關(guān)系。通過查看HKEY_LOCAL_MAC
HINE\SYSTEM\CurrentControlSet\Services\servicename下DependOnGroup和 DependOnSe
rvice 項 ,您可以找到這個依存關(guān)系的列表。關(guān)于使用依賴關(guān)系阻止或者延遲驅(qū)動程序
或者服務(wù)啟動的信息,請查看 "Temporarily Disabling Services" 。該服務(wù)子鍵也包含
了影響驅(qū)動程序和服務(wù)如何加載的信息,表 28.5 中描述了其中的一部分。
表 28.5 注冊表其他 <服務(wù)名> 項
項 描述
DependOnGroup 此組中所描述的項目,至少有一個在當前服務(wù)裝載前必須被加載。子鍵 S
YSTEM\CurrentControlSet\Control\ServiceGroupOrder 包含服務(wù)組裝載次序
DependOnService 此列表中描述的服務(wù),必須在當前服務(wù)之前加載。
Description 組件描述
DisplayName 指定組件的顯示名稱
ErrorControl 控制一個驅(qū)動程序錯誤是需要系統(tǒng)使用 LastKnownGood 控制集還是提示一
個錯誤停止信息。
如果值為 0x0 (忽略,沒有錯誤報告), 不會顯示警告信息,繼續(xù)執(zhí)行啟動。
如果值為 0x1 (普通,報告錯誤), 將錯誤記錄到系統(tǒng)日志并提示警告信息,但繼續(xù)啟動過
程。
如果值為 0x2 (嚴重), 將事件記錄到系統(tǒng)日志,使用 LastKnownGood 設(shè)置,重新啟動系
統(tǒng),執(zhí)行啟動過程。
如果值為 0x3 (關(guān)鍵), 將事件記錄到系統(tǒng)日志,使用 LastKnownGood 設(shè)置,重新啟動系
統(tǒng)。如果當前啟動已經(jīng)使用 LastKnownGood 設(shè)定,則顯示錯誤停止信息。
Group 指定驅(qū)動程序或者服務(wù)隸屬的組。此項設(shè)定允許驅(qū)動程序或者服務(wù)同步啟動(比入
:文件系統(tǒng)驅(qū)動程序)注冊表子鍵 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Con
trol\ServiceGroupOrder 中的 List 項指定了組項啟動順序。
ImagePath 如果存在ImagePath項,該項用于標示驅(qū)動程序或者服務(wù)的路徑和文件名。 您
可以使用Windows Explorer 核實這些路徑和文件名。
ObjectName 指定一個對象名。如果 Type 項指定一個 Windows XP Professional 服務(wù),
那么它就代表服務(wù)運行時用于登陸的帳戶名。
Tag 指定一個驅(qū)動程序在驅(qū)動程序組中的啟動順序。
會話管理器
當所有標志為 Boot 和 Startup 數(shù)據(jù)類型的注冊表子鍵執(zhí)行完成后, kernel 開始加載會
話管理器 Session Manager,由它 (Smss.exe) 執(zhí)行后續(xù)重要的初始化工作,比如:
創(chuàng)建系統(tǒng)環(huán)境變量
啟動Windows 子系統(tǒng)核心保護模式 (通過 systemroot\System32\Win32k.sys 實現(xiàn)), 這將
Windows XP Professional 從文本模式切換至圖形模式?;赪indows的應(yīng)用程序都運行
在 Windows 子系統(tǒng)上,這個環(huán)境下允許應(yīng)用程序訪問操作系統(tǒng)功能函數(shù),比如在屏幕上顯
示信息。
啟動 Windows 子系統(tǒng)用戶模式部分 (通過 systemroot\System32\Csrss.exe 實現(xiàn)).
啟動登陸管理器 (通過 systemroot\System32\Winlogon.exe 實現(xiàn)).
創(chuàng)建輔助虛擬內(nèi)存頁文件
為存放在下列子鍵中的文件列表,執(zhí)行延遲的重命名操作。 HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations. 比如:
當您安裝了一個新的驅(qū)動程序或者應(yīng)用程序后,系統(tǒng)可能會提示您重新啟動,以便 Windo
ws XP Professional 能夠替換當前正在使用的文件。
Windows 子系統(tǒng)和基于它執(zhí)行的應(yīng)用程序是用戶模式進程,它們不能直接訪問硬件和設(shè)備
驅(qū)動。用戶模式進程執(zhí)行優(yōu)先級低于核心進程,當操作系統(tǒng)需要更多內(nèi)存的時候,它可以
將被用戶模式下進程使用的內(nèi)存緩存到虛擬頁面文件。關(guān)于用戶模式和核心模式組件的信
息,請參考"Common Stop Messages for Troubleshooting" 。
會話管理器Session Manager 將搜索注冊表,以獲得服務(wù)信息,注冊表鍵值如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 包含一個在
服務(wù)裝載之前運行的命令列表 Autochk.exe 工具由 BootExecute 項的值和存儲在 Memo
ry Management 子鍵中的虛擬內(nèi)存 (頁面文件) 設(shè)置所指定。Autochk, 是 Chkdsk 工具的
一個版本,如果操作系統(tǒng)檢測到一個文件系統(tǒng)錯誤,需要在完成啟動過程之前進行修復(fù),
那么就會在啟動的時候運行它。關(guān)于 Autochk 和 Chkdsk, "Troubleshooting Disks and
File Systems" 。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems
包含一個有效子系統(tǒng)的列表。比如 Csrss.exe 包含Windows 子系統(tǒng)中的一部分,用戶模
式。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename. 服務(wù)控制管理
器(Service Control Manager) 初始化那些設(shè)置為啟動自動加載的服務(wù)。
登錄階段在此階段Windows 子系統(tǒng)啟動 Winlogon.exe,此模塊為系統(tǒng)服務(wù),以完成用戶的
登入或者登出的動作。 Winlogon.exe 所完成的功能如下:
啟動服務(wù)子系統(tǒng) (Services.exe), 也稱為服務(wù)控制管理器 (SCM).
啟動本地安全性授權(quán)進程 Local Security Authority (LSA) (Lsass.exe).
在出現(xiàn)開始登陸提示時,偵測 CTRL+ALT+DEL 組合鍵。
圖形化識別和驗證 Graphical Identification and Authentication (GINA) 組件獲取用
戶名和密碼,并將這些信息傳送給 LSA 進行安全驗證。如果用戶提供有效驗證,那么通過
使用Kerberos V 5 驗證協(xié)議或者 NTLM 可以或者訪問權(quán)限。關(guān)于安全組件的信息,比如
LSA, Kerberos V5 協(xié)議或者 NTLM, Distributed Systems Guide of the Microsoft®
; Windows® 2000 Server Resource Kit.
當服務(wù)控制管理器Service Control Manager 初始化自動裝載服務(wù)項和驅(qū)動時,Winlogon
開始初始化安全和認證組件,當用戶登錄后,系統(tǒng)進行如下動作:
更新控制集Control sets 。 控制集為 LastKnownGood 注冊項所影響,并隨 Clone 項中
的內(nèi)容一同更新。Clone, 是CurrentControlSet 項的一份拷貝, 當您每次啟動計算機時被
創(chuàng)建。當用戶登錄的時候,LastKnownGood 控制集被前一次用戶會話使用的設(shè)置信息所更
新。
實施策略。組策略策略設(shè)定開始實施于用戶和計算機帳戶。關(guān)于組策略的相關(guān)信息,請查
看"Planning Deployments," "Managing Desktops," 和 "Authorization and Access Co
ntrol" ,以及Windows 2000 Server Resource Kit中分布式系統(tǒng)指南中關(guān)于 "Group Pol
icy" 的章節(jié),同時您也可以參考其網(wǎng)站資源站點 http://www.microsoft.com/windows/r
eskits/webresources 上關(guān)于 Change and Configuration Management Deployment Guid
e 的鏈接。
運行啟動程序。 Windows XP Professional 啟動登陸腳本,啟動程序組,并且啟動在如下
注冊表子鍵和啟動目錄所關(guān)聯(lián)的服務(wù)項:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer
\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
systemdrive\Documents and Settings\All Users\Start Menu\Programs\Startup
systemdrive\Documents and Settings\username\Start Menu\Programs\Startup
windir\Profiles\All Users\Start Menu\Programs\Startup
windir\Profiles\username\Start Menu\Programs\Startup
windir\Profiles 目錄文件夾僅存在于從Windows NT 4.0升級的系統(tǒng)上。
直到用戶成功登陸到計算機后,Windows XP Professional 啟動過程最終完成。
即插即用檢測即插即用檢測不與登陸過程同步運作,它依賴于系統(tǒng)固件,硬件,設(shè)備驅(qū)動
程序以及操作系統(tǒng)功能,從而能夠檢測和枚舉新的設(shè)備。 Windows XP Professional 為使
用ACPI固件的設(shè)備優(yōu)化即插即用支持,并且允許增強功能,比如硬件資源共享。
當即插即用能夠很好協(xié)調(diào)工作時,Windows XP Professional 能夠在最小用戶參與的前提
下,檢測到新的設(shè)備,分配系統(tǒng)資源,安裝或者請求驅(qū)動程序。ACPI 特性對于移動用戶是
非常有用的,這些特性可以很好的支持待機、休眠、冷熱插拔等功能。