|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
Windows XP Professional电脑启动过程概述4 P7 q1 K$ }$ f. H) Z; i) f2 [
6 q7 N0 F; l) l4 f, n1 ]7 M# q& Z
从按下电脑开关启动电脑,到登入到桌面完成启动,一共经由了以下几个阶段:
; l: g; u5 l4 D1. 预引导(Pre-Boot)阶段;0 j" W3 w. o4 a& s4 A2 m0 ]
2. 引导阶段;
* u+ r4 ~" B/ {. a2 r$ S, D3. 加载内核阶段;6 ?% T j5 F6 ]! D# g8 A, M
4. 起始化内核阶段;
6 ?" H0 F/ w% f% e# @, P5. 登陆。4 c R* Z- d) T
--------------------------------------------------------------------------------
' `- }/ g! Q2 y6 i每个启动阶段的详细介绍
6 \6 ^) Q/ P& P$ Pa) 预引导阶段
% o/ c9 k: C O7 V9 T6 k" I在按下电脑电源使电脑启动,并且在Windows XP专业版动作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,电脑首先执行Power On Self Test(POST),POST检验系统的总记忆体以及其他硬体装置的现状。若果电脑系统的BIOS(基础输入/输出系统)是即插即用的,那么电脑硬体装置将经由检验以及完成群组态。电脑的基础输入/输出系统(BIOS)定位电脑的引导装置,然后MBR(Master Boot Record)被加载并执行。在预引导阶段,电脑要加载Windows XP的NTLDR档案。# X2 f A: q3 ]% J4 H
b) 引导阶段 ! E1 a K! n9 x6 m: H
Windows XP Professional引导阶段内含4个小的阶段。5 D' u' P* F9 U% G% S0 q7 u
首先,电脑要经由起始引导加载器阶段(Initial Boot Loader),在这个阶段里,NTLDR将电脑微处理器从实模式转换为32位平面记忆体模式。在实模式中,系统为MS-DOS保留640kb记忆体,其余记忆体视为延伸记忆体,而在32位平面记忆体模式中,系统(Windows XP Professional)视所有记忆体为可用记忆体。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或是FAT档案系统格式化的分区,以便发现以及加载Windows XP Professional,到这里,起始引导加载器阶段就结束了。" V1 @9 g' Z" e- i/ X" J
接着系统来到了动作系统选取阶段,若果电脑安装了不止一个动作系统(也就是多系统),而且正确设定了boot.ini使系统提供动作系统选取的条件下,电脑显示器会显示一个动作系统选单,这是NTLDR读取boot.ini的结果。(至于动作系统选单,由于暂时条件不够,没办法截图,但是笔者类比了一个,见图一。)4 T. u$ y/ p5 B1 i3 U- G' b2 c( A
在boot.ini中,主要内含以下内容:( i; Q7 f5 d9 b7 g$ \
[boot loader]
: d, Y+ z [3 [; k$ utimeout=30
& e- F R4 J0 ]& @default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 5 J5 ]) N) P; {2 a" Z
[operating systems]
: f4 w* T- ~/ |/ fmulti(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
! a6 E: P4 \5 e3 u1 |multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows Windows 2000 Professional" $ z: P! q) T1 `8 l
. : C4 G4 C, d! C. J8 e) M
其中,multi(0)表示磁碟控制器,disk(0)rdisk(0)表示磁碟,partition(x)表示分区。NTLDR就是从这里寻找Windows XP Professional的系统档案的位置的。(*本文不会更详细地讲解boot.ini的群群组成结构,因为其与本主旨关系不大,若果想瞭解,可以到一些专门的网站处查询关联讯息。)若果在boot.ini中只有一个动作系统选项,或是把timeout值设为0,则系统不出现动作系统选取选单,直接引导到那个唯一的系统或是预设的系统。在选取启动Windows XP Professional后,动作系统选取阶段结束,硬体检验阶段开始。8 h" ~" H( e; ]% F) Y* |
在硬体检验阶段中,ntdetect.com将收集电脑硬体讯息清单并将清单返回到NTLDR,这样做的目的是便于以后将这些硬体讯息加入到注册表HKEY_LOCAL_MACHINE下的hardware中。' Y+ U" b9 @2 V- r
硬体检验完成后,进入群组态选取阶段。若果电脑含有多个硬体群组态档清单,可以通过按上下按钮来选取。若果只有一个硬体群组态档,电脑不显示此萤幕而直接使用预设的群组态档加载Windows XP专业版。
: b* q0 L$ M. b0 P" m9 n引导阶段结束。在引导阶段,系统要用到的档案一共有:NTLDR,Boot.ini,ntdetect.com,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可选的)。 " V$ N' i4 K+ _1 o1 }* h
.
0 W4 z& g2 k: d( [& hc) 加载内核阶段
; M. f6 D$ T/ r' Y2 D, I/ K( 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传递控制给内核,起始化内核阶段就开始了。
k5 K0 L0 S' j- h8 B) |' J. " a' G# `0 o: G# H& Z
d) 起始化内核阶段
( }0 ^' G l* f* y在起始化内核阶段开始的时候,彩色的Windows XP的logo以及进度条显示在萤幕中央,在这个阶段,系统完成了启动的4项任务:
, _6 N5 P2 O4 b/ y( g? 内核使用在硬体检验时收集到的资料来建立了HKEY_LOCAL_MACHINE\HARDWARE键。: J% }" U" P* C8 `* \5 q: G5 e9 ?3 y
? 内核通过引用HKEY_LOCAL_MACHINE\system\Current的预设值复制Control Set来建立了Clone Control Set。Clone Control Set群组态是电脑资料的备份,不内含启动中的改变,也不会被修改。 |2 U q+ G, Z0 e# X" R3 N$ X
? 系统完成起始化以及加载装置驱动程式,内核起始化那些在加载内核阶段被加载的底层驱动程式,然后内核扫瞄HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start键值为1的装置驱动程式。这些装置驱动程式在加载的时候便完成起始化,若果有错误发生,内核使用ErrorControl键值来决定如何处理,值为3时,错误标志为危机/关键,系统初次遇到错误会以LastKnownGood Control Set重新启动,若果使用LastKnownGood Control Set启动仍然产生错误,系统报告启动失败,错误讯息将被显示,系统停止启动;值为2时错误情况为严重,系统启动失败并且以LastKnownGood Control Set重新启动,若果系统启动已经在使用LastKnownGood值,它会忽略错误并且继续启动;当值是1的时候错误为普通,系统会产生一个错误讯息,但是仍然会忽略这个错误并且继续启动;当值是0的时候忽略,系统不会显示任何错误讯息而继续执行! @. ?2 T! n3 J: c/ U% [
? Session Manager启动了Windows XP进阶子系统以及服务,Session Manager启动控制所有输入、输出装置以及访问显示器萤幕的Win32子系统以及Winlogon进度,起始化内核完毕。 ( y. H2 ?# g" A
.
& d5 F: [' ^; }/ E$ @: i+ Be) 登陆
# k* A( w" t/ @& M' ^/ ~' L? Winlogon.exe启动Local Security Authority,同时Windows XP Professional欢迎萤幕或是登陆对话框显示,这时候,系统还可能在后台继续起始化刚才没有完成的驱动程式。
! t$ \$ K+ q4 f; C& L& K?提示输入有效的使用者名或密码。: W* F& O$ g* E" J5 D4 X6 w
?Service Controller最后执行以及扫瞄HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servives来检查是否还有服务需要加载,Service Controller寻找start键值为2或更高的服务,服务按照start的值以及DependOnGroup和DepandOnService的值来加载。 4 l( u& p: x: Z; `6 I
. ]) F( ], u$ v: n- C
只有使用者成功登陆到电脑后,Windows XP的启动才被认为是完成,在成功登陆后,系统复制Clone Control Set到LastKnownGood Control Set,完成这一步骤后,系统才意味着已经成功引导了8 G- i# {" z' [' D! b$ \2 u
| q |
|