|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
Windows XP Professional电脑启动过程概述2 X' R: I* Z7 h
8 |9 K/ [; O) L/ H3 ^2 ^( c+ h
从按下电脑开关启动电脑,到登入到桌面完成启动,一共经由了以下几个阶段:* R1 ^: A9 c5 N5 F7 {! z+ I
1. 预引导(Pre-Boot)阶段;
5 \$ N* f. b. e/ y6 z6 v5 O2. 引导阶段;
! c. [- M5 d, I& D7 [6 f h3. 加载内核阶段;/ K" [% {% w# f- k& K0 b/ L; m8 e4 Q
4. 起始化内核阶段;! }) M+ u. r) e' f+ x! i1 ^& e$ _
5. 登陆。- ~1 U. f& S) s2 s7 I6 m
--------------------------------------------------------------------------------/ h: i5 W8 u$ m7 U8 F( H6 R# ~* o
每个启动阶段的详细介绍8 c* ], e9 v# m& Z4 A5 ?
a) 预引导阶段
: k. N* D% a- [3 c3 O4 q在按下电脑电源使电脑启动,并且在Windows XP专业版动作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,电脑首先执行Power On Self Test(POST),POST检验系统的总记忆体以及其他硬体装置的现状。若果电脑系统的BIOS(基础输入/输出系统)是即插即用的,那么电脑硬体装置将经由检验以及完成群组态。电脑的基础输入/输出系统(BIOS)定位电脑的引导装置,然后MBR(Master Boot Record)被加载并执行。在预引导阶段,电脑要加载Windows XP的NTLDR档案。
. ]" H# @7 `! {/ Bb) 引导阶段
# U- {/ R3 Z/ Z( Y# Y. \8 |Windows XP Professional引导阶段内含4个小的阶段。4 {( E/ }. P1 x9 e
首先,电脑要经由起始引导加载器阶段(Initial Boot Loader),在这个阶段里,NTLDR将电脑微处理器从实模式转换为32位平面记忆体模式。在实模式中,系统为MS-DOS保留640kb记忆体,其余记忆体视为延伸记忆体,而在32位平面记忆体模式中,系统(Windows XP Professional)视所有记忆体为可用记忆体。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或是FAT档案系统格式化的分区,以便发现以及加载Windows XP Professional,到这里,起始引导加载器阶段就结束了。$ x1 I9 ^( N0 |
接着系统来到了动作系统选取阶段,若果电脑安装了不止一个动作系统(也就是多系统),而且正确设定了boot.ini使系统提供动作系统选取的条件下,电脑显示器会显示一个动作系统选单,这是NTLDR读取boot.ini的结果。(至于动作系统选单,由于暂时条件不够,没办法截图,但是笔者类比了一个,见图一。)
* Y; h4 g* K& q: w- M! p2 `在boot.ini中,主要内含以下内容:
* y4 y; q5 ?& @& r[boot loader] 7 m" v. l! f+ [, o2 e: p7 ]
timeout=30
, ^+ y: v- ^: o. W' H9 ?" N: Ndefault=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
3 v4 A/ {$ A! O+ d[operating systems]
7 e j# h; }9 F2 f0 u) e- | V; h$ smulti(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect $ @. y9 d7 R+ ]% S9 G
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows Windows 2000 Professional" , Y) X5 h' n5 j9 ?( V
. + y, U9 u# M7 W# S
其中,multi(0)表示磁碟控制器,disk(0)rdisk(0)表示磁碟,partition(x)表示分区。NTLDR就是从这里寻找Windows XP Professional的系统档案的位置的。(*本文不会更详细地讲解boot.ini的群群组成结构,因为其与本主旨关系不大,若果想瞭解,可以到一些专门的网站处查询关联讯息。)若果在boot.ini中只有一个动作系统选项,或是把timeout值设为0,则系统不出现动作系统选取选单,直接引导到那个唯一的系统或是预设的系统。在选取启动Windows XP Professional后,动作系统选取阶段结束,硬体检验阶段开始。
( L* o6 {/ o4 l3 [8 g在硬体检验阶段中,ntdetect.com将收集电脑硬体讯息清单并将清单返回到NTLDR,这样做的目的是便于以后将这些硬体讯息加入到注册表HKEY_LOCAL_MACHINE下的hardware中。
) K) q( i2 x: _, J: l- n, y硬体检验完成后,进入群组态选取阶段。若果电脑含有多个硬体群组态档清单,可以通过按上下按钮来选取。若果只有一个硬体群组态档,电脑不显示此萤幕而直接使用预设的群组态档加载Windows XP专业版。
$ s1 W. u1 O. Q' u引导阶段结束。在引导阶段,系统要用到的档案一共有:NTLDR,Boot.ini,ntdetect.com,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可选的)。 ( ^- }' ~9 }! v6 D: n0 Y
.
( s( Q# y% b% h- y0 Uc) 加载内核阶段
; Q( c2 f' F* J在加载内核阶段,ntldr加载称为Windows XP内核的ntokrnl.exe。系统加载了Windows XP内核但是没有将它起始化。接着ntldr加载硬体抽像层(HAL,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINE\system键,NTLDR读取select键来决定哪一个Control Set将被加载。控制集中内含装置的驱动程式以及需要加载的服务。NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层装置驱动。当作为Control Set的对映的Current Control Set被加载时,ntldr传递控制给内核,起始化内核阶段就开始了。 2 A0 o3 }6 g7 P, u
. ( S! j+ C& a8 q4 P! ?1 _
d) 起始化内核阶段; h* n2 J |* o1 R1 u9 S: H: W1 x
在起始化内核阶段开始的时候,彩色的Windows XP的logo以及进度条显示在萤幕中央,在这个阶段,系统完成了启动的4项任务:- c# {0 l8 N; K! p* O! L, b7 H8 g1 r
? 内核使用在硬体检验时收集到的资料来建立了HKEY_LOCAL_MACHINE\HARDWARE键。
! Z! b1 E6 i: ?" M* F8 Y? 内核通过引用HKEY_LOCAL_MACHINE\system\Current的预设值复制Control Set来建立了Clone Control Set。Clone Control Set群组态是电脑资料的备份,不内含启动中的改变,也不会被修改。6 E. l$ g6 d& Y; r3 @
? 系统完成起始化以及加载装置驱动程式,内核起始化那些在加载内核阶段被加载的底层驱动程式,然后内核扫瞄HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start键值为1的装置驱动程式。这些装置驱动程式在加载的时候便完成起始化,若果有错误发生,内核使用ErrorControl键值来决定如何处理,值为3时,错误标志为危机/关键,系统初次遇到错误会以LastKnownGood Control Set重新启动,若果使用LastKnownGood Control Set启动仍然产生错误,系统报告启动失败,错误讯息将被显示,系统停止启动;值为2时错误情况为严重,系统启动失败并且以LastKnownGood Control Set重新启动,若果系统启动已经在使用LastKnownGood值,它会忽略错误并且继续启动;当值是1的时候错误为普通,系统会产生一个错误讯息,但是仍然会忽略这个错误并且继续启动;当值是0的时候忽略,系统不会显示任何错误讯息而继续执行
1 o3 \1 z, T/ U: V2 f8 @* c: `? Session Manager启动了Windows XP进阶子系统以及服务,Session Manager启动控制所有输入、输出装置以及访问显示器萤幕的Win32子系统以及Winlogon进度,起始化内核完毕。 ! ~; p5 F& i' C6 }6 ^. A; c
.
+ @1 A. m- x( B/ \# {8 Ke) 登陆1 w ]; }, K* W; q7 }! u M
? Winlogon.exe启动Local Security Authority,同时Windows XP Professional欢迎萤幕或是登陆对话框显示,这时候,系统还可能在后台继续起始化刚才没有完成的驱动程式。
8 K" X# e: k' d+ b?提示输入有效的使用者名或密码。4 \7 c: }( }5 y* u2 I" m
?Service Controller最后执行以及扫瞄HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servives来检查是否还有服务需要加载,Service Controller寻找start键值为2或更高的服务,服务按照start的值以及DependOnGroup和DepandOnService的值来加载。
]2 |9 ^9 i, x/ i6 D) Z. / r6 @# |5 H2 {* K2 W: H2 h$ f3 {4 a
只有使用者成功登陆到电脑后,Windows XP的启动才被认为是完成,在成功登陆后,系统复制Clone Control Set到LastKnownGood Control Set,完成这一步骤后,系统才意味着已经成功引导了
4 q( g4 x+ W( `) p | q |
|