系统的启动分三个步骤。第一个步骤从接通电源开始,系统BIOS对硬件设备进行例行的加电自检,即所谓的POST检查,包括RAM检查、软硬驱和CD-ROM驱动器检测等。
系统的启动分三个步骤。第一个步骤从接通电源开始,系统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程序之前装入它们。预读取技术的关键是学习以前的启动过程,对于启动过程中要用到的各种文件,优化其装入模式。这种优化技术也被用到了应用软件上,系统对每一个应用软件的前几次启动情况进行分析,然后创建一个描述应用需求的虚拟“内存映像”,并把这些信息保存到WINDOWS\PREFETCH文件夹。一旦建立了映像,应用软件的装入速度大大提高。XP的预读取数据保存了最近8次系统启动或应用软件启动的信息。
通过一个简单的试验可看出预读取技术的作用:删除WINDOWS\PREFETCH目录下与某个应用软件对应的预读取数据,然后看看有预读取数据与无预读取数据的差别。以Word为例,如果你以前没有用过它,首先启动几次,再按正常方式使用它;然后,记录从点击图标开始Word需要多长的启动时间。接下来,删除WINDOWS\PREFETCH目录下所有WINWORD.EXE.*.PF文件,再次点击Word图标启动它,看看它需要多长的启动时间。可以看到,两次启动之间的时间差非常大。不过不用担心,Win XP将再次开始为Word收集预读取数据,几次启动之后,Word启动速度又会变得很快。对于启动装载器,也有作用原理类似的预读取数据文件,但如果仅仅为了试验,最好不要删除它。
简要说明一下PREFETCH文件夹下的文件的命名规则。如前所述,每一个应用(包括XP的启动过程)都在PREFETCH目录下有对应的预读取文件,预读取文件描述了应用启动时各个模块的装载次序。预读取文件的名字以应用执行文件的名字为基础,加上一个“-”和描述执行文件完整路径的十六进制值,再加上文件扩展名.PF,例如MMC.EXE-461B77C5.pf。但是,无论在哪一个系统上,XP启动预读取文件总是同一个名字,即 NTOSBOOT-B00DFAAD.PF。