北京8k不锈钢板:windows 开机流程

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 06:16:49

windows 开机流程


一.预启动
    按动计算机启动按钮后,首先通电进行自检,并由BIOS(即基本输入输出系统)完成基本硬件配置。然后读取硬盘的MBR(主引导记录),检查硬盘分区表以确定引导分区,并将引导分区上的操作系统引导扇区调入内存中执行,此时即执行NTLDR(操作系统加载器)文件。
二.启动
       1.首先进行初始化——NTLDR会把处理器转换为32位保护模式,根据实验它还包含“Windows系统选择菜单”和“Windows高级选项菜单”(就是按F8后那一溜选项菜单)中显示的内容.
    2.读取BOOT.INI文件。该文件作用是使系统在启动过程中出现选择菜单,由用户选择希望启动的操作系统。如果选择启动 Windows2000/XP,NTLDR会继续引导进行以下过程;如果选择为非Windows2000/XP系统,NTLDR则会读取系统引导扇区副本 BOTSECT.DOS转入启动相应系统。
    * 其中BOOT LOADER即操作系统加载器,指定系统选择菜单默认等待时间和默认引导的操作系统。可手工修改或在控制面板中修改。为保险起见,建议在控制面板中修改。依次选择控制面板-〉系统-〉高级->启动和故障恢复,即可更改相关设置。
    3.系统加载NTDETECT.COM文件。由它来检测机器硬件,如并行端口、显示适配器等等,并将收集到的硬件列表返回NTLDR用于以后在注册表中注册保存。
    4.如果Windows2000/XP有多个硬件配置文件,此时会出现选择菜单,等待用户确定要使用的硬件配置文件,否则直接跳过此步,启用默认配置。
    * 硬件配置文件是指保存计算机特定硬件配置的系统文件。可以创建多个不同的硬件配置文件以满足计算机在不同场合的应用。可以依次选择控制面板-〉系统->硬件-〉硬件配置文件作出修改。
三.装载内核
   引导过程开始装载Windows2000/XP内核NTOSKRNL.EXE。这个文件位于Windows2000/XP安装文件夹下的SYSTEM32文件夹中。随后,硬件抽象层(HAL)被引导进程加载,完成本步骤。
   * 硬件抽象层(HAL):隐藏特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
四.初始化内核
    内核完成初始化,NTLDR将控制权转交Windows2000/XP内核,后者开始装载并初始化设备驱动程序,以及启动WIN32子系统和WINDOWS2000/XP服务。
五.用户登录
   开始登录进程。由WIN32子系统启动WINLOGON.EXE,并由它启动LOCAL SECURITY AUTHORITY(LSASS.EXE)显示登录对话框。用户登录后,WINDOWS2000/XP会继续配置网络设备和用户环境。最后,伴随着微软之声和我们熟悉的个性化桌面,WINDOWS2000/XP的启动过程终于完成

这个原理可复杂了。下面究讲Windows XP的,估计你多半也看不懂。
强制关机则是给CPU一个强制的中断信号,释放内存中的所有东西,关闭电源,不会保存当前的任何东西。

一般来说,Windows XP的启动过程,主要包括以下几个步骤:电源开启自检过程->初始化启动过程->引导程序载入过程->检测和配置硬件过程->内核加载过程->用户登录过程->即插即用设备的检测过程。

一、电源开启自检过程 

  在打开计算机电源时,首先开始电源启动自检过程。在BIOS中包含一些基本的指令,能够帮助计算机在没有安装任何操作系统的情况下进行基本的启动。电源启动自检过程首先会从BIOS中载入必要的指令,然后进行如下一系列的自检操作: 

进行硬件的初始化检查,例如检查内存的容量等。 

验证用于启动操作系统的设备是否正常,例如,检查硬盘是否存在等。 

从CMOS中读取系统配置信息。 

  在完成了电源启动的自检之后,每个带有固件的硬件设备,如显卡和磁盘控制器,都会根据需要完成内部的自检操作。 

二、初始化启动过程 

  在完成了电源启动自检过程之后,存储在CMOS中的设置,例如磁盘的引导顺序等,能够决定由哪些设备来引导计算机。例如,可以设置磁盘的引导顺序为首先通过A盘引导,其次才通过C盘引导,则系统会首先尝试用A盘引导系统,如果A盘存在并可引导,则通过A盘引导。如果A盘不存在,则通过C盘引导系统。如果A盘存在,但不是引导盘,则系统地提示系统不可引导。 

  一般来说通常会使用硬盘引导。在进行硬盘引导时,启动过程通常按照如下的步骤进行: 

系统首先检测打开电源的硬盘。 

若该硬盘是启动盘,BIOS就将主引导记录(Main Boot Record――MBR)中的引导代码载入内存。 

接着,BIOS会将启动过程的运行交给MBR来进行。 

计算机搜索MBR中的分区表,找出活动分区(Active Partition)。 

计算机将活动分区的第一个扇区中的引导代码载入到内存。 

引导代码检测当前使用的文件系统是否可用。 

引导代码查找ntldr文件,找到之后启动它。 

