Windows XP 啟動過程jjhou

來源:互聯網
上載者:User
文章目錄
  • 基於 x86 系統的啟動過程

 

此文譯自 Windows XP Resource Kit Web Resource 中 Understanding the Startup Process 一章為了診斷和修複啟動故障,您需要理解啟動過程中發生了什麼。第一步隔離啟動問題,判斷問題是發生在Microsoft Windows XP Professional 啟動之前還是之後。 啟動失敗的根本原因,包括相關因素,可能是來自多方面的, 比如使用者錯誤,應用程式錯誤,硬體問題,病毒問題。如果問題過於嚴重,您可能需要重新安裝 Windows XP Professional 或者從備份介質中恢複檔案。在基於x86的系統上,發生在啟動故障 operating system loader (Ntldr) 可能意味著開機檔案丟失或者被刪除,或者硬碟主引導記錄 (MBR)損壞, 或者分區表,或者開機磁區的損壞。如果問題發生在啟動期間,那麼系統可能存在不相容的軟體或者驅動,不相容或者設定錯誤的硬體,或者系統檔案損壞。基於 Itanium 系統的電腦啟動或者和 x86 系統類別似。詳見後面的章節 "Startup Phases for Itanium-based Systems"

基於 x86 系統的啟動過程

Windows XP Professional 啟動過程和 Microsoft Windows NT version 4.0 and Microsoft Windows 2000 類似,區別於 Microsoft MS-DOS, Microsoft Windows 95, Microsoft Windows 98, and Microsoft Windows Millennium Edition (Windows Me) 這些系統。所有運行 Windows XP Professional 的系統都遵循如下啟動順序:

  • 上電自檢 (POST) 階段
  • 初始化啟動階段
  • 啟動裝載階段
  • 檢測、設定硬體階段
  • 系統核心裝載階段
  • 登陸階段

上述的啟動過程適用於順利關機後的系統啟動或者重新啟動,從休眠或者待機狀態恢複的情況例外,後者請參考後面的章節 "Resolving Power Management Problems on x86-based Systems" 為了 Windows XP Professional 能夠引導,系統和開機磁碟分割必須包含表 28.1.中的檔案。表 28.1   基於x86 系統上 Windows XP Professional 的開機檔案

檔案名稱
檔案所處位置
描述

Ntldr
系統磁碟分割根目錄
作業系統裝載器

Boot.ini
系統磁碟分割根目錄
該檔案指定 Windows XP Professional 的安裝路徑。對於多引導系統 Boot.ini 包含一個顯示在啟動菜單上的作業系統選擇菜單。

Bootsect.dos (僅適用於多引導系統)
系統磁碟分割根目錄
Ntldr 將會裝載此檔案,以讀取可能包含 MS-DOS, Windows 95, Windows 98, or Windows Me 等OS的Windows XP Professional 多引導系統設定。 Bootsect.dos 包含這些作業系統的開機磁區,檔案屬性為系統、隱藏。

Ntdetect.com
系統磁碟分割根目錄
此檔案將掃描硬體設定資訊,並傳遞給 Ntldr

Ntbootdd.sys
系統磁碟分割根目錄 (SCSI 或者ATA 等韌體本身禁用或者不支援 INT-13 中斷擴充調用的裝置需要此檔案).
該驅動程式用於訪問不使用 BIOS,而串連到 SCSI 或者 ATA 的硬碟, The contents of this file depend on the startup controller used.

Ntoskrnl.exe
systemrootSystem32
Windows XP Professional作業系統的核心 (也被叫做 kernel) 。作為 kernel的一部分,運行在處理器特權模式下的代碼,允許直接存取系統資料和硬體。

在安裝Windows XP Professional 作業系統期間,如果是單一處理器系統,setup程式從作業系統光碟片上複製 Ntoskrnl.exe 檔,如果是多處理器系統,Setup 從安裝光碟片上複製 Ntoskrnlmp.exe 並將它重新命名為Ntoskrnl.exe.

