XP启动时经过了几个阶段

 在按下计算机电源使计算机启动,并且在WindowsXP专业版操作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,计算机首先运行PowerOnSelfTest(POST),POST检测系统的总内存以及其他硬件设备的现状。

  从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段:

  1.预引导(Pre-Boot)阶段;

  2.引导阶段;

  3.加载内核阶段;

  4.初始化内核阶段;

  5.登陆。

  每个启动阶段的详细介绍

  a)预引导阶段

  在按下计算机电源使计算机启动,并且在WindowsXP专业版操作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,计算机首先运行PowerOnSelfTest(POST),POST检测系统的总内存以及其他硬件设备的现状。如果计算机系统的BIOS(基础输入/输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置。计算机的基础输入/输出系统(BIOS)定位计算机的引导设备,然后MBR(MasterBootRecord)被加载并运行。在预引导阶段,计算机要加载WindowsXP的NTLDR文件。

  b)引导阶段

  WindowsXPProfessional引导阶段包含4个小的阶段。

  首先,计算机要经过初始引导加载器阶段(InitialBootLoader),在这个阶段里,NTLDR将计算机微处理器从实模式转换为32位平面内存模式。在实模式中,系统为MS-Dos保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系统(WindowsXPProfessional)视所有内存为可用内存。接着,NTLDR启动内建的mini-filesystemdrivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,以便发现以及加载WindowsXPProfessional,到这里,初始引导加载器阶段就结束了。

  接着系统来到了操作系统选择阶段,如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了boot.ini使系统提供操作系统选择的条件下,计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini的结果。(至于操作系统选单,由于暂时条件不够,没办法截图,但是笔者模拟了一个,见图一。)

  在boot.ini中,主要包含以下内容:

  [bootloader]

  timeout=30

  default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

  [operatingsystems]

  multi(0)disk(0)rdisk(0)partition(1)WINDOWS="MicrosoftWindowsXPProfessional"/fastdetect

  multi(0)disk(0)rdisk(0)partition(2)WINNT="WindowsWindows2000Professional"

  其中,multi(0)表示磁盘控制器,disk(0)rdisk(0)表示磁盘,partition(x)表示分区。NTLDR就是从这里查找WindowsXPProfessional的系统文件的位置的。(*本文不会更详细地讲解boot.ini的组成结构,因为其与本主题关系不大,如果想了解,可以到一些专门的网站处查询相关信息。)如果在boot.ini中只有一个操作系统选项,或者把timeout值设为0,则系统不出现操作系统选择菜单,直接引导到那个唯一的系统或者默认的系统。在选择启动WindowsXPProfessional后,操作系统选择阶段结束,硬件检测阶段开始。

  在硬件检测阶段中,ntdetect.com将收集计算机硬件信息列表并将列表返回到NTLDR,这样做的目的是便于以后将这些硬件信息加入到注册表HKEY_LOCAL_MacHINE下的hardware中。

  硬件检测完成后,进入配置选择阶段。如果计算机含有多个硬件配置文件列表,可以通过按上下按钮来选择。如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用默认的配置文件加载WindowsXP专业版。

  引导阶段结束。在引导阶段,系统要用到的文件一共有:NTLDR,Boot.ini,ntdetect.com,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可选的)。

  c)加载内核阶段

  在加载内核阶段,ntldr加载称为WindowsXP内核的ntokrnl.exe。系统加载了WindowsXP内核但是没有将它初始化。接着ntldr加载硬件抽象层(HAL,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINEsystem键,NTLDR读取select键来决定哪一个ControlSet将被加载。控制集中包含设备的驱动程序以及需要加载的服务。NTLDR加载HKEY_LOCAL_MACHINEsystemservice...下start键值为0的最底层设备驱动。当作为ControlSet的镜像的CurrentControlSet被加载时,ntldr传递控制给内核,初始化内核阶段就开始了。

  d)初始化内核阶段

  在初始化内核阶段开始的时候,彩色的WindowsXP的logo以及进度条显示在屏幕中央,在这个阶段,系统完成了启动的4项任务:

  *内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINEHARDWARE键。

  *内核通过引用HKEY_LOCAL_MACHINEsystemCurrent的默认值复制ControlSet来创建了CloneControlSet。CloneControlSet配置是计算机数据的备份,不包括启动中的改变,也不会被修改。

  *系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINEsystemCurrentControlSetservice...下start键值为1的设备驱动程序。这些设备驱动程序在加载的时候便完成初始化,如果有错误发生,内核使用ErrorControl键值来决定如何处理,值为3时,错误标志为危机/关键,系统初次遇到错误会以LastKnownGoodControlSet重新启动,如果使用LastKnownGoodControlSet启动仍然产生错误,系统报告启动失败,错误信息将被显示,系统停止启动;值为2时错误情况为严重,系统启动失败并且以LastKnownGoodControlSet重新启动,如果系统启动已经在使用LastKnownGood值,它会忽略错误并且继续启动;当值是1的时候错误为普通,系统会产生一个错误信息,但是仍然会忽略这个错误并且继续启动;当值是0的时候忽略,系统不会显示任何错误信息而继续运行

  *SessionManager启动了WindowsXP高级子系统以及服务,SessionManager启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。

  e)登陆

  *Winlogon.exe启动LocalSecurityAuthority,同时WindowsXPProfessional欢迎屏幕或者登陆对话框显示,这时候,系统还可能在后台继续初始化刚才没有完成的驱动程序。

  *提示输入有效的用户名或密码。

  ServiceController最后执行以及扫描HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServives来检查是否还有服务需要加载,ServiceController查找start键值为2或更高的服务,服务按照start的值以及DependOnGroup和DepandOnService的值来加载。

  只有用户成功登陆到计算机后,WindowsXP的启动才被认为是完成,在成功登陆后,系统拷贝CloneControlSet到LastKnownGoodControlSet,完成这一步骤后,系统才意味着已经成功引导了。

 

