论文部分内容阅读
在Win8消费者预览版发布会上,微软现场展示一部台式机的开机速度,达到了惊人的8秒!8秒,我们很多手机的开机速度都无法达到,Win8是如何做到的呢?
传统开机流程
对于Win7系统,传统的按下电源按钮开机流程是这样的:
第一步:查找硬盘主引导记录(MBR),接着MBR读取硬盘分区表(DPT)。
第二步:找到活动主分区,读取活动主分区的分区引导记录,接着根据引导记录查找该分区根目录下的BOOTMGR。
第三步:BOOTMGR读取\boot\bcd文件并根据BCD记录列出操作系统启动菜单,接着加载winload.exe,然后通过其加载Win7内核。
第四步:加载必需的硬件和服务,进入Win7桌面。
极速开机的背后推手—混合启动技术
从上面的启动流程我们可以知道,第一步和第二步是操作系统启动之前的硬件读取,这和操作系统版本没有关系,对于第三步,Win8启动内核和Win7大致相同。因此Win8极速开机的秘密就在于启动的第四步(这也是整个开机过程中最耗费时间的步骤),这就是Win8新增的混合启动技术(Hybrid Boot)。
Win8引入的混合启动技术,是通过睡眠技术扩展而实现。传统的休眠是指系统自动将内存中的数据全部转存为休眠文件(即C:\ hiberfil.sys)。接着会切断所有设备的供电进入休眠状态。恢复操作时系统读取上次转存到C:\hiberfil.sys文件中的数据,读取完毕即恢复原来的操作状态(图1)。
Win8的睡眠则做了进一步的改进,当我们在Win8选择睡眠关机时(单击关机菜单电源按钮即可),Win8会将系统大部分的核心系统,如驱动、系统服务等压缩写入內存,然后通过处理器将用户数据写入休眠文件hiberfil.sys中(也就是用户目前工作状态,如开着的Word文档),将Metro程序写入交换文件中(即Win8新增的C:\ swapfile.sys,因为Metro程序没有关闭按钮,切换到其他程序时Metro程序会自动挂起到后台运行)。当数据全部写入完成后,Windows通知固件进行关机。这样当我们下次按下电源键时(前提是插座电源没有断开,电脑仍然在通电状态下),系统会直接通过唤醒系统內存来启动上次写入的数据,再读取休眠文件和交换文件,然后将上次关机前的状态呈现在你的面前,这就是Win8的混合启动技术(图2)。
很显然,Win8混合启动的极速是依赖上一次的睡眠关机而存在的,这种新技术从上一次的关机开始就为下次开机做足了准备(省去了系统內核、硬件以及各项服务初始化所需的时间)。由于内存的读写速度很快,而其中保存的是上次已经进入系统后成功加载的数据(比如自启动的服务、加载的硬件设备),所以Win8的混合启动所花的时间实际上是“读取内存数据时间+读取休眠文件和交换文件时间”。对于开机时间的定义大多是指按下电源键到出现桌面的时间(不包括启动用户程序所花的时间),Win8混合启动时间主要就是指读取内存数据所花的时间。由于内存的读写速度较快,因此对于配置较高的电脑,这个内存数据读取时间(8秒)是很有可能的,这也是Win8发布会上台式机8秒开机的秘密所在!
传统开机流程
对于Win7系统,传统的按下电源按钮开机流程是这样的:
第一步:查找硬盘主引导记录(MBR),接着MBR读取硬盘分区表(DPT)。
第二步:找到活动主分区,读取活动主分区的分区引导记录,接着根据引导记录查找该分区根目录下的BOOTMGR。
第三步:BOOTMGR读取\boot\bcd文件并根据BCD记录列出操作系统启动菜单,接着加载winload.exe,然后通过其加载Win7内核。
第四步:加载必需的硬件和服务,进入Win7桌面。
极速开机的背后推手—混合启动技术
从上面的启动流程我们可以知道,第一步和第二步是操作系统启动之前的硬件读取,这和操作系统版本没有关系,对于第三步,Win8启动内核和Win7大致相同。因此Win8极速开机的秘密就在于启动的第四步(这也是整个开机过程中最耗费时间的步骤),这就是Win8新增的混合启动技术(Hybrid Boot)。
Win8引入的混合启动技术,是通过睡眠技术扩展而实现。传统的休眠是指系统自动将内存中的数据全部转存为休眠文件(即C:\ hiberfil.sys)。接着会切断所有设备的供电进入休眠状态。恢复操作时系统读取上次转存到C:\hiberfil.sys文件中的数据,读取完毕即恢复原来的操作状态(图1)。
Win8的睡眠则做了进一步的改进,当我们在Win8选择睡眠关机时(单击关机菜单电源按钮即可),Win8会将系统大部分的核心系统,如驱动、系统服务等压缩写入內存,然后通过处理器将用户数据写入休眠文件hiberfil.sys中(也就是用户目前工作状态,如开着的Word文档),将Metro程序写入交换文件中(即Win8新增的C:\ swapfile.sys,因为Metro程序没有关闭按钮,切换到其他程序时Metro程序会自动挂起到后台运行)。当数据全部写入完成后,Windows通知固件进行关机。这样当我们下次按下电源键时(前提是插座电源没有断开,电脑仍然在通电状态下),系统会直接通过唤醒系统內存来启动上次写入的数据,再读取休眠文件和交换文件,然后将上次关机前的状态呈现在你的面前,这就是Win8的混合启动技术(图2)。
很显然,Win8混合启动的极速是依赖上一次的睡眠关机而存在的,这种新技术从上一次的关机开始就为下次开机做足了准备(省去了系统內核、硬件以及各项服务初始化所需的时间)。由于内存的读写速度很快,而其中保存的是上次已经进入系统后成功加载的数据(比如自启动的服务、加载的硬件设备),所以Win8的混合启动所花的时间实际上是“读取内存数据时间+读取休眠文件和交换文件时间”。对于开机时间的定义大多是指按下电源键到出现桌面的时间(不包括启动用户程序所花的时间),Win8混合启动时间主要就是指读取内存数据所花的时间。由于内存的读写速度较快,因此对于配置较高的电脑,这个内存数据读取时间(8秒)是很有可能的,这也是Win8发布会上台式机8秒开机的秘密所在!