WINDOWS操作系统启动过程详解

合集下载

Windows操作系统的启动过程详解

Windows操作系统的启动过程详解






三、引导程序载入过程 本过程主要由ntldr 文件完成。 Ntldr从引导分区载入启动文件, 然后完成如下一些任务。 在基于X86CPU的系统下,设置CPU的运行使用32位的Flat内存 模式 对基于X86CPU的计算机来说,第一次启动的时候总是进入所谓 的实模式(RealMode)。在实模式下CPU的某些特性不能完全 发挥,这 是因为它要保证同8位或16位的CPU(如8086、8088) 相兼容。实模式下由于系统规格的限制,无法对大容量内存进行 直接存取,而必须通过分段的方 式完成。对于32位的Windows XP来说,8位或16位的CPU显然是无用的。 ntldr首先会将CPU切换到32位的模式,从而确保Windows XP的 正常。在CPU的32位模式下,可以对大容量内存进行直接存取, 而彻底抛弃了原先在8位或16位下分段存取内存的不便。 启动文件系统 ntldr 中包含相应的代码,能够帮助Windows XP完成对NTFS或 FAT格式的磁盘进行读写。从而能够读取、访问和复制文件。

一、电源开启自检过程




1、在打开计算机电源时,首先开始电源启动自检过 程。从BIOS中载入必要的指令,然后进行如下一系列 的自检操作: 2、进行硬件的初始化检查,例如检查内存的容量等。 3、验证用于启动操作系统的设备是否正常, 例如,检查硬盘是否存在等。 4、从CMOS中读取系统配置信息。例如:当前计算 机硬件信息,用户设置信号(磁盘引导顺序,引导密 码等) 5、注:在完成了电源启动的自检之后,每个带有固 件的硬件设备,如显卡和磁盘控制器,都会根据需要 完成内部的自检操作。



注:(1)、对于单引导的系统来说,ntldr 会通过启动来 初始化硬件检测状态。 (2)、对于多引导系统来说,首先由用户在操作系统菜单中选择要启 动的操作系统然后而由ntldr进行相应的操作。 (3)、如果选择启动旧式的微软操作系统,如MS-DOS、Windows 9x/ME,ntldr会将从bootsect.dos文件中读取MBR代码,然后将控制 权交给bootsect.dos中的MBR。

Windows启动过程详解

Windows启动过程详解

Windows启动过程详解1.MBR 阶段(16 位实模式):BIOS 在完成通电自检后,将控制权移交给位于硬盘前63 个扇区的MBR(Master Boot Record),MBR 将自己的镜像加载到内存,然后执行对分区表的搜索,然后将控制权转移给第一个活动分区的PBR(Partition Boot Record);2.PBR 阶段(16 位实模式):PBR 是因操作系统而异的分区引导记录,它将自身加载到内存并加载基本的磁盘驱动,通过BIOS INT 中断的方式查找此分区上的引导文件,也就是我们的Bootmgr,并将其加载到内存;3.Bootmgr 阶段(16 位实模式和32 位无分页内存):读取BCD 信息,显示启动菜单,如果安装有多个版本的Windows 引导记录,能在这里选择要启动的系统,或者执行内存测试等操作,在选定操作系统后,将Windows BootLoader——Winload.exe 加载到内存;4.Winload.exe 阶段(32 位或64 位保护模式,有内存分页):加载Windows 内核Ntoskrnl.exe 和它的依赖项Kdcom.dll(Kernel Debugger),Ci.dll,Clfs.sys,Pshed.dll,HAL.dll(硬件抽象层,其实就是主板驱动),并将注册表中HKLM\SYSTEM 子键内容加载到内存,如果检测到页面文件Hiberfil.sys 则启动Winresume.exe 恢复休眠文件;5.Ntoskrnl.exe 阶段(保护模式):初始化Windows 执行体并一一加载注册在HKLM\SYSTEM\CurrentControlSet\Services 下标记为System 的系统驱动程序,运行会话管理器smss.exe,准备运行native code 所需的环境;6.Smss.exe 阶段(Native 程序):初始化环境变量和Windows 图形子系统(Win32k.sys),初始化Windows API(csrss.exe)和Windows 初始化进程(WinInit.exe)和登陆进程(WinLogon.exe);7.WinInit.exe 阶段(Windows 程序):初始化服务管理器(SCM),本地安全鉴定进程(LSASS)和本地会话管理器(LSM),初始化剩余的注册表中的启动项内容,以用户态运行启动项任务;8.Winlogon.exe 阶段:显示登陆画面,处理与用户登录相关的安全鉴定任务;9.Services.exe 阶段:完成加载在HKLM\SYSTEM\CurrentControlSet\Services 下标记为AutoStart 的驱动程序和Windows 服务;10.Explorer.exe 阶段:在创建Windows Shell(Explorer.exe)时,初始化桌面窗口管理器(DWM)进程,Explorer.exe 加载自身和相关启动项。