Hal.dll
systemrootSystem32
硬體抽象層動態(HAL)連結庫檔案。HAL abstracts 從作業系統提取底層硬體資訊,並給相同類型的裝置,提供公用編程介面。

Microsoft Windows XP Professional 作業系統光碟片包含若干 Hal 檔案,Setup 將適合您系統硬體設定的檔案複製到您的電腦,並重新命名為 Hal.dll.

System registry file
systemrootSystem32ConfigSystem
此註冊表檔案包含建立HKEY_LOCAL_MACHINESYSTEM 註冊表索引值所需要的資料。該索引值包含了作業系統啟動裝置和系統服務所需要的資訊。

Device drivers
systemrootSystem32Drivers
一些硬體裝置的驅動程式檔案,比如鍵盤、滑鼠、顯卡。

註:

  • Windows NT 4.0, Windows 2000, and Windows XP Professional 定義 "系統" 和 "啟動" 分區有別於啟動作業系統。系統磁碟區包含啟動Windows XP Professional所必須的檔案,比如 Windows loader (Ntldr)。啟動卷 Windows XP Professional 作業系統檔案和檔案夾比如 systemrootsystemrootSystem32。在基於 x86 系統的電腦上,啟動卷和系統磁碟區可以但不一定是同一個卷。

在表 28.1中,systemroot是眾多環境變數之一,用於將象檔案和檔案路徑這樣的字串關聯到變數,以便 Windows XP Professional應用程式和服務使用。例如,通過使用環境變數,指令碼不同修改就可以運行在不同環境設定的電腦上。您可以通過在命令列執行  set 命令查看環境變數列表。關於環境變數,請參考Windows XP Professional中關於 "To add or change the values of environment variables" 的描述;關於系統檔案的資訊,詳見 "System Files Reference"
上電自檢

當您開啟電腦的時候,中央處理器單元 (CPU) 開始執行存放在基本輸出入系統 (BIOS) (BIOS)中的指令。 BIOS, 一種韌體,包含一些代碼,處理器依靠這些代碼啟動電腦,與外圍標準裝置通訊,形成一個最小環境,從而得以載入其他複雜代碼,它與電腦所安裝的作業系統無關。 電腦啟動過程的第一步就是上電自檢 (POST),POST 負責完成如下系統和檢測功能:

  • 執行硬體初始化檢測,比如測試當前記憶體總數
  • 校正啟動作業系統所必須的裝置,比如硬碟
  • 從位於主板上的CMOS中檢索系統設定 即便當您停機後, CMOS 儲存空間中也會保持一些資訊,例如儲存在CMOS儲存空間中的硬體設定包含啟動設定和隨插即用資訊。

當主板上電自檢(POST)完成後,那些擁有自己韌體的附加板卡 (比如顯卡和硬碟控制器) 開始執行自我檢測。設定這些系統和外圍裝置韌體參數,請參考相關廠商提供的系統文檔。
初始化啟動階段

在上電自檢( POST)階段後,儲存在CMOS儲存空間中的那些設定,比如啟動設定,指明了可以引導作業系統的裝置。比如,如果啟動設定指定磁碟片作為啟動的首選裝置,而將硬碟作為次要裝置(有些韌體中顯示為 "A, C"),那麼啟動時將可能發生如下情形:
軟碟機中插有磁碟片

BIOS將搜尋設定為啟動磁碟片的軟碟機,如果存在,將會把0面0道1扇區(磁碟片的開機磁區)載入到記憶體。如果磁碟片不能啟動,將會提示如下錯誤:Non-system disk or disk errorReplace and press any key when ready電腦將會一直顯示上面的資訊,直到您插入一張啟動磁碟片或者驅出磁碟片重新啟動電腦。
軟碟機中沒有磁碟片

