按下电源按钮后,计算机系统将进行加电自检(POST,Power on Self Test)——自检信息一般会显示在显示器上。针对主板、CPU、显卡、内存、硬盘等硬件进行检测. 如果检测到问题,很可能出现屏幕无响应,主板蜂鸣器报警,显示错误无法开机等现象。
自检通过后,BIOS会读取主引导记录(MBR)——被标记为启动设备的硬盘的首扇区,并传送被 Windows 7建立的控制编码给MBR。MBR存放于第一个存储设备中[即第一个硬盘],引导设备可以在BIOS里面进行设置[硬盘、光驱、USB等]此后,由Windows接管启动过程。接下来:MBR读取引导扇区-活动分区的第一扇区。此扇区包含用以启动Windows启动管理器(Windows Boot Manager)程序Bootmgr.exe的代码。
引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤
PS:
系统盘[system volume]:
保存用于引导windows的文件[<XP,ntldr.exe, boot.ini>, <Windows7,bootmgr.exe >]分区;
引导盘[Boot volume]:
保存windows系统的硬盘分区;
Windows启动管理器读取“启动配置数据存储(Boot Confi guration Data store)中的信息。此信息包含已被安装在计算机上的所有操作系统的配置信息,并且用以生成启动菜单。
3、在启动菜单中选择下列动作时
<1> 如果选择的是Windows 7(或Windows Vista),Windows 启动管理器(Windows Boot Manager)运行%SystemRoot%\System32文件夹中的OS loader——Winload.exe。
<2> 如果选择的是自休眠状态恢复Windows 7 或 Vista,那么启动管理器将装载Winresume.exe并恢复先前的使用环境。
<3> 如果在启动菜单中选择的是早期的Windows版本,启动管理器将定位系统安装所在的卷,并且加载Windows NT风格的早期OS loader(Ntldr.exe)——生成一个由boot.ini内容决定的启动菜单。
4、核心文件加载及登录
Windows7启动时,加载其核心文件 Ntoskrnl.exe和hal.dll——从注册表中读取设置并加载驱动程序。接下来将运行Windows会话管理器(smss.exe)并且启动 Windows启动程序(Wininit.exe),本地安全验证(Lsass.exe)与服务(services.exe)进程,完成后,就可以登录系统了。
5、登陆后的开机加载项目
进入了Win7系统的登陆画面。当输入用户名和密码,登陆进入系统那一刻,硬盘吱嘎的叫声的再次闪亮提醒:系统正在加载这个账户的个人专用设置文件,正在加载当前电脑和当前用户所指定的一些开机启动项目内的软件。当这些加载完毕,才算真正进入了Windows桌面,日常娱乐和工作生活才得以开始。
Windows的系统架构:
PS:
below referenced from :http://sourcedaddy.com/windows-7/understanding-the-startup-process.html
The normal startup sequence for Windows 7 is:
Power-on self test (POST) phase.
Initial startup phase.
Windows Boot Manager phase.
Windows Boot Loader phase.
Kernel loading phase.
Logon phase.
This sequence will vary if the computer is resuming from hibernation or if a non-Windows 7 option is selected during the Windows Boot Manager phase. The following sections describe the phases of a normal startup process in more detail.
---------------------------
BIOS=Basic Input/Output System 基本输入输出系统
EFI=Extensible Firmware Interface 可扩展固件接口
两者都是用以把计算机从通电后的状态引导到操作系统的作用。
EFI是运行在32位或者64位模式的,BIOS是16位的。
一个显著的区别是EFI非常模块化,比BIOS容易实现多。BIOS是挂载真实硬件的中断来实现的硬件功能,而EFI则是挂载驱动的方式,更加接近与一个操作系统的感觉。EFI的代码不是如同BIOS那样,直接可以被cpu运行,而是需要EFI驱动的虚拟机来执行,用的是EFI Byte Code。这是一组专用于EFI驱动的虚拟机器指令,必须在EFI驱动运行环境(Driver Execution Environment,或DXE)下被解释运行。这就保证了充分的向下兼容性。一个带有EFI驱动的扩展设备,既可以将其安装在安腾处理器的系统中,也可以安装于支持EFI的新PC系统中,而它的EFI驱动不需要重新编写。这样就无需对系统升级带来的兼容性因素作任何考虑。这是EFI对于BIOS来说的最大的优势,BIOS的开发简直是噩梦,如果要在BIOS上加上个usb支持,都曾经让许多厂家头疼不已。