计算机启动过程图文详解

计算机启动过程图文详解

计算机启动过程图文详解(二)操作系统启动过程操作系统启动之前的计算机启动过程我已经在《计算机启动过程图文详解(一)----计算机初始化启动过程》一文中详细介绍过,今天就介绍一下初始化启动后的操作系统的启动过程。

我们只介绍Windows系统的启动,由于vista和windows7操作系统的启动采用了全新的方式,所以这里需要对xp和Vista(Windows7与之基本相同)分别介绍。

为了不至于导致大家看不明白,我只介绍一个大概的过程。

xp系统的启动当系统BIOS完成初始化后,会将控制权交给主引导纪录(即MBR:Master Boot Record),MBR会检查硬盘分区表,找到硬盘上的引导分区,然后将引导分区上的操作系统引导扇区调入内存,并执行其NTDLR文件。

NTDLR会将微处理器从实模式(此模式下计算机认为内存为64KB,其他未扩展内存)转换为32位的平面内存模式(此模式下认为CPU可识别的所有内存均是可用内存)。

然后,NTDLR启动mini-file system drivers以便它能够识别所有采用NTFS和FAT(FAT32)文件系统的硬盘分区。

此后NTLDR会读取boot.ini文件,以决定应该启动哪一个系统,如果boot.ini中仅显示了一个系统或者将timeout(系统选择页面停留时间)参数设为0的话,这个系统选择页面就不会出现而是直接启动默认的系统。

而如果boot.ini中含有多个启动引导项,当选择了不同的系统后计算机接下来的启动流程就会产生区别,如果选择的不是xp,NTLDR会读取bootsect.dos 来启动相应系统,如果选择了xp的话,就会接着转入硬件检测阶段。

在这个阶段,会收集计算机的硬件信息列表并将其返回到NTLDR中,以便以后将这些信息写入注册表(具体而言是HKEY_LOCAL_MACHINE 下的hardware)中。

然后会进行硬件配置选择,如果计算机含多个硬件配置,会出现配置选择页面,如果仅有一个的话,系统直接进入默认配置。

系统启动详细过程

系统启动详细过程

系统启动详细过程系统启动是指电脑在被打开或重启后,按照一定顺序自动执行的一系列操作。

它包括了硬件检测、引导加载程序的加载、操作系统的启动和一些其他的初始化过程。

下面将详细介绍系统启动的过程。

1.电源启动:当用户按下电源按钮,电源开始向电脑主板提供电力。

电源会检测电压是否正常,如果正常则会继续向下执行。

2. 自检(POST):电脑主板会自动进行一系列的自检操作,被称为电源自检(POST,Power-On Self-Test)。

这个过程主要检测硬件的状态和连接是否正常。

自检包括了对CPU、内存、硬盘、显卡等主要硬件的检测。

3.开机自检显示:一般情况下,主板会将自检结果通过蜂鸣器或显示屏输出。

如果有故障,主板会发出蜂鸣警报并在屏幕上显示错误信息。

如果一切正常,系统将继续启动。