如果您重新啟動電腦後沒有插入磁碟片,電腦將會裝載位於主引導記錄 (MBR)所在地區的指令。MBR 位於啟動硬碟的第一個扇區,包含一些指令(稱為啟動代碼)和一個標示主要磁碟分割和擴充分區的表(稱為分區表)。 BIOS 將 MBR 載入到記憶體,並將控制權移交給 MBR中的代碼。電腦然後搜尋分區表,尋找啟用分區。啟用分區的第一個扇區包含啟動代碼,這些代碼允許電腦進行如下操作:

  • 確定所使用的檔案系統
  • 定位並啟動作業系統裝載檔案, Ntldr.

如果啟用分區不存在或者開機磁區資訊丟失、錯誤,系統將提示如下資訊:Invalid partition tableError loading operating systemMissing operating systemBOOT: Couldnt find NTLDRNTLDR is missing如果啟用分區定位成功,開機磁碟分割中的代碼將會找到並開始啟動 Ntldr ,隨後 BIOS 完成使命,釋放控制權關於磁碟和檔案系統,MBR, 分區以及開機磁區的一些更為詳細的資訊,請查看 "File Systems" 和 "Troubleshooting Disks and File Systems" 
指定其他啟動裝置的啟動順序

除此之外,一些電腦韌體允許從其他裝置引導作業系統,比如:

  • CD-ROMs
  • 網卡
  • 抽取式存放裝置介質,比如 LS-120 磁碟機或者 Iomega Zip 磁碟機
  • 接駁在攜帶型電腦上的一些儲存空間

在大多數的電腦上都允許您指定啟動次序,比如"CDROM, A, C". 當您指定 "CDROM, A, C" 這樣的啟動順序的時候,那麼啟動時就會是如下情況:

  1. 電腦搜尋 CD-ROM 作為啟動介質。如果存在可以啟動的 CD (光碟片), 電腦將使用作為啟動裝置,否則電腦將按照設定的啟動次序尋找下一個啟動裝置。
  2. 電腦搜尋磁碟片作為啟動介質。如果存在可以啟動的磁碟片,電腦將使用磁碟片作為啟動裝置。否則將給出錯誤資訊,並按照設定的啟動次序尋找下一個啟動裝置。
  3. 電腦使用硬碟作為啟動裝置。當 CD-ROM 光碟機和軟碟機都是空的時候,電腦將只會使用硬碟作為啟動裝置。 不過,引導介質上的代碼對硬碟進行傳輸控制的情況是個例外。比如,當您使用可引導的Windows XP Professional 作業系統光碟片引導系統的時候,Setup 程式將會檢測是否存在可用的硬碟以用於 Windows XP Professional 安裝過程,如果檢索到,那麼系統將會提示如下字樣 Press any key to boot from CD ,這將給您一個選擇,如果不按任何鍵就會跳過 CD-ROM 啟動。

您不能使用一個不能啟動的光碟片引導系統,同時一張無法啟動的光碟片將可能增加系統啟動時間,如果不打算從光碟片引導系統,請在啟動前將光碟片從 CD-ROM 光碟機中取出。關於啟動順序的選項,請參考您的系統文檔。
啟動裝載階段

Ntldr 從開機磁碟分割裝載開機檔案,然後進行如下步驟:
設定x86系統處理器進入32位記憶體保護模式運行

基於x86的電腦啟動的時候運行在實模式,此在模式下,處理器禁止了一些功能,以便相容於運行於8位和16位處理上的軟體。隨後 Ntldr 將處理器切換到32位元模式,這種模式下,允許訪問大容量記憶體,並可以運行 Windows XP Professional
開機檔案系統

Ntldr 包含一些允許 Windows XP Professional 讀寫 NTFS 或者檔案配置表(FAT16 or FAT32) 檔案系統所需要的程式碼。
讀取Boot.ini 檔案