时间: 2024-08-04 07:08:50

XP启动时经过了几个阶段的相关文章

Windows 2000/XP启动时进入纯DOS模式的技巧

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   DOS是英文Disk Operating System的缩写,意思是"磁盘操作系统".DOS是个人计算机上的一类操作系统.从1981年直到1995年的15年间,DOS在IBM PC 兼容机市场中占有举足轻重的地位.而且,若是把部份以DOS为基础的Microsoft Windows版本,如Windows 95.98和Me等都算进去的话,那么其商

教你排除Windows XP启动故障

如果你电脑的电源已经打开,而Windows XP没有正常启动,你需要采取一些故障排除手段.下面列举了可能出现的问题以及解决问题的方法. 1. 使用Windows启动盘 如果启动问题是由于活动分区的启动记录或者操作系统启动所使用的文件被破坏造成的,启动盘就能够解决问题.具体方法如下: 创建Windows启动盘,找一台配置相似.工作正常的Windows XP机器,打开我的电脑,单击鼠标右键选择磁盘图标,然后在后续的菜单中选择格式化.当格式化对话框出现以后,保留所有缺省设置,然后点击开始按钮.当格式化

如何排除Windows XP启动故障

  1. 使用Windows启动盘 如果启动问题是由于活动分区的启动记录或者操作系统启动所使用的文件被破坏造成的,启动盘就能够解决问题.具体方法如下: 创建Windows启动盘,找一台配置相似.工作正常的Windows XP机器,打开我的电脑,单击鼠标右键选择磁盘图标,然后在后续的菜单中选择格式化.当格式化对话框出现以后,保留所有缺省设置,然后点击开始按钮.当格式化操作完成后,关闭格式化对话框回到My Computer,双击C:驱的图标,访问根目录,将Boot.ini.NTLDR.Ntdetec

XP系统注册表如何还原到上次成功启动时

  虽然目前新电脑配置都比较高端,所以安装的多是win7系统,由于大很多用户都还是使用着老电脑,还有一些低端配置电脑,都还使用着Windows XP系统,许多电脑用户可能对XP系统的注册表不怎么熟悉,注册表的用处比较大,用户在使用电脑过程中,难免会遇到一些小问题故障,有的系统故障可以通过注册表来解决,比如XP系统出现文件损坏或者丢失,导致无法成功进入系统,我们可以让XP系统注册表还原到上次成功启动时的状态,电脑也就能够成功进入到系统. Windows将其配置信息存储在一个称为注册表的数据库中,该

xp更改启动时F8键的那些功能

  F8键是键盘的功能键之一.F8键是Windows 启动选项快捷键.在笔记本电脑上FN+F8具有拉申或者停止拉申屏幕的作用. 一. 禁止Windows XP进入安全模式禁用安全模式,限制受限用户修改注册表 通过修改注册表,使用户无法进入Windows XP带有命令行的安全模式,避免他人在安全模式下利用net user命令修改其他用户的密码,同时限制受限用户访问并修改注册表,避免他人修改注册表启动安全模式. 使用管理员级别帐户登录Windows XP,在"运行"窗口中输入"r

sybase启动时遇到的问题!!!!求高手解决,,,急急急!!! xp系统

问题描述 sybase启动时遇到的问题!!!!求高手解决,,,急急急!!! xp系统 00:00:00000:00000:2015/03/10 09:09:00.95 kernel SySAM: Using licenses from: D:sybasedbSYSAM-2_0licenses 00:00:00000:00000:2015/03/10 09:09:01.65 kernel SySAM: Checked out license for 2 ASE_CORE (2013.1231/pe

Vs.NET IDE启动时the application cannot start.的解决办法

application|解决 Visual Studio .NET 启动时"the application cannot start."的解决办法 一般IDE不能启动有以下两种原因:1.不能加载msxml3.dll2.不能加载mso.dll *不能加载msxml3.dll 该种问题我相信最多,应该是无法创建Msxml2.DOMDocument对象造成的,可以用下面的代码进行检验你的系统:Set x = CreateObject("Msxml2.DOMDocument"

打造功能更强大更安全的Windows XP启动密码

大家可能经常在报纸或杂志上看见破解登录用户名和密码进入Windows XP的一些方法和技巧,这样就显得Windows XP不是很安全,其实Windows XP还有一个更安全的"启动密码",这个密码显示在用户密码前,而且还可以生成钥匙盘,如果设置了它,你的Windows XP就更加安全了,下面我们就来一起制作这个"启动密码". 设置Windows XP启动密码 1. 点击菜单"开始→运行",在运行对话框中输入"Syskey"(如

Windows XP启动慢该怎么办

经常听到电脑使用者有这样的抱怨:怎么我打开电脑自检完后屏幕一直是黑的,要半天才有XP的界面出现?我的电脑干嘛进入系统这么慢?滚动条都转了十几圈还进不了系统.为什么我的XP出现桌面后几分钟之内点击任何程序都毫无反应?这些问题都可以归结为Windows XP启动慢.如何做才能加快系统的启动速度呢? 要想解决XP启动慢的问题,首先必须了解一下系统的启动过程.Windows XP的启动过程大致可分为5个步骤:第一步,预启动:首先计算机通电进行自检,并由BIOS(即基本输入输出系统)扫描硬件并完成基本硬件