4.引导加载程序(BOOTLOADER):系统启动后,主板会检测启动设备(如硬盘、光盘、U盘等)是否存在,如果有则会选择一个启动设备。

然后从启动设备的引导扇区中加载引导加载程序(BOOTLOADER)。

5. 引导加载程序的加载:引导加载程序是一个小程序,位于启动设备的引导扇区。

它的作用是加载操作系统内核和初始化系统环境。

主要有常见的GRUB和Windows的NTLDR等。

引导加载程序加载完成后,控制权将交给操作系统。

6.操作系统的加载:引导加载程序通过读取文件系统中的引导文件加载操作系统内核。

内核是操作系统的核心部分,负责协调硬件资源以及提供系统服务。

在加载内核之前,引导加载程序会加载一些必要的驱动程序和系统文件。

7.系统初始化:内核加载完成后,它会初始化系统环境。

这个过程主要包括初始化处理器、内存管理、设备驱动程序、进程管理等。

在完成初始化之后,操作系统将开始执行用户进程。

8.用户进程的启动:操作系统启动后,会根据用户设置或默认的启动配置文件来启动指定的用户进程。

用户进程包括了各种应用程序、系统服务等。

这些进程将在系统内存中分配空间,并根据需要执行相应的操作。

深入解析电脑操作系统的启动过程

深入解析电脑操作系统的启动过程

深入解析电脑操作系统的启动过程电脑操作系统是一台计算机中最重要的软件系统,它负责管理和控制计算机的硬件资源,提供用户与计算机之间的接口。

计算机系统的启动过程是指从计算机通电到操作系统完全加载并准备好接受用户操作的一系列步骤。

本文将深入解析电脑操作系统的启动过程,并分为硬件启动、引导加载和操作系统初始化三个部分进行阐述。

一、硬件启动当计算机通电时,硬件设备开始自检和初始化。

自检过程主要包括CPU、内存、硬盘等硬件设备是否正常工作,以及与外部设备的连接是否良好等。

通过自检,计算机系统能够确保硬件设备的正常运行状态。

接着,计算机会加载BIOS(Basic Input/Output System,基本输入输出系统),BIOS是计算机系统的基本固件,负责将计算机硬件连接到操作系统。

在计算机通电后,BIOS会读取存储在CMOS中的设置信息,包括硬件设备的参数、启动顺序等。

根据这些设置,BIOS会选择相应的设备作为引导设备,用于加载操作系统。

二、引导加载计算机开始引导加载操作系统。

根据BIOS中的设置,计算机会首先寻找引导设备上的引导代码。

在实际操作中,通常是从硬盘的主引导记录(Master Boot Record,MBR)中加载引导代码。

MBR是硬盘上的一个特殊扇区,它包含了引导代码和硬盘分区表。

当计算机找到MBR后,会将其中的引导代码加载到内存中,并执行该代码。

引导代码通常被称为引导加载程序(Bootloader),它的功能是加载操作系统的核心部分。

引导加载程序根据操作系统所在的文件系统类型以及文件路径,找到操作系统文件的位置,并将其加载到内存中。

不同的操作系统可能有不同的引导加载程序,如Windows系统的NTLDR(New Technology Loader)、GRUB(GNU GRand Unified Bootloader)等。

引导加载程序的主要任务是将控制权交给操作系统内核。

三、操作系统初始化操作系统内核被加载到内存后,计算机开始进行操作系统的初始化工作。

操作系统的启动过程

操作系统的启动过程

操作系统的启动过程操作系统(Operating System,简称OS)是计算机系统中最基本的软件之一,它负责管理和控制计算机的硬件和软件资源,为用户和应用程序提供丰富的功能和良好的用户体验。

在计算机启动时,操作系统也需要经历一系列的启动过程,以确保系统能够正常运行。

下面将详细介绍操作系统的启动过程。

一、引导阶段(Bootstrapping Stage)在计算机加电启动后,首先会由计算机的固化ROM(Read-Only Memory)中的引导程序开始执行。

