此
文译自
Windows XP Resource Kit Web Resource
中
Understanding the Startup Process
一章
为了诊断和修复启动故障,您需要理解启动过程中发生了什么。第一步隔离启动问题,判断问题是发生在
Microsoft® Windows® XP Professional
启动之前还是之后。
启动失败的根本原因,包括相关因素,可能是来自多方面的,
比如用户错误,应用程序错误,硬件问题,病毒问题。如果问题过于严重,您可能需要重新安装
Windows XP Professional
或者从备份介质中恢复文件。
在基于
x
86
的系统上,发生在启动故障
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
|
systemroot\
System32
|
|
Windows XP Professional
操作系统的核心 (也被叫做 kernel) 。作为 kernel的一部分,运行在处理器特权模式下的代码,允许直接访问系统数据和硬件。
|
|
在安装Windows XP Professional 操作系统期间,如果是单处理器系统,setup程序从操作系统光盘上复制 Ntoskrnl.exe 文件,如果是多处理器系统,Setup 从安装光盘上复制 Ntoskrnlmp.exe 并将它重命名为Ntoskrnl.exe.
|
Hal.dll
|
systemroot
\System32
|
|
硬件抽象层动态(HAL)链接库文件。HAL abstracts 从操作系统提取底层硬件信息,并给相同类型的设备,提供公用编程接口。
|
|
Microsoft® Windows® XP Professional
操作系统光盘包含若干 Hal 文件,Setup 将适合您系统硬件设置的文件复制到您的计算机,并重命名为 Hal.dll.
|
System registry file
|
systemroot
\System32\Config\System
|
|
此注册表文件包含创建HKEY_LOCAL_MACHINE\SYSTEM 注册表键值所需要的数据。该键值包含了操作系统启动设备和系统服务所需要的信息。
|
Device drivers
|
systemroot
\System32\Drivers
|
|
一些硬件设备的驱动程序文件,比如键盘、鼠标、显卡。
|
注:
・
Windows NT 4.0, Windows 2000, andWindows XP Professional
定义
"
系统
"
和
"
启动
"
分区有别于启动操作系统。系统卷包含启动
Windows XP Professional
所必须的文件,比如
Windows loader (Ntldr)
。启动卷
Windows XP Professional
操作系统文件和文件夹比如
systemroot
和
systemroot\System32
。在基于
x86
系统的计算机上,启动卷和系统卷可以但不一定是同一个卷。
・
如果在
Windows XP
中格式化软盘,则启动记录指向
NTLDR
文件。当
NTLDR
运行时,它从
Boot.ini
文件加载可用的操作系统选择。如果选择“
Windows
”,则
NTLDR
会运行
Ntdetect.com
,然后将控制传递给
Osloader.exe
。如果选择“
MS-DOS
”或“
OS/2
”,则
NTLDR
会加载
Bootsect.dos
。
在表
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,
一种固件,包含一些代码,处理器依靠这些代码启动计算机,与外围标准设备通讯,形成一个最小环境,从而得以加载其他复杂代码,它与计算机所安装的操作系统无关。
计算机启动过程的第一步就是上电自检
(POST)
,
POST
负责完成如下系统和检测功能:
・
执行硬件初始化检测,比如测试当前内存总数
・
校验启动操作系统所必须的设备,比如硬盘
・
从位于主板上的
CMOS
中检索系统设置
即便当您停机后,
CMOS
存储器中也会保持一些信息,例如存储在
CMOS
存储器中的硬件设置包含启动设置和即插即用信息。
当主板上电自检(
POST
)完成后,那些拥有自己固件的附加板卡
(
比如显卡和硬盘控制器
)
开始执行自我检测。
设定这些系统和外围设备固件参数,请参考相关厂商提供的系统文档。
初始化启动阶段
在上电自检(
POST
)阶段后,存储在
CMOS
存储器中的那些设定,比如启动设定,指明了可以引导操作系统的设备。比如,如果启动设定指定软盘作为启动的首选设备,而将硬盘作为次要设备
(
有些固件中显示为
"A, C")
,那么启动时将可能发生如下情形:
软驱中插有软盘
BIOS
将搜索设定为启动软盘的软驱,如果存在,将会把
0
面
0
道
1
扇区(软盘的启动扇区)加载到内存。如果软盘不能启动,将会提示如下错误:
Non-system disk or disk error
Replace and press any key when ready
计算机将会一直显示上面的信息,直到您插入一张启动软盘或者驱出软盘重新启动计算机。
软驱中没有软盘
如果您重新启动计算机后没有插入软盘,计算机将会装载位于主引导记录
(MBR)
所在区域的指令。
MBR
位于启动硬盘的第一个扇区,包含一些指令
(
称为启动代码
)
和一个标示主分区和扩展分区的表
(
称为分区表
)
。
BIOS
将
MBR
加载到内存,并将控制权移交给
MBR
中的代码。
计算机然后搜索分区表,查找激活分区。激活分区的第一个扇区包含启动代码,这些代码允许计算机进行如下操作:
・
确定所使用的文件系统
・
定位并启动操作系统装载文件
, Ntldr.
如果激活分区不存在或者启动扇区信息丢失、错误,系统将提示如下信息:
Invalid partition table
Error loading operating system
Missing operating system
BOOT: Couldn't find NTLDR
NTLDR 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
位内存保护模式运行
基于
x
86
的计算机启动的时候运行在实模式,此在模式下,处理器禁止了一些功能,以便兼容于运行于
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
请参考
[url]http://www.microsoft.com/windows/reskits/webresources[/url].
检测、设置硬件阶段
在读取
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
・
便携式计算机
.
o
Docked Profile
o
Undocked Profile
硬件配置文件对于便携式计算机是非常有用的,因为这些计算机的硬件状态通常都不是静态的,启动的时候,没有列表在特定的硬件配置文件中的设备驱动是不会被加载的。
关于创建和使用硬件配置文件的信息,请参考
Windows XP Professional
帮助和支持中心,也可以参考知识库文档
225810, "How to Create Hardware Profiles on Windows 2000�CBased Mobile Computers,"
查找此文档,请查询
Web Resources
页面
[url]http://www.microsoft.com/windows/reskits/webresources[/url]
上的知识库链接,同时您也可以查看
"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_MACHINE\SYSTEM
注册表子键中读取相关信息,该子健中的数据创建于
\System32\Config\ System
文件
,
故而
Ntldr
能够决定哪些设备驱动在系统启动时装载。
通常,注册表中存在几个
control sets,
其后面的序号取决于系统设定多长时间变更一次。。
提示:
・
如非必要不要直接编辑注册表。注册表编辑器绕开了系统保护机制,您的修改有可能会破坏系统,严重者甚至需要重新安装
Windows
。如果你必须编辑注册表,请事先作备份,并详细阅读
Microsoft® Windows® 2000 Server Resource Kit
中关于
Registry Reference
的章节
[url]http://www.microsoft.com/windows/reskits/webresources[/url].
典型的注册表控制集
control set
子键如下:
・
\CurrentControlSet,
一个注册在
\Select\
Current
项中,指向
ControlSetxxx
子键的指针
(xxx
代表一个
control set
编号
,
比如
001)
・
\Clone,
一份
\CurrentControlSet
的拷贝,当您每次启动计算机的时候创建。(
gnaw0725
注:此处原文如此,有待考证)
・
\Select,
包含如下键值:
o
Default
,
指针指向系统指定用户下次登陆所使用的控制集编号
(
比如
001=ControlSet001)
。
如果没有错误发生,或者并非由
LastKnownGood
启动项所设置,此
control set
编号将为
Default,
Current
和
LastKnownGood
注册项所影响
(
假定当前用户可以成功登录
)
o
Current
,
指向此次用于启动系统的控制集
o
Failed
,
指向没有成功启动
Windows XP Professional
的控制集。当使用
LastKnownGood
选项启动系统时,此项被更新
(
gnaw0725
注:表示
Windows XP
在其中保存失败启动产生的数据的控件组。
此控件组在用户第一次调用
“
最近一次的正确配置
”
选项之前并不实际存在。)
o
LastKnownGood
,
指向上次用户会话所使用的控制集
。当用户登录的时候,
LastKnownGood
控制集被前一次用户会话使用的设置信息所更新。
除非您从
Windows
Advanced Options
菜单中选择
Last Known Good Configuration
,
Ntldr
将使用
Default
键值所标示的控制集。
核心层使用
Ntldr
提供的内部数据结构创建
HKEY_LOCAL_MACHINE\HARDWARE
子键,其中包含在系统启动阶段收集的硬件信息。这些数据包含信息包括各种硬件组件和分配给每个设备的系统资源。您可以通过查看在启动过程中显示的进度指示器来监控核心层加载过程
关于
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
驱动程序和服务系统文件通常被存放在
systemroot\System32
和
systemroot\System32\Drivers
目录下,以
.exe, .sys, or .dll
等扩展名保存。
驱动程序也是服务,因此在核心层初始化期间,
Ntldr
和
Ntoskrnl.exe
按照存储在
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename
注册表子键中的数值来确定装载的驱动程序和服务次序。例如,
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_MACHINE\SYSTEM\CurrentControlSet\Services\servicename
下
DependOnGroup
和
DependOnService
项
,您可以找到这个依存关系的列表。关于使用依赖关系阻止或者延迟驱动程序或者服务启动的信息,请查看
"Temporarily Disabling Services"
。该服务子键也包含了影响驱动程序和服务如何加载的信息,表
28.5
中描述了其中的一部分。
表
28.5
注册表其他
<
服务名
>
项
项
|
描述
|
DependOnGroup
|
此组中所描述的项目,至少有一个在当前服务装载前必须被加载。子键 SYSTEM\CurrentControlSet\Control\ServiceGroupOrder 包含服务组装载次序
|
DependOnService
|
此列表中描述的服务,必须在当前服务之前加载。
|
Description
|
组件描述
|
DisplayName
|
指定组件的显示名称
|
ErrorControl
|
控制一个驱动程序错误是需要系统使用
LastKnownGood
控制集还是提示一个错误停止信息。
|
如果值为 0x0 (忽略,没有错误报告), 不会显示警告信息,继续执行启动。
|
如果值为 0x1 (普通,报告错误), 将错误记录到系统日志并提示警告信息,但继续启动过程。
|
如果值为 0x2 (严重), 将事件记录到系统日志,使用
LastKnownGood
设置,重新启动系统,执行启动过程。
|
如果值为 0x3 (关键), 将事件记录到系统日志,使用
LastKnownGood
设置,重新启动系统。如果当前启动已经使用
LastKnownGood
设定,则显示错误停止信息。
|
Group
|
指定驱动程序或者服务隶属的组。此项设定允许驱动程序或者服务同步启动(比入:文件系统驱动程序)注册表子键 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder 中的
List
项指定了组项启动顺序。
|
ImagePath
|
如果存在
ImagePath
项,该项用于标示驱动程序或者服务的路径和文件名。 您可以使用Windows Explorer 核实这些路径和文件名。
|
ObjectName
|
指定一个对象名。如果
Type
项指定一个 Windows XP Professional 服务,那么它就代表服务运行时用于登陆的帐户名。
|
Tag
|
指定一个驱动程序在驱动程序组中的启动顺序。
|
会话管理器
当所有标志为
Boot
和
Startup
数据类型的注册表子键执行完成后,
kernel
开始加载会话管理器
Session Manager
,由它
(Smss.exe)
执行后续重要的初始化工作,比如:
・
创建系统环境变量
・
启动
Windows
子系统核心保护模式
(
通过
systemroot\System32\Win32k.sys
实现
),
这将
Windows XP Professional
从文本模式切换至图形模式。基于
Windows
的应用程序都运行在
Windows
子系统上,这个环境下允许应用程序访问操作系统功能函数,比如在屏幕上显示信息。
・
启动
Windows
子系统用户模式部分
(
通过
systemroot\System32\Csrss.exe
实现
).
・
启动登陆管理器
(
通过
systemroot\System32\Winlogon.exe
实现
).
・
创建辅助虚拟内存页文件
・
为存放在下列子键中的文件列表,执行延迟的重命名操作。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations.
比如:当您安装了一个新的驱动程序或者应用程序后,系统可能会提示您重新启动,以便
Windows XP Professional
能够替换当前正在使用的文件。
Windows
子系统和基于它执行的应用程序是用户模式进程,它们不能直接访问硬件和设备驱动。用户模式进程执行优先级低于核心进程,当操作系统需要更多内存的时候,它可以将被用户模式下进程使用的内存缓存到虚拟页面文件。关于用户模式和核心模式组件的信息,请参考
"Common Stop Messages for Troubleshooting"
。
会话管理器
Session Manager
将搜索注册表,以获得服务信息,注册表键值如下:
・
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
包含一个在服务装载之前运行的命令列表
Autochk.exe
工具由
BootExecute
项的值和存储在
Memory Management
子键中的虚拟内存
(
页面文件
)
设置所指定。
Autochk,
是
Chkdsk
工具的一个版本,如果操作系统检测到一个文件系统错误,需要在完成启动过程之前进行修复,那么就会在启动的时候运行它。关于
Autochk
和
Chkdsk, "Troubleshooting Disks and File Systems"
。
・
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems
包含一个有效子系统的列表。比如
Csrss.exe
包含
Windows
子系统中的一部分,用户模式。
・
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename.
服务控制管理器(
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"
的章节,同时您也可以参考其网站资源站点
[url]http://www.microsoft.com/windows/reskits/webresources[/url]
上关于
Change and Configuration Management Deployment Guide
的链接。
・
运行启动程序。
Windows XP Professional
启动登陆脚本,启动程序组,并且启动在如下注册表子键和启动目录所关联的服务项
:
o
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
o
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
o
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
o
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
o
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
o
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
o
systemdrive\Documents and Settings\All Users\Start Menu\Programs\Startup
o
systemdrive\Documents and Settings\username\Start Menu\Programs\Startup
o
windir\Profiles\All Users\Start Menu\Programs\Startup
o
windir\Profiles\username\Start Menu\Programs\Startup
windir\Profiles
目录文件夹仅存在于从
Windows NT 4.0升级的系统上。
直到用户成功登陆到计算机后,
Windows XP Professional
启动过程最终完成。
即插即用检测
即插即用检测不与登陆过程同步运作,它依赖于系统固件,硬件,设备驱动程序以及操作系统功能,从而能够检测和枚举新的设备。
Windows XP Professional
为使用
ACPI
固件的设备优化即插即用支持,并且允许增强功能,比如硬件资源共享。
・
当即插即用能够很好协调工作时,
Windows XP Professional
能够在最小用户参与的前提下,检测到新的设备,分配系统资源,安装或者请求驱动程序。
ACPI
特性对于移动用户是非常有用的,这些特性可以很好的支持待机、休眠、冷热插拔等功能。
・
关于即插即用检测和系统资源,请参考
"Managing Devices" and "Supporting Mobile Users"