BIOS将控制权转交给ntldr,由ntldr完成操作系统的启动。 

  注意:这里简单介绍一下MBR的概念。MBR位于启动磁盘的第一个扇区,其中主要包含引导代码(Boot Code)和分区表(Partition Table)数据。引导代码主要用于引导系统。而分区表则主要用于标识基本分区和扩展分区。 

三、引导程序载入过程 

  本过程主要由ntldr 文件完成。Ntldr从引导分区载入启动文件,然后完成如下一些任务。 

1、在基于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位下分段存取内存的不便。这也是为什么32位模式称作Flat内存模式的原因。 
2、启动文件系统 

  ntldr 中包含相应的代码,能够帮助Windows XP完成对NTFS或FAT格式的磁盘进行读写。从而能够读取、访问和复制文件。 

3、读取boot.ini 文件 

  在这一步中,ntldr 会分析boot.ini文件,确定操作系统分区所在的位置。 

  对于单引导的系统来说,ntldr 会通过启动ntdetect.com来初始化硬件检测状态。 

  对于多引导系统来说,首先由用户在操作系统菜单中选择要启动的操作系统然后而由ntldr进行相应的操作。 

  如果用户选择启动ntdetect.com来初始化硬件检测状态。 

  如果选择启动旧式的微软操作系统,如MS-DOS、Windows 9x/ME,ntldr会将从bootsect.dos文件中读取MBR代码,然后将控制权交给bootsect.dos中的MBR。 

4、根据需要提供启动菜单 

  在这一步,如果用户按下F8键,则会显示启动菜单,允许用户选择不同的启动方式,例如使用安全方式启动,或是使用最后一次正确的配置启动等。 

5、检测硬件和硬件配置 

  在这一步中,ntldr 启动ntdetect.com文件进行基本的设备检查,然后将 boot.ini文件中的信息,以及注册表中的硬件和软件信息传递给ntoskrnl.exe 程序。 

四、检测和配置硬件过程 

  在处理完boot.ini文件之后,ntldr会启动ntdetect.com程序。在基于X86的系统中,ntdetect.com会通过调用系统固件程序收集安装的硬件信息,然后由ntdetect.com将这些信息传递送回ntldr。Ntldr获取从ntdetect.com发来的信息后,将这些信息组织成为内部的断气结构形式,然后由ntldr 启动ntoskrnl.exe ,并将这些信息发送给它。 

  Ntdetect.com 会收集如下类型的硬件信息: 

系统固件信息,例如时间和日期等 

总线适配器的类型 

显卡适配器的类型 

键盘 

通信端口 

磁盘 

软盘 

输入设备,例如鼠标 

并口 

安装在ISA槽中的ISA设备 

  完成信息的检测之后,Windows XP会在屏幕上显示那个著名的Windows XP商标,并显示一个滚动的,告诉用户Windows 的启动进程。 
五、内核加载过程 

  在此过程中,ntldr实施下列一些功能。 

1、将内核(ntoskrnl.exe)和硬件抽象层(hal.dll)载入到内存 

2、加载控制集信息 

  在这一过程中,ntldr从注册表中的HKEY_LOCAL­_MACHINE\SYSTEM位置加载相应的控制集(Control Set)信息,并确定在启动过程中要加载的设备驱动。 

3、加载设备驱动程序和服务 

  在这一步中,系统会在BIOS的帮助下开始加载设备驱动程序,以及服务。 

4、启动会话管理器 

  完成上面的过程之后,内核会启动会话管理器(Session Manager),这是一个名为smss.exe 的程序,其作用表现如下: 

(1)创建系统环境变量 

(2)创建虚拟内存页面文件 

六、用户登录过程 

  在这一过程中,Windows 子系统会启动winlogon.exe,这是一个系统服务,用于提供对Windows 用户的登录和注销的支持。Winlogon.exe 可以完成如下一些工作: 

  启动服务子系统(services.exe),也称服务控制管理器(Service Control Manager, SCM)。 

  启动本地安全授权(Local Security Authority , LSA)过程(lsass.exe)。 

  在开始登录提示的时候,对Crtl+Alt+Del组合键进行分析处理。 

  一个图形化的识别和认证组件收集用户的帐号和密码,然后将这些信息安全地传送给LSA以进行认证处理。如果用户提供的信息是正确的,能够通过认证,就允许用户对系统进行访问。 

  要注意的是,如果您的计算机中,只有Administrator这一个用户,那么在欢迎屏幕中就会显示Administrator 用户项。如果您的计算机中不仅有Administrator用户,还有别的可以交互登录的用户,那么欢迎屏幕中就只显示出Administrator之外的用户,而不显示Administrator用户。 

  如果用户希望以Administrator用户登录,该怎么办呢?实际很简单,直接在欢迎屏幕中按下两次Crtl+Alt+Del组合键,即可打开标准的登录窗口,可以再输入Administrator 的用户名和密码,以便用最高管理员的身份登录。 

七、即插即用设备的检测过程 

  对即插即用设备的检测,实际上是和登录过程异步进行的。由系统固件、硬件、设备驱动和系统特性决定了Windows XP如何对新设备进行检测和枚举。当即插即用组件正常工作后,Windows XP会对新设备进行检测,为它们分配系统资源,并在尽量不要用户提供选择的情况下,为新设备安装一个合适版本的驱动程序。 

  至此,Windows XP已成功启动