这个引导程序位于计算机的主板上,负责启动操作系统。

引导程序首先会检测计算机中是否有可引导的设备,比如硬盘、光盘、USB等。

一旦发现可引导设备,引导程序就会将该设备中特定的引导扇区(Boot Sector)加载到计算机的内存中。

二、引导扇区的执行当引导扇区被加载到内存后,计算机的控制权交给了引导扇区中的代码。

引导扇区中的代码被称为引导加载程序(Boot Loader),它是一段特殊的机器指令,负责进一步加载操作系统的核心部分。

三、操作系统核心加载引导加载程序会根据预先设定的规则和算法,搜索计算机硬件设备,找到存放操作系统的特定分区或文件。

然后,它将操作系统的核心部分一次性地加载到计算机的内存中。

操作系统核心通常被保存为一个或多个可执行文件,也被称为内核(Kernel)。

四、内核初始化当操作系统核心被加载到内存后,内核开始执行,并进入初始化阶段。

在这个阶段,内核会对计算机的硬件进行自检和初始化,包括对处理器、内存、设备等的初始化操作。

内核还会为各个子系统和模块分配和初始化资源,准备操作系统运行时所需要的环境。

五、用户空间初始化在内核初始化完成后,操作系统会创建一个或多个用户空间(User Space)。

用户空间是操作系统为应用程序和用户提供的执行环境。

操作系统会根据系统配置和用户需求,初始化用户空间中的各个组件,比如图形界面、网络服务、文件系统等。

windows 启动原理

windows 启动原理

windows 启动原理
Windows 启动的原理是通过多个阶段的过程来完成的。

这些
阶段包括硬件初始化、引导加载程序(Bootloader)的执行以
及操作系统的加载和启动。

在计算机启动时,当按下电源按钮后,电源开始供应电力,硬件开始初始化。

这包括处理器(CPU)、内存、硬盘等硬件设备的检查和初始化。

接下来,引导加载程序(Bootloader)开始执行。

引导加载程
序位于硬盘的特定扇区,它的作用是加载操作系统。

引导加载程序位于主引导记录(Master Boot Record,简称MBR)的位置,MBR位于硬盘的第一个扇区。

引导加载程序首先会确定硬盘上的分区表,并选择特定的分区作为活动分区。

然后,它会加载分区的引导扇区(Boot Sector)到内存,并跳转到引导扇区的代码。

引导扇区中的代码将加载操作系统的核心文件(例如
Windows的NTLDR)到内存中。

这些核心文件包含了操作系
统的基本功能和程序。

从核心文件开始,操作系统的加载和启动过程会继续进行。

操作系统会加载基本的系统驱动程序和关键的系统文件到内存中,并进行一些初始化工作。

然后,它会启动图形用户界面(GUI)或命令行界面(CLI),以供用户操作。

总结来说,Windows 启动的原理是通过硬件初始化、引导加载程序的执行和操作系统的加载来完成的。

这个过程经历了多个阶段,每个阶段都有各自的任务和功能,最终完成了操作系统的启动。

了解计算机操作系统的启动流程和功能

了解计算机操作系统的启动流程和功能

了解计算机操作系统的启动流程和功能计算机操作系统是一种管理和控制计算机硬件和软件资源的软件系统。

它负责启动计算机、分配资源、管理文件系统、提供安全保护等。

了解计算机操作系统的启动流程和功能,对我们理解计算机工作原理、诊断和解决问题都具有重要意义。

本文将详细介绍操作系统的启动流程和功能。

一、计算机操作系统的启动流程:1. 加电启动- 用户按下计算机的电源按钮,计算机开始供电。

- 供电后,计算机的BIOS(基本输入输出系统)开始工作。

- BIOS进行自检,检测内存、硬盘、显示器等硬件设备是否正常。

- 自检完成后,BIOS读取硬盘上的引导扇区信息。

2. 引导加载- 引导扇区包含引导程序,也称为引导加载器(Boot Loader)。