Ntldr分析Boot.ini 檔案以確定作業系統開機磁碟分割的位置。如果使用單系統啟動設定,那麼 Ntldr 將隨後啟動 Ntdetect.com初始化硬體檢測. 如果存在多系統啟動,這可能包括 Windows XP Professional, Windows 2000, Windows NT 4.0, Windows 95, Windows 98, Windows Me, 或者 MS-DOS以及其他可能的作業系統,您將會在啟動的時候看到一個作業系統的選擇菜單。註:

  • 運行 Windows NT 4.0 的電腦如果需要訪問之前掛載在Windows 2000 or Windows XP Professional下的NTFS卷,需要安裝至少 Service Pack 4 。關於 NTFS 互通性資訊,請參考 "File Systems"

如果您選擇 Windows XP Professional, Windows 2000, or Windows NT 4.0, Ntldr 將隨後啟動硬體檢測階段,如果沒有就會引導開機磁區的其他系統。如果您選擇 Windows 95, Windows 98, Windows Me, or MS-DOS, Ntldr 將會掃描 Bootsect.dos 檔案,讀取其中所包含的 MBR 代碼,並執行它。關於Boot.ini的其他資訊請參考"Reviewing and Correcting Boot.ini Settings on x86-based Systems"
檢測硬體和硬體設定檔

進入此階段,Ntldr 啟動Ntdetect.com, 後者將執行基礎硬體掃描。隨後 Ntldr 掃描 Boot.ini 資訊,以及儲存在註冊表中的硬體和軟體資訊,傳送給 Ntoskrnl.exe。Ntdetect.com 檢測硬體設定資訊 (比如 可攜式電腦上接駁或未接駁設定) 和儲存在 Advanced Configuration and Power Interface (ACPI) 表中的資訊。 ACPI 相容韌體允許Windows XP Professional 檢測裝置電源管理功能和裝置資源需求。關於ACPI 請參考 http://www.microsoft.com/windows/reskits/webresources.
檢測、設定硬體階段

在讀取 Boot.ini 並完成其任務後, Ntldr 啟動 Ntdetect.com。在 x86 系統上 Ntdetect.com 調用系統例行程式收集已經安裝的硬體資訊,並將收集的資訊返回給Ntldr,Ntldr 將這些資訊收集後存入內部資料庫 ,然後啟動 Ntoskrnl.exe 並將資訊傳遞給它。Ntdetect.com 所收集的硬體裝置的資訊如下:

  • 資訊韌體資訊,比如日期和時間
  • 匯流排和板卡類型
  • 顯卡
  • 鍵盤
  • 通訊連接埠
  • 硬碟
  • 磁碟片
  • 輸入裝置 (比如滑鼠)
  • 並行連接埠
  • 安裝在Industry Standard Architecture (ISA) 匯流排上的裝置

Ntdetect.com 在非ACPI相容電腦的裝置掃描中扮演了重要的角色。因為在這些類型的電腦上,韌體而不是作業系統決定了分配給裝置的資源,對於使用ACPI韌體的電腦,Windows XP Professional 對硬體裝置分配資源。在這個階段,Ntdetect.com 收集硬體資訊, Windows XP Professional 為案頭電腦建立一個單獨的預設硬體設定檔,而為可攜式電腦建立兩個預設的設定檔。對於可攜式電腦,作業系統基於當前電腦上硬體狀態選擇適當的設定檔。

  • 案頭型電腦. Profile 1
  • 攜帶型電腦.
    • Docked Profile
    • Undocked Profile

硬體設定檔對於攜帶型電腦是非常有用的,因為這些電腦的硬體狀態通常都不是靜態,啟動的時候,沒有列表在特定的硬體設定檔中的裝置驅動是不會被載入的。關於建立和使用硬體設定檔的資訊,請參考Windows XP Professional 說明及支援中心,也可以參考知識庫文檔 225810, "How to Create Hardware Profiles on Windows 2000?Based Mobile Computers," 尋找此文檔,請查詢Web Resources 頁面 http://www.microsoft.com/windows/reskits/webresources 上的知識庫連結,同時您也可以查看"Managing Devices" 和 "Supporting Mobile Users"
核心裝載階段

