预引导阶段
当我们打开计算机电源后,预引导过程就开始运行了。在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。
开始BIOS自检,通过自检后,bios找到硬盘上的主引导记录MBR。
引导阶段
bootmgr(xp 为ntldr)读取了文件系统驱动,并成功找到硬盘上的分区后,引导载入程序的初始化过程就已经完成了,随后我们将会进行到下一步。
操作系统选择
如果有多个操作系统,会根据boot文件夹中的BCD文件(启动配置数据,相当于xp里的boot.ini文件),让用户选择那一个系统,如果只有一个系统,直接跳过这一步。
硬件检测
当我们在前面的操作系统选择阶段选择了想要载入的Windows系统之后,Ntdetect.com首先要将当前计算机中安装的所有硬件信息收集起来,并列成一个表,接着将该表交给Ntldr(这个表的信息稍后会被用来创建注册表中有关硬件的键)。这里需要被收集信息的硬件类型包括:总线/适配器类型、显卡、通讯端口、串口、浮点运算器(CPU)、可移动存储器、键盘、指示装置(鼠标)。至此,硬件检测操作已经成功完成。
配置文件选择
这一步也不是必须的。只有在计算机(常用于笔记本电脑)中创建了多个硬件配置文件的时候才需要处理这一步。
载入内核阶段
在这一阶段,Ntldr会载入Windows XP的内核文件:Ntoskrnl.exe,但这里仅仅是载入,内核此时还不会被初始化。随后被载入的是硬件抽象层(hal.dll)
硬件抽象层被载入后,接下来要被内核载入的是HKEY_LOCAL_MACHINE/System注册表键。Ntldr会根据载入的Select键的内容判断接下来需要载入哪个Control Set注册表键(图2),而这些键会决定随后系统将载入哪些设备驱动或者启动哪些服务。这些注册表键的内容被载入后,系统将进入初始化内核阶段,这时候ntldr会将系统的控制权交给操作系统内核。
初始化内核阶段
当进入到这一阶段的时候,计算机屏幕上就会显示Windows XP的标志了,同时还会显示一条滚动的进度条,这个进度条可能会滚动若干圈。从这一步开始我们才能从屏幕上队系统的启动有一个直观的印象。在这一阶段中主要会完成这四项任务:创建Hardware注册表键、对Control Set注册表键进行复制、载入和初始化设备驱动,以及启动服务。