- 引导加载器的主要功能是加载操作系统内核到内存中,并将控制权转交给内核。

- 引导加载器通常会提供一个可选择的菜单,供用户选择不同的操作系统。

3. 内核启动- 引导加载器将控制权转交给操作系统内核。

- 内核启动后,会进行系统初始化,包括配置内存管理、设备驱动、创建进程等。

- 内核将初始化后的系统状态保存到内存中的数据结构中。

4. 用户空间载入- 内核加载完成后,会运行第一个用户程序,通常是init进程。

- init进程是用户空间的第一个进程,负责启动其他用户进程和系统服务。

- 用户空间程序包括各种应用程序、服务、Shell等。

二、计算机操作系统的功能:1. 进程管理- 进程管理是操作系统的核心功能之一,负责创建、调度和终止进程。

- 操作系统通过分时调度算法,使多个进程能够共享CPU时间片。

- 进程管理还包括进程间通信、进程同步等。

2. 内存管理- 内存管理是操作系统的另一个重要功能,负责管理计算机的内存资源。

- 内存管理包括内存分配、内存保护、内存回收等。

- 操作系统通过虚拟内存技术,将物理内存扩展到逻辑上更大的地址空间。

3. 文件系统- 文件系统是操作系统用于管理和组织文件的一种机制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WINDOWS操作系统启动过程详解基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。

预引导阶段:当我们打开计算机电源后,预引导过程就开始运行了。

在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。

如果计算机BIOS是支持即插即用的(基本上,现阶段能够买到的计算机和硬件都是支持这一标准的),而且所有硬件设备都已经被自动识别和配置,接下来计算机将会定位引导设备(例如第一块硬盘,设备的引导顺序可以在计算机的BIOS设置中修改),然后从引导设备中读取并运行主引导记录(Master Boot Record,MBR)。

至此,预引导阶段成功完成。

引导阶段:引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤。

在这一过程中需要使用的文件包括:Ntldr、Boot.ini、、Ntoskrnl.exe、Ntbootdd.sys、Bootsect.dos(非必须)。

初始化引导载入程序:在这一阶段,首先出场的是ntldr,该程序会将处理器由实模式(Real Mode)切换为32位平坦内存模式(32-bit Flat Memory Mode)。

不使用实模式的主要?因是,在实模式下,内存中的前640KB是为MS-DOS保留的,而剩余内存则会被当作扩展内存使用,这样Windows XP将无法使用全部的物理内存。

而32位平坦内存模式下就好多了,Windows XP自身将能使用计算机上安装的所有内存(其实最多也只能用2GB,这是32位操作系统的设计缺陷)。

接下来ntldr会寻找系统自带的一个微型的文件系统驱动。

大家都知道,DOS和Windows 9x操作系统是无法读写NTFS文件系统分区的,那么Windows XP的安装程序为什么可以读写NTFS分区?其实这就是微型文件系统驱动的功劳了。

只有在载入了这个驱动之后,ntldr 才能找到硬盘上被格式化为NTFS或者FAT/FAT32文件系统的分区。

如果这个驱动损坏了,就算硬盘上已有分区,ntldr也认不出来。

读取了文件系统驱动,并成功找到硬盘上的分区后,引导载入程序的初始化过程就已?完成了,随后我们将会进行下一步。

操作系统选择:这一步并非必须,只有在计算机中安装了多个Windows操作系统的时候才会出现。

不过无论计算机中安装了几个Windows,计算机启动的过程中,这一步都会按照设计运行一遍,但只有在确实安装了多个系统的时候,系统才会显示一个列表,让你选择想要引导的系统。

如果已经安装了多个Windows操作系统,那么所有的记录都会被保存在系统盘根目录下一个名为boot.ini的文件中。

ntldr程序在完成了初始化工作之后就会从硬盘上读取boot.ini 文件,并根据其中的内容判断计算机上安装了几个Windows,它们分别安装在第几块硬盘的第几个分区上。

