关于Win7开机的原理的介绍
每个用电脑的人都知道如何开机~但是你们知道Win7开机的原理是什么么?那么现在就由学习啦小编给大家介绍一下Win7开机的原理:具体内容如下:
1、开启电源
计算机系统将进行加电自检(POST)。如果通过,之后BIOS会读取主引导记录(MBR)——被标记为启动设备的硬盘的首扇区,并传送被 Windows 7建立的控制编码给MBR。
这时,Windows接管启动过程。接下来:MBR读取引导扇区-活动分区的第一扇区。此扇区包含用以启动Windows启动管理器(Windows Boot Manager)程序Bootmgr exe的代码。
2、启动菜单生成
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、登陆后的开机加载项目
OK,我们进入了Win7系统的登陆画面,地球人都知道,当然,还有很多用户朋友们用Win7优化大师中内置的美化大师把这儿改成了个性化的画面。
当您输入您的用户名和密码,登陆进入您的系统那一刻,硬盘吱嘎的叫声(此处不涉及SSD型硬盘)和硬盘灯的再次闪亮提醒您:系统正在加载您这个账户的个人专用设置文件,正在加载当前电脑和当前用户所指定的一些开机启动项目内的软件。这是众多软件(包括木马病毒)最喜欢的地方,什么QQ、MSN、杀毒软件的不说,连电驴和vagaa和一些播放器等等啥的也不放过这些地方,毕竟他们要靠这儿来常驻您的桌面右下角和内存之中,方便进行正当的和不正当的一些工作(此处指的是某些流氓和恶意软件)。当这些加载完毕,您才算真正进入了您的Windows桌面,日常娱乐和工作生活才得以开始。
如果你还是不懂开机原理,或者你用的不是Win7系统。不过没关系,学习啦小编这里还有一个关于全部电脑开机原理的资料可以分享给你:
BootMgr(启动管理器)是Boot Manager的缩写。在微软的Vista、Windows Server 2008和Windows 7操作系统中,启动过程与从前的以NT为内核的windows版本略有不同。BootMgr就相当于NT/2000/XP时代的NTLDR。
电脑加电后首先启动BIOS程序。BIOS自检完毕后,找到硬盘上的主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区,然后读取活动主分区的PBR(分区引导记录,也叫DBR),PBR再搜寻分区内的启动管理器文件BootMgr,并将控制权就交给它。BootMgr读取\boot\bcd文件(BCD=Boot Configuration Data,也就是“启动配置数据”,简单地说,windwows7下的BCD文件就相当于xp下的boot.ini文件),如果存在多个操作系统并且选择操作系统的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。在选择启动Windows 7后,BootMgr就会去启动盘寻找Windows\system32\winload.exe,然后通过winload.exe加载windows 7内核,从而启动系统。可以把这个过程简单地概括为:BIOS-->MBR-->DPT-->PBR-->BootMgr-->BCD-->Winload.exe-->内核加载-->整个windows7系统。
可以说BootMgr就相当于NT/2000/XP的NTLDR。NTLDR是一个隐藏的、只读的引导系统文件,位于系统盘的根目录。它的主要职责是解析Boot.ini文件,用来装载操作系统。一个值得注意的变化是,Windows 7启动管理器是按空格键而不是按F8功能键调用。 F8键依然具有调取高级启动选项菜单的功能。为了保持一个可扩展固件接口系统,也为了使版本最高的启动管理器负责管理所有的操作系统,使启动管理器具备向下兼容、而不是向上兼容,Windows启动管理器对已安装的所有操作系统统一列为一个可供选择的菜单,在配置Windows Vista/Server 2008与Windows 2000/XP/Server 2003 的多系统共存时,BootMgr将全面负责计算机的启动管理工作,NTLDR将沦为BootMgr的替补。举个例子,假设配置了Windows Vista、Windows XP、Windows Server 2008、Windows Server 2003四个操作系统共存,BootMgr启动菜单并不会把Windows XP与Windows Server 2003分别列在启动菜单里,而是将它们统一显示为“早期版本的Windows”。
启动配置数据(BCD)是一种用于启动时的配置数据固件独立数据库。它取代了NTLDR中的boot.ini,由微软新的Windows启动管理器使用。启动配置数据 (BCD) 存储包含启动配置参数,并在Microsoft(R) Windows Vista® 和 Microsoft(R) Windows Server® 2008 操作系统中控制操作系统的启动方式。这些参数以前位于Boot.ini 文件中(在基于 BIOS 的操作系统中)或稳定 RAM (NVRAM) 项中(在基于可扩展固件接口的操作系统中)。通过在 BCD 存储中添加、删除、编辑和附加项,可以使用 Bcdedit.exe 命令行工具来影响在预操作系统环境中运行的 Windows(R) 代码。Bcdedit.exe位于 Windows Vista 分区的 \Windows\System32 目录中。创建 BCD 旨在为描述启动配置数据提供一种改进的机制。随着新固件模型 (例如,可扩展固件接口 (EFI))的发展,用户需要一个可扩展且可互操作的接口以提取底层固件。这一全新的设计为Vista中的多种新功能(例如,启动修复工具和多用户安装快捷方式)提供了支持。
微软的新一代操作系统Windows 7,然而这个7并不是代表Windows 7的核心版本已经从Windows Vista 的NT 6 升级至 NT 7,而只是代表Windows 7是微软正式发行的桌面Windows第七代产品而已。Windows 7 真正的核心版本号仅仅是NT 6.1,Windows 7与 Vista 的关系好比是Windows XP(NT 5.1)与 Windows 2000(NT 5.0)。时隔多年,微软又一次与我们玩起了文字游戏,以至于有人将Windows 7戏称为“NT 6.1 = Windows 非常 6+1 = Windows 7”。 为了更为直观地理解Windows 7 = NT 6+1,不妨从 Windows启动管理器的层面看待这个问题。与容易混淆的Windows正式产品名称相比,启动管理器一直是严格按照Windows系统的核心版本加以区分的。这是由于在配置多操作系统共存时,必须由版本最高的启动管理器负责管理所有的操作系统,启动管理器只具备向下兼容、不具备向上兼容性。因此,启动管理器的版本必须严格按照高低先后的顺序正确排列,而不能像Windows的正式名称一样胡乱设置,否则便有可能无法正确配置多操作系统共存。
例如,Windows 2000/XP/Server 2003之所以都叫做NT 5.X,是因为它们的启动管理器全部都是NTLDR 与BOOT.INI。在配置 2000/XP/Server 2003彼此之间的多系统共存时,每一个操作系统都是由NTLDR与BOOT.INI统一管理的,大家是平起平坐的关系。而做为NT 6.X的Windows Vista/Server 2008则采用了BootMgr与BCD的新式启动管理器,在配置Vista/Server 2008与2000/XP/Server 2003的多系统共存时,BootMgr将全面负责计算机的启动管理工作,NTLDR沦为BootMgr的替补。举个例子,假设配置了Vista、XP、Windows Server 2008、Windows Server 2003四个操作系统共存,BootMgr启动菜单并不会把Windows XP与 Windows Server 2003 分别列在启动菜单里,而是将它们统一显示为“早期版本的 Windows”。只有做为 NT 6.X 的Vista与 Windows Server 2008 才有资格在BootMgr启动菜单中以独立选项的姿态出现。我们只有选择了“早期版本的 Windows”选项,由BootMgr将启动控制权移交给 NTLDR并自动切换为NTLDR 菜单,这时才可以继续选择需要启动Windows XP还是Windows Server 2003。换言之,NTLDR启动菜单就像是BootMgr启动菜单的子菜单一样。
现在再来看一下Windows 7,当在安装有Vista/Server 2008的计算机中安装了Windows 7后,Windows 7会将自己添加在BCD 里,与原有的Windows Vista/Server 2008实现共存,BootMgr启动菜单将显示Windows 7、Windows Vista/Server 2008 及早期版本的 Windows(如果有的话)三个选项。换言之,Windows 7采用的启动管理器依然是BootMgr与BCD,它与Windows Vista/Server 2008 是一个平起平坐的关系。
假如Windows 7的核心版本叫做NT 7的话,那么它应该拿出一个比BootMgr与BCD更高版本的启动管理器才对,由这个新的启动管理器接管BootMgr与BCD的工作。当然,目前在现实中是不存在这样一个启动管理器的,不妨将其假设为Loader v7。那么,当安装了Windows NT 7系统后,Loader v7将自动取代BootMgr与BCD负责计算机的启动管理,到时候只有符合NT 7.X版本的Windows 系统才有资格以独立选项出现在Loader v7菜单中,Windows Vista/Server 2008将被统一显示为“早期版本的 Windows”、Windows XP/Server 2003则将被显示为“更早期版本的 Windows”(当然,如果几年以后真的有Loader v7,到时它究竟还能否向下兼容 Windows XP/Server 2003恐怕很难说了)。
现在,Windows 7虽然正式名称叫做7,但是它并没有拿出这样一款更高级的启动管理器,依然只能依靠BootMgr与BCD、同 Windows Vista/Server 2008 平起平坐,因此 Windows 7的核心版本号还没有资格提升到NT 7的高度,最多只能叫做NT 6.1。可以预见在今后的三五年内,我们的计算机都将长期使用BootMgr与BCD。就像Windows 2000/XP/Server 2003可以并列在一起成为NT 5.X 系列一样、Windows Vista/Server 2008(R2)/Windows 7也可以并列在一起组成一个相对完整的 NT 6.X 家族。
现有的BootMgr与BCD虽然已经很好用,但有一个最大的缺陷就是它始终还是基于纯字符界面的、不是一个支持鼠标操作的 GUI界面,叫做Windows未免有些名不副实。其它操作系统可是早就实现图形方式的启动管理器了,这不得不说是一个遗憾。试想如果开机自检后可以出现一个图形化的启动界面,通过鼠标点击按钮选择操作系统以及安全模式等选项该有多好,期待将来可以实现。目前只有使用ERD Commander等第三方启动管理器软件才可以实现这个目的。