优化Windows XP启动

内容摘要

系统的启动分三个步骤。第一个步骤从接通电源开始,系统BIOS对硬件设备进行例行的加电自检,即所谓的POST(Power On Self Test)检查,包括RAM检查、软硬
文章正文
    系统的启动分三个步骤。第一个步骤从接通电源开始,系统BIOS对硬件设备进行例行的加电自检,即所谓的POST(Power On Self Test)检查,包括RAM检查、软硬驱和CD-ROM驱动器检测等。接着,BIOS读取活动分区主引导记录MBR(Master Boot Record)的启动装载器。最后,当启动装载器初始化完成之后,操作系统启动过程正式开始。启动操作系统涉及到大量的任务,因此耗时也最长,典型的任务包括启动操作系统内核、装载磁盘卷、装入设备驱动程序、读取注册信息、寻找新硬件设备、初始化显示设备和显示出用户界面等。
 
  同时,它还要连接网络,以及实施各种用户自定义的配置,例如安全配置等。Win XP通过与硬件更有效地协作,加速了启动过程。

  如果你正打算购买运行XP的新主板,可考虑该主板的BIOS是否支持SBFS,即Simple Boot Flag Specification,或“简单引导标记规范”,这种BIOS能够更好地与操作系统配合优化启动速度,例如最大限度地降低BIOS内存检测时间、不再为即插即用的操作系统初始化设备等等。

  Win XP的NTLDR启动装载器也进行了优化。启动装载器的任务是读取和装入操作系统内核和相关系统文件。在Win XP中,启动装载器缓存了文件和目录信息,只需一个I/O周期即可读入系统文件,显著地提高了装入操作系统内核的速度。XP的内核也为提高启动速度进行了优化,现在,磁盘I/O操作和设备初始化操作可在一定程度上交迭,即在读取磁盘的同时检测设备和把驱动程序装入内存。另外,针对XP编写的驱动程序必须做到,只有即将使用的设备才会被初始化。在XP中,网络也在系统启动的时候而不是以后初始化。

  Win XP利用“预读取”技术,在实际用到设备驱动程序、服务和shell程序之前装入它们。预读取技术的关键是学习以前的启动过程,对于启动过程中要用到的各种文件,优化其装入模式。这种优化技术也被用到了应用软件上,系统对每一个应用软件的前几次启动情况进行分析,然后创建一个描述应用需求的虚拟“内存映像”,并把这些信息保存到WINDOWSPREFETCH文件夹。一旦建立了映像,应用软件的装入速度大大提高。XP的预读取数据保存了最近8次系统启动或应用软件启动的信息。

    通过一个简单的试验可看出预读取技术的作用:删除WINDOWSPREFETCH目录下与某个应用软件对应的预读取数据,然后看看有预读取数据与无预读取数据的差别。以Word为例,如果你以前没有用过它,首先启动几次,再按正常方式使用它;然后,记录从点击图标开始Word需要多长的启动时间。接下来,删除WINDOWSPREFETCH目录下所有WINWORD.EXE.*.PF文件,再次点击Word图标启动它,看看它需要多长的启动时间。可以看到,两次启动之间的时间差非常大。不过不用担心,Win XP将再次开始为Word收集预读取数据,几次启动之后,Word启动速度又会变得很快。对于启动装载器,也有作用原理类似的预读取数据文件,但如果仅仅为了试验,最好不要删除它。

  简要说明一下PREFETCH文件夹下的文件的命名规则。如前所述,每一个应用(包括XP的启动过程)都在PREFETCH目录下有对应的预读取文件,预读取文件描述了应用启动时各个模块的装载次序。预读取文件的名字以应用执行文件的名字为基础,加上一个“-”和描述执行文件完整路径的十六进制值,再加上文件扩展名.PF,例如MMC.EXE-461B77C5.pf。但是,无论在哪一个系统上,XP启动预读取文件总是同一个名字,即NTOSBOOT-B00DFAAD.PF。

  预读取数据也为Win XP的磁盘整理工具提供帮助。有关最优预读取次序的信息保存在WINDOWSPREFETCH目录下的Layout.ini文件,你可以用记事本打开这个文件,看看Win XP认为应该怎样安排文件在磁盘上的物理位置才能达到最快的启动速度。磁盘整理工具转移文件位置的依据正是在此。实际上,当Win XP觉察到计算机处于空闲状态时,它会不失时机地运行磁盘整理工具并尝试优化文件的位置。

  Win XP具有缓冲网络连接和配置的能力,这使得XP能够比以前的Windows更快地响应网络操作。默认情况下,Win XP优先使用缓冲的网络视图,而不是实时检测到的网络视图。这就是说,当你打开网络视图时,Win XP显示的实际上是以前缓冲的网络视图,同时它在后台尝试建立连接。这种处理方式减少了网络操作延迟时间,即使网络上域、DHCP或DNS服务器出现故障也给用户流畅的操作感觉。

  下面我们来看看如果主板BIOS不支持SBFS规范,应当如何优化系统。由于不同厂商的BIOS菜单不尽相同,这里只能给出要关注的几个项目,BIOS实际显示的菜单或选项名字可能有所出入:

  启用Quick POST(快速开机自检)。此举将禁止全面内存检查、启动Logo之类的操作。

  禁用Boot up floppy seek(启动时搜寻软驱),搜寻软驱会耗用一定的启动时间。

  调整启动设备的次序,最好设置为“C only”(只从硬盘启动)。这不仅提高了启动速度(避免了系统检查不可启动的设备,如没有软盘的软驱),而且也避免了系统从软驱或其他设备启动。有特殊需要时,例如无法用C盘启动,再在BIOS中把启动设备改为软驱或CD-ROM之类的设备。

    启用PnP-OS(即插即用操作系统)。这个选项禁止BIOS检测设备,把检测设备的任务留给操作系统完成。对于主流的Windows操作系统,启用该选项能够显著地减少启动时间。

  对于操作系统,提高启动速度最重要的是禁止各种不必要的程序和服务自动启动。Win XP提供了一个方便的工具:点击“开始”菜单的“运行”,运行msconfig,然后禁止所有不必要的程序自动启动。

  最后推荐一个工具,它能够分析、显示和优化系统的启动过程。这个工具是BootVis,你可从微软下载中心搜索“BootVis”得到,因为下载Url很长,这里就不再给出。下载好之后,解开压缩,点击BootVis.exe运行。关闭其他所有正在运行的软件,选择BootVis的菜单File>New>Next Boot+ Drivers Trace,系统将在15秒内重新启动。重新启动后,稍等,因为有一些文件要写入磁盘——你可以看到相应的提示信息。这个过程结束后,BootVis再次启动,显示出图一所示的图表。有关这些图表的详细说明,可参看BootVis的帮助,这里就不再说明。如果你不想了解BootVis的工作细节,那么,只要知道这些图表说明的是启动过程中装入各个部分所需时间,这就足够了。

\

  如果要优化系统,你应该重复执行上面的过程4-5次。完成后,选择BootVis的菜单Trace>Optimize System,等待重新启动。这一次的启动时间将比以前要长得多。登录Win XP后,立即进行磁盘整理。以后,你就可以好好享受深入优化启动速度之后的感觉了。

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!