如果只安装了一个,那么就直接跳过这一步。

但如果安装了多个,那么ntldr就会根据文件中的记录显示一个操作系统选择列表,并默认持续30秒。

如果你没有选择,那么30秒后,ntldr会开始载入默认的操作系统。

至此操作系统选择这一步已经成功完成。

小知识:系统盘(System Volume)和引导盘(Boot Volume)这是两个很容易被人搞混的概念。

根据微软的定义,系统盘是指保存了用于引导Windows的文件(根据前面的介绍,我们已清楚,这些文件是指ntldr、boot.ini等)的硬盘分区/卷;而引导盘是指保存了Windows系统文件的硬盘分区/卷。

如果只有一个操作系统的话,我们通常会将其安装在第一个物理硬盘的第一个主分区(通常被识别为C盘)上,那么系统盘和引导盘属于同一个分区。

但是,如果Windows安装到了其他分区中,例如D盘中,那么系统盘仍然是C盘(因为尽管Windows被安装到了其他盘,但是引导系统所用的文件还是会保存在C盘的根目录下),但您的引导盘将会变成是D盘。

很难理解保存了引导系统所需文件的分区被叫做“系统盘”,而保存了操作系统文件的分区被叫做“引导盘”,不过这是出自微软的定义。

硬件检测:这一过程中主要需要用到和Ntldr。

当我们在前面的操作系统选择阶段选择了想要载入的Windows系统之后,首先要将当前计算机中安装的所有硬件信息收集起来,并列成一个表,接着将该表交给Ntldr(这个表的信息稍后会被用来创建注册表中有关硬件的键)。

这里需要被收集信息的硬件类型包括:总线/适配器类型、显卡、通讯端口、串口、浮点运算器(CPU)、可移动存储器、键盘、指示装置(鼠标)。

至此,硬件检测操作已经成功完成。

配置文件选择:这一步也不是必须的。

只有在计算机(常用于笔记本电脑)中创建了多个硬件配置文件的时候才需要处理这一步。

小知识:硬件配置文件:这个功能比较适合笔记本电脑用户。

如果你有一台笔记本电脑,主要在办公室和家里使用,在办公室的时候可能会使用网卡将其接入公司的局域网,公司使用了DHCP服务器为客户端指派IP地址;但是回到家之后,没有了DHCP服务器,启动系统的时候系统将会用很长时间寻找那个不存在的DHCP服务器,这会延长系统的启动时间。

在这种情况下就可以分别在办公室和家里使用不同的硬件配置文件了,我们可以通过硬件配置文件决定在某个配置文件中使用哪些硬件,不使用哪些硬件。

例如前面的例子,我们可以为笔记本电脑在家里和办公室分别创建独立的配置文件,而家庭用的配置文件中会将网卡禁用。

这样,回家后使用家用的配置文件,系统启动的时候会直接禁用网卡,也就避免了寻找不存在的DHCP服务器延长系统启动时间。

如果Ntldr检测到系统中创建了多个硬件配置文件,那么它就会在这时候将所有可用的配置文件列表显示出来,供用户选择。

这里其实和操作系统的选择类似,不管系统中有没有创建多个配置文件,Ntldr都会进行这一步操作,不过只有在确实检测到多个硬件配置文件的时候才会显示文件列表。

载入内核阶段:在这一阶段,ntldr会载入Windows XP的内核文件:Ntoskrnl.exe,但这里仅仅是载入,内核此时还不会被初始化。

随后被载入的是硬件抽象层(hal.dll)。

硬件抽象层其实是内存中运行的一个程序,这个程序在Windows XP内核和物理硬件之间起到了桥梁的作用。

正常情况下,操作系统和应用程序无法直接与物理硬件打交道,只有Windows内核和少量内核模式的系统服务可以直接与硬件交互。

而其他大部分系统服务以及应用程序,如果想要和硬件交互,就必须通过硬件抽象层进行。

小知识:硬件抽象层:硬件抽象层的使用主要有两个原因:第一,忽略无效甚至错误的硬件调用。

