Windows启动顺序详解

Windows7之家(www.win7china.com):究竟怎么开机的,Windows启动顺序详解


//2013-2-18 11:26:55


Windows开机启动过程

参与启动过程的软硬件(按先后顺序):


(1) ROM(Read Only Memory)中POST(Power On Self-Test)代码(固化在主板芯片中);


(2) BIOS(Basic Input/Output System,起始地址位于0x7fffffff)/EFI(Extended Firmware Interface);


(3) MBR(Main Boot Record):硬盘固定位置的一个分区;


(4) 引导扇区(Boot sector):一个扇区占512Byte;


(5) NTLDR(NTLoader,NT系统)/WinLoad(Vista系统);


(6) NTOSKRNL/HAL/BOOTVID/KDCOM;


(7) SMSS.EXE;


(8) CSRSS.EXE;


(9) WinLogon.EXE;


(10) Explorer.EXE:Windows的Shell。




本文详细阐述Windows操作系统的启动顺序,以方便IT从业者对Windows启动问题的分析和解决。




Windows的启动过程包括以下几个阶段:




启动自检阶段




这个阶段主要是读取 BIOS ,然后内存,CPU,硬盘,键盘等设备进行自检。这个阶段在屏幕上显示就是自检的那些打印信息。




屏幕显示:自检的打印信息




初始化启动阶段




这个阶段根据 BIOS 指定的启动顺序,找到可以启动的优先启动设备,比如本地磁盘,CD Driver , USB 设备等等,然后准备从这些设备启动系统。




屏幕显示:黑屏




Boot 加载阶段




这个阶段首先从启动分区(比如 C 盘) 加载 Ntldr ,然后Ntldr 做如下设置:




1.内置内存模式,如果是 x86 的处理器,并且操作系统是 32位,则设置为 32-bit flat memory mode,如果是 64 位操作系统 + 64位处理器,则设置为64位内存模式。




2.启动文件系统




3.读取 boot.ini 文件




屏幕显示:黑屏,如果按F8或者多系统时会显示启动选项菜单。




检测和配置硬件阶段




这个阶段检查和配置一些硬件设备,它们分别是:


—系统固件,比如时间和日期


—总线和适配器


—显示适配器


—键盘


—通讯端口


—磁盘


—软盘


—输入设备(如鼠标)


—并口


—在ISA总线上运行的设备




屏幕显示:黑屏




内核加载阶段




在内核加载阶段,Ntldr 将首先加载Windows内核 Ntoskrnl.exe 和 硬件抽象层 (HAL). HAL 有点类似于嵌入式操作系统下的BSP(Borad support package),这个抽象层对硬件底层的特性进行隔离,对操作系统提供统一的调用接口,操作系统移植到不同硬件时只要改变相应的 HAL 就可以,其它的内核组件不需要修改,这个是操作系统通常的设计模式。




接下来Ntldr 从HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet 下读取这台机器安装的驱动程序,然后依次加载驱动程序。




驱动程序加载完成后,Windows做如下设置:




1. 创建系统环境变量




2. 启动 win32.sys ,这个是Windows子系统的内核模式部分。




3. 启动 csrss.exe,这个是Windows子系统的用户模式部分。




4. 启动 winlogon.exe




5. 创建虚拟内存页面文件




6. 对一些必要的文件进行改名,(主要是驱动文件,如果更新后,需要在下次重启前改名)








屏幕显示:显示Windows logo 界面和进度条




登录阶段




这个阶段会做如下几件事:




1. 启动机器上安装的所有需要自动启动的Windows服务




2. 启动本地安全认证 Lsass.exe




3. 显示登录界面




屏幕显示:显示登录界面