Ntldr 負責將 Windows 核心層 (Ntoskrnl.exe) 和硬體抽象層 (HAL) 裝載到記憶體。您的系統所使用的 Hal.DLL 檔案是可以發生變化的。在安裝期間,Windows XP Professional 安裝程式從若干 HAL 檔案中選擇一個複製到系統,(請參看錶28.2 關於這些檔案的列表) 並重名為Hal.dll。在裝置管理員中查看電腦描述

  1. 在運行對話方塊,輸入 devmgmt.msc,點擊確定。
  2. 在裝置管理員展開電腦察看您電腦的描述。 通過比較裝置管理員中的描述和下面表 28.2中的描述, 您可以確定從 Windows XP Professional 作業系統光碟片複製到您系統中的HAL檔案

Table 28.2   關於不同 Hal.DLL 檔案的描述

裝置管理員中電腦的描述
複製的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 初始化一組軟體組件,他們統稱為windows 執行體。Windows 執行體掃描儲存在註冊表control sets中的資訊,並啟動服務和驅動程式。 關於Windows executive services, 請查看 "Common Stop Messages for Troubleshooting"

控制集Control Sets

Ntldr 從 HKEY_LOCAL_MACHINESYSTEM 註冊表子鍵中讀取相關資訊,該子健中的資料建立於System32Config System 檔案,故而 Ntldr 能夠決定哪些裝置驅動在系統啟動時裝載。 通常,註冊表中存在幾個control sets, 其後面的序號取決於系統設定多長時間變更一次。。提示:

  • 如非必要不要直接編輯註冊表。登錄編輯程式繞開了系統保護機制,您的修改有可能會破壞系統,嚴重者甚至需要重新安裝 Windows。如果你必須編輯註冊表,請事先作備份,並詳細閱讀 Microsoft Windows 2000 Server Resource Kit 中關於 Registry Reference 的章節http://www.microsoft.com/windows/reskits/webresources.

典型的註冊表控制集 control set 子鍵如下:

  • CurrentControlSet, 一個註冊在SelectCurrent 項中,指向 ControlSetxxx 子鍵的指標 (xxx 代表一個 control set 編號, 比如 001) 
  • Clone, 一份 CurrentControlSet的拷貝,當您每次啟動電腦的時候建立。(gnaw0725註:此處原文如此,有待考證)
  • Select, 包含如下索引值:
    • Default, 指標指向系統指定使用者下次登陸所使用的控制集編號 (比如 001=ControlSet001)。 如果沒有錯誤發生,或者並非由 LastKnownGood 啟動項所設定,此 control set 編號將為 Default, Current和 LastKnownGood 註冊項所影響 (假定目前使用者可以成功登入)
    • Current, 指向此次用於啟動系統的控制集 
    • Failed, 指向沒有成功啟動 Windows XP Professional 的控制集。當使用 LastKnownGood 選項啟動系統時,此項被更新 (gnaw0725註:表示 Windows XP 在其中儲存失敗啟動產生的資料的控制群組。 此控制群組在使用者第一次調用“最近一次的正確配置”選項之前並不實際存在。) 
    • LastKnownGood, 指向上次使用者會話所使用的控制集 。當使用者登入的時候,LastKnownGood 控制集被前一次使用者會話使用的設定資訊所更新。