如果没有硬件抽象层,那么硬件上发生的所有调用甚至错误都将会反馈给操作系统,这可能会导致系统不稳定。

而硬件抽象层就像工作在物理硬件和操作系统内核之间的一个过滤器,可以将认为会对操作系统产生危害的调用和错误全部过滤掉,这样直接提高了系统的稳定性;第二,多平台之间的转换?译。

这个?因可以列举一个形象的例子,假设每个物理硬件都使用不同的语言,而每个操作系统组件或者应用程序则使用了同样的语言,那么不同物理硬件和系统之间的交流将会是混乱而且很没有效率的。

如果有了硬件抽象层,等于给软硬件之间安排了一位?译,这位?译懂所有硬件的语言,并会将硬件说的话用系统或者软件能够理解的语言?意转达给操作系统和软件。

通过这个机制,操作系统对硬件的支持可以得到极大的提高。

硬件抽象层被载入后,接下来要被内核载入的是HKEY_LOCAL_MACHINESystem注册表键。

Ntldr会根据载入的Select键的内容判断接下来需要载入哪个Control Set注册表键,而这些键会决定随后系统将载入哪些设备驱动或者启动哪些服务。

这些注册表键的内容被载入后,系统将进入初始化内核阶段,这时候ntldr会将系统的控制权交给操作系统内核。

初始化内核阶段:当进入到这一阶段的时候,计算机屏幕上就会显示Windows XP的标志了,同时还会显示一个滚动的进度条,这个进度条可能会滚动若干次。

从这一步开始我们才能从屏幕上对系统的启动有一个直观的印象。

在这一阶段中主要会完成四项任务:创建Hardware注册表键、对Control Set注册表键进行复制、载入和初始化设备驱动,以及启动服务。

创建Hardware注册表键:首先要在注册表中创建Hardware键,Windows内核会使用在前面的硬件检测阶段收集到的硬件信息来创建HKEY_LOCAL_MACHINEHardware键。

也就是说,注册表中该键的内容并不是固定的,而是会根据当前系统中的硬件配置情况动态更新。

对Control Set注册表键进行复制:如果Hardware注册表键创建成功,那么系统内核将会对Control Set键的内容创建一个备份。

这个备份将会被用在系统的高级启动菜单中的“最后一次正确配置”选项。

例如,如果我们安装了一个新的显卡驱动,重启动系统之后Hardware注册表键还没有创建成功系统就已经崩溃了,这时候如果选择“最后一次正确配置”选项,系统将会自动使用上一次的Control Set注册表键的备份内容重新生成Hardware键,这样就可以撤销掉之前因为安装了新的显卡驱动对系统设置的更改。

载入和初始化设备驱动:在这一阶段里,操作系统内核首先会初始化之前在载入内核阶段载入的底层设备驱动,然后内核会在注册表的HKEY_LOCAL_MACHINESystemCurrentControlSetServices键下查找所有Start键值为“1”的设备驱动。

这些设备驱动将会在载入之后立刻进行初始化,如果在这一过程中发生了任何错误,系统内核将会自动根据设备驱动的“ErrorControl”键的数值进行处理。

“ErrorControl”键的键值共有四种,分别具有如下含义:0 忽略,继续引导,不显示错误信息。

1 正常,继续引导,显示错误信息。

2 恢复,停止引导,使用“最后一次正确配置”选项重启动系统。

如果依然出错则会忽略该错误。

3 严重,停止引导,使用“最后一次正确配置”选项重启动系统。

如果依然出错则会停止引导,并显示一条错误信息。

启动服务:系统内核成功载入,并且成功初始化所有底层设备驱动后,会话管理器会开始启动高层子系统和服务,然后启动Win32子系统。

Win32子系统的作用是控制所有输入/输出设备以及访问显示设备。

当所有这些操作都完成后,Windows的图形界面就可以显示出来了,同时我们也将可以使用键盘以及其他I/O设备。

相关文档
最新文档