除非您從Windows Advanced Options菜單中選擇Last Known Good Configuration,Ntldr 將使用Default 索引值所標示的控制集。核心層使用Ntldr 提供的內部資料結構建立 HKEY_LOCAL_MACHINEHARDWARE 子鍵,其中包含在系統啟動階段收集的硬體資訊。這些資料包含資訊包括各種硬體組件和分配給每個裝置的系統資源。您可以通過查看在啟動過程中顯示的進度列指示器來監控核心層載入過程 關於 Last Known Good Configuration的相關資訊,您可以查閱 "Tools for Troubleshooting" Windows XP Professional 支援裝置擴充。新的或者更新的驅動程式並不存在於 Windows XP Professional 作業系統光碟片上,而是由於硬體廠商提供。驅動程式是核心模式組件,需要Drivers are kernel-mode components required by devices to function within an operating system. 服務是支援作業系統功能和應用程式的組件。與使用者應用程式相比,服務可以運行在一個不同的上下文,通常不會提供使用者可以設定的選項。服務,比如離線列印 Print Spooler,不需要使用者登入即可運行,而且與登陸到系統的使用者無關。Windows XP Professional 驅動程式和服務系統檔案通常被存放在 systemrootSystem32 和 systemrootSystem32Drivers 目錄下,以 .exe, .sys, or .dll 等副檔名儲存。驅動程式也是服務,因此在核心層初始化期間,Ntldr 和 Ntoskrnl.exe 按照儲存在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesservicename 註冊表子鍵中的數值來確定裝載的驅動程式和服務次序。例如,Ntldr 首先搜尋Services 子鍵中 Start 值為 0的服務,比如硬碟控制器。當 Ntldr 啟動 Ntoskrnl.exe後,一個Ntoskrnl.exe 組件搜尋並啟動驅動程式,比如網路通訊協定,這些啟動項 Start 值為 1.Table 28.3 ,列出了 Start 項的值(十進位)。Boot 類型的驅動 (Start 值為0的項) 檔案系統驅動程式的Start值始終為0,因為啟動 Windows XP Professional 需要它們的支援。

表 28.3 <服務名> Start項的賦值


Start類型
關於 Start 項賦值的描述

0
Boot
基於x86系統 Ntldr 或者Itanium IA64ldr上的韌體調用模式指定裝載的驅動,如果沒有錯誤發生,核心層Kernel將啟動該驅動程式

1
System
指定在系統核心層 Kernel 初始化期間被 Windows XP Professional boot drivers 所調用的驅動程式

2
Auto load
指定在系統啟動時被會話管理器 (Smss.exe)或者服務控制器 (Services.exe)所載入的驅動程式或者服務。

3
Load on demand
指定一個通過使用者、進程或者其他服務手動啟動的驅動程式或者服務

4
Disabled
指定一個禁止(不啟動)的驅動程式或者服務。

表 28.4 列出了Type 項的一些值(十進位)
表 28.4   <服務名> Type 項的賦值


Type 項賦值描述

1
指定一個核心裝置驅動程式

2
指定一個檔案系統驅動程式 (也是一個核心裝置驅動程式)

4
指定參數傳遞給裝置驅動程式

16
指定一個遵循服務控制協議的服務,該服務可以獨立運行在一個進程中,且可以為服務控制器所啟動

32
指定一個可以和其他服務共用進程的服務

一些驅動程式和服務需要在啟動之前確定之間的相互依賴關係。通過查看HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesservicename下DependOnGroup和 DependOnService  項 ,您可以找到這個依存關係的列表。關於使用依賴關係阻止或者延遲驅動程式或者服務啟動的資訊,請查看 "Temporarily Disabling Services" 。該服務子鍵也包含了影響驅動程式和服務如何載入的資訊,表 28.5 中描述了其中的一部分。
表 28.5   註冊表其他 <服務名> 項


描述

DependOnGroup
此組中所描述的項目,至少有一個在當前服務裝載前必須被載入。子鍵 SYSTEMCurrentControlSetControlServiceGroupOrder 包含服務組裝載次序

DependOnService
此列表中描述的服務,必須在當前服務之前載入。

Description
組件描述

DisplayName
指定組件的顯示名稱

ErrorControl
控制一個驅動程式錯誤是需要系統使用 LastKnownGood 控制集還是提示一個錯誤停止訊息。

如果值為 0x0 (忽略,沒有錯誤報表), 不會顯示警告資訊,繼續執行啟動。

如果值為 0x1 (普通,報告錯誤), 將錯誤記錄到系統日誌並提示警告資訊,但繼續啟動過程。

如果值為 0x2 (嚴重), 將事件記錄到系統日誌,使用 LastKnownGood 設定,重新啟動系統,執行啟動過程。

如果值為 0x3 (關鍵), 將事件記錄到系統日誌,使用 LastKnownGood 設定,重新啟動系統。如果當前啟動已經使用 LastKnownGood 設定,則顯示錯誤停止訊息。

Group
指定驅動程式或者服務隸屬的組。此項設定允許驅動程式或者服務同步啟動(比入:檔案系統驅動程式)註冊表子鍵 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlServiceGroupOrder 中的 List 項指定了組項啟動順序。

ImagePath
如果存在ImagePath項,該項用於標示驅動程式或者服務的路徑和檔案名稱。 您可以使用Windows Explorer 核實這些路徑和檔案名稱。

ObjectName
指定一個對象名。如果 Type 項指定一個 Windows XP Professional 服務,那麼它就代表格服務運行時用於登陸的帳戶名稱。

Tag
指定一個驅動程式在驅動程式組中的啟動順序。

會話管理器

當所有標誌為 Boot 和 Startup 資料類型的註冊表子鍵執行完成後, kernel 開始載入會話管理器 Session Manager,由它 (Smss.exe) 執行後續重要的初始化工作,比如:

  • 建立系統內容變數
  • 啟動Windows 子系統核心保護模式 (通過 systemrootSystem32Win32k.sys 實現), 這將 Windows XP Professional 從文字模式切換至圖形模式。基於Windows的應用程式都運行在 Windows 子系統上,這個環境下允許應用程式訪問作業系統功能函數,比如在螢幕上顯示資訊。
  • 啟動 Windows 子系統使用者模式部分 (通過 systemrootSystem32Csrss.exe 實現).
  • 啟動登陸管理器 (通過  systemrootSystem32Winlogon.exe 實現).
  • 建立輔助虛擬記憶體頁檔案
  • 為存放在下列子鍵中的檔案清單,執行延遲的重新命名操作。 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPendingFileRenameOperations. 比如:當您安裝了一個新的驅動程式或者應用程式後,系統可能會提示您重新啟動,以便 Windows XP Professional 能夠替換當前正在使用的檔案。

Windows 子系統和基於它執行的應用程式是使用者模式進程,它們不能直接存取硬體和裝置驅動。使用者模式進程執行優先順序低於核心進程,當作業系統需要更多記憶體的時候,它可以將被使用者模式下進程使用的記憶體緩衝到虛擬分頁檔。關於使用者模式和核心模式組件的資訊,請參考"Common Stop Messages for Troubleshooting" 。會話管理器Session Manager 將搜尋註冊表,以獲得服務資訊,註冊表索引值如下:

  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager 包含一個在服務裝載之前啟動並執行命令列表  Autochk.exe 工具由 BootExecute 項的值和儲存在 Memory Management 子鍵中的虛擬記憶體 (分頁檔) 設定所指定。Autochk, 是 Chkdsk 工具的一個版本,如果作業系統檢測到一個檔案系統錯誤,需要在完成啟動過程之前進行修複,那麼就會在啟動的時候運行它。關於 Autochk 和 Chkdsk, "Troubleshooting Disks and File Systems" 。
  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerSubsystems 包含一個有效子系統的列表。比如 Csrss.exe 包含Windows 子系統中的一部分,使用者模式。 
  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesservicename. 服務控制管理員(Service Control Manager) 初始化那些設定為啟動自動載入的服務。
登入階段

在此階段Windows 子系統啟動 Winlogon.exe,此模組為系統服務,以完成使用者的登入或者登出的動作。 Winlogon.exe 所完成的功能如下:

  • 啟動服務子系統 (Services.exe), 也稱為服務控制管理員 (SCM).
  • 啟動本地安全性授權進程 Local Security Authority (LSA) (Lsass.exe).
  • 在出現開始登陸提示時,偵測 CTRL+ALT+DEL 按鍵組合。 圖形化識別和驗證 Graphical Identification and Authentication (GINA) 組件擷取使用者名稱和密碼,並將這些資訊傳送給 LSA 進行安全驗證。如果使用者提供有效驗證,那麼通過使用Kerberos V 5 驗證協議或者 NTLM 可以或者存取權限。關於安全性群組件的資訊,比如 LSA, Kerberos V5 協議或者 NTLM, Distributed Systems Guide of the Microsoft Windows 2000 Server Resource Kit.當服務控制管理員Service Control Manager 初始化自動裝載服務項和驅動時,Winlogon 開始初始化安全和認證組件,當使用者登入後,系統進行如下動作:
    • 更新控制集Control sets 。 控制集為 LastKnownGood 註冊項所影響,並隨 Clone 項中的內容一同更新。Clone, 是CurrentControlSet 項的一份拷貝, 當您每次啟動電腦時被建立。當使用者登入的時候,LastKnownGood 控制集被前一次使用者會話使用的設定資訊所更新。
    • 實施策略。組策略策略設定開始實施於使用者和電腦帳戶。關於組策略的相關資訊,請查看"Planning Deployments," "Managing Desktops," 和 "Authorization and Access Control" ,以及Windows 2000 Server Resource Kit中分布式系統指南中關於 "Group Policy" 的章節,同時您也可以參考其網站資來源站點點 http://www.microsoft.com/windows/reskits/webresources 上關於 Change and Configuration Management Deployment Guide 的連結。
    • 運行啟動程式。 Windows XP Professional 啟動登陸指令碼,啟動程式組,並且啟動在如下註冊表子鍵和啟動目錄所關聯的服務項:
      • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunonce
      • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorerRun
      • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
      • HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindowsRun
      • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
      • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce
      • systemdriveDocuments and SettingsAll UsersStart MenuProgramsStartup
      • systemdriveDocuments and SettingsusernameStart MenuProgramsStartup
      • windirProfilesAll UsersStart MenuProgramsStartup
      • windirProfilesusernameStart MenuProgramsStartup windirProfiles 目錄檔案夾僅存在於從Windows NT 4.0升級的系統上。

    直到使用者成功登陸到電腦後,Windows XP Professional 啟動過程最終完成。
    隨插即用檢測

    隨插即用檢測不與登陸過程同步運作,它依賴於系統韌體,硬體,裝置驅動程式以及作業系統功能,從而能夠檢測和枚舉新的裝置。 Windows XP Professional 為使用ACPI韌體的裝置最佳化隨插即用支援,並且允許增強功能,比如硬體資源共用。

  • 當隨插即用能夠很好協調工作時,Windows XP Professional 能夠在最小使用者參與的前提下,檢測到新的裝置,分配系統資源,安裝或者請求驅動程式。ACPI 特性對於移動使用者是非常有用的,這些特性可以很好的支援待機、休眠、冷熱插拔等功能。
  • 關於隨插即用檢測和系統資源,請參考 "Managing Devices" and "Supporting Mobile Users"  -----------------------------------題外話:就在我將此文譯到一半的時候,看到了 侯捷 先生 關於科技翻譯的大作,這裡是2001/12/08,侯捷應師範大學翻譯研究所之邀,做了一場開放演講(http://jjhou.csdn.net/article01-6.htm)粗粗一看,便欲罷不能,真乃大師也!這裡是他的個人網站 http://jjhou.csdn.net/
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.