标题: W I N D O W S 9X 启动全揭秘 [转帖] [打印本页] 作者: 真水ying 时间: 2001-12-17 12:11 标题: W I N D O W S 9X 启动全揭秘 [转帖] W I N D O W S 9X 启动全揭秘
来源:天极网 发布:zwh
自WIN 95发行以来,微软公司坚持对WIN 9X系统内核技术保密,用户难以获得WIN 9X启动过程更底层
的技术资料,它始终是一个黑色的过程。掌握系统的启动过程是全面控制系统和优化系统的关键,现在根
据公开的技术资料和实践经验,仅从应用角度,对WIN 9X(包括95、96(95OSR1)、97(95 OSR2.X)、98、
98SE)的启动过程全面揭密,并对各技术细节加以必要的说明。
WIN 9X家族主要由四个版本系列组成,其中W I N D O W S 95是第一个版本,正是它开创了PC世界新纪元,
并将比尔·盖茨推向世界首富的宝座。该版本并不完善,BUG最多,在推出一个多月后就开始提供修正软
件包。
WIN 96即WIN 95的OSR1版(称其为96,是因其发布于96年,97同此),该版本几乎重写了WIN 95的内核
,纠正了WIN 95在实际应用中的种种问题,由于与WIN 95发布时间太近,流传不广。
WIN 97即WIN 95的OSR2.X,该版本发生了质的飞跃,其最大的变化是提供了新磁盘的格式FAT 32,集
成了Internet浏览器IE 3.0,这表明微软的系统发展战略开始转向因特网。OSR2.X有三种版本,即OSR2.0
、OSR2.1和OSR2.5,其中OSR2.1支持U好好学习和AGP显卡,OSR2.5则提供了IE4.0。由于FAT 32使OSR2.X
与WIN 95和DOS不兼容,微软只将其做为OEM产品而不提供零售版,WIN 97因此也成为WIN 95后最流行的版
本。
WIN 98是以DOS为基石的W I N D O W S系列的最后辉煌。它将因特网技术和操作系统紧密结合,同时提供了
IE4.0和DirectX5.0,但没有提供更激动人心的东西,更象是WIN 97的零售版。
WIN 98 SE是WIN 98的第二版,与WIN 98相比只是提供了IE5.0和DirectX6.1a,别无新意。
W I N D O W S 2000是以W I N D O W S NT为基础的网络操作系统,它已经是与WIN9X截然不同的产品了,而新推
出的W I N D O W S Me则是W I N D O W S 9X的替代产品,但除了借用W I N D O W S 2000的界面外,尚没有更新的发现。
WIN 9X版本沿革比较复杂,其核心却保持着相对的稳定,没有根本性变化,启动过程也几乎完全相同
,这是本文存在的依据。
一、WIN 9X启动概述
WIN 9X的启动过程继承了DOS的传统并进行了必要的扩充,主要由两个阶段组成,即扩展的DOS实模式
启动和GUI(即图形界面)32位保护模式启动,WIN 9X的技术核心集中在后一阶段中。
该启动过程依次由引导记录、IO.SYS、MSDOS.SYS、COMMAND.COM、CONFIG.SYS、AUTOEXEC.BAT、GUI
启动命令WIN.COM和其它必要的相关文件完成,其中与DOS的系统文件完全同名的文件实际上发生了质的变
化。
WIN 95/96提供了彻底的双重启动功能,即用户可以用WIN 95/96和DOS(6.22以下)两种方式启动系统
,互不干扰,解决了新旧系统的兼容问题,最大限度地维护了用户的利益。但为了逐渐摆脱落后的DOS对
PC世界的影响,从WIN 97开始,微软公司尝试限制双重启动功能,使WIN 97/98的启动系统必须修改才能
实现双重启动。目前,双重启动功能在实际上的需要确已越来越少。
二、引导记录
引导记录的作用是将操作系统的核心文件调入内存,以启动系统。
所有系统的引导记录均位于磁盘的起始位置,微机加电启动时,直接从固定位置将引导记录调入内存
,引导系统启动。不同版本系统的引导记录自然不同。
DOS引导记录的版本标志为MSDOS5.0,支持FAT 12(各版本均用于软盘或小于16M的硬盘)、FAT 16磁盘
格式,指定的系统引导文件是IO.SYS、MSDOS.SYS。
WIN 95/96的引导记录与DOS(6.22前独立版本)的完全兼容,版本标志为MSWIN4.0,支持FAT 12、FAT
16磁盘格式,支持双重启动,指定的引导文件是WINBOOT.SYS(IO.SYS在旧版DOS下使用时的文件名)和
IO.SYS、MSDOS.SYS。
WIN 97/98的引导记录与DOS有了本质的区别,版本标志为MSWIN4.1,使用32位指令代码,支持FAT 12
、FAT 16和FAT 32三种磁盘格式,固定引导IO.SYS,这导致不经修改,WIN 97/98不能直接支持双重启动
。
WIN 97/98的全新磁盘格式FAT 32可以支持大容量硬盘,取消了FAT 16的容量限制,与传统的FAT 16
完全不兼容,当然不能为DOS、W I N D O W S 95/96识别。这种磁盘格式下多数原DOS、W I N D O W S 95/96软件均能
正常运行,但与磁盘格式有关的软件如磁盘工具等不能继续使用。由于主流的硬盘容量正在超过8.4G,
FAT 32的应用越来越广。
三、IO.SYS
1、IO.SYS的内部启动菜单
WIN 9X的IO.SYS由原DOS的系统文件IO.SYS、MSDOS.SYS合并而成,提供标准硬件的输入/输出接口和
DOS的中断调用,功能全面增强,它基本上控制着WIN 9X的全部启动过程,是W I N D O W S的DOS实模式的核心
文件。但它需要根据MSDOS.SYS的设置才能实现正常的启动过程。
IO.SYS可由启动功能键改变启动过程,这些功能键对应着启动菜单各选项:
功能键对 应 的 启 动 菜 单 项
F4:Previous MS-DOS version
F5:Safe mode
Shift+F5:Command prompt only
F6:Safe mode with network support
F8:启动时调出启动菜单
Shift+F8:Step-by-step confirmation
系统启动出现“Starting W I N D O W S 95...”时按下功能键即可
IO.SYS提供启动选择菜单,便于用户根据需要选择启动方式:
⑴Normal
正常启动模式(默认的启动方式)
当MSDOS.SYS中的BootWin=0时,选择本项系统将启动旧版DOS
⑵Logged(BOOTLOG.TXT)
正常启动模式,同时在根目录下形成BOOTLOG.TXT
BOOTLOG.TXT记录了启动过程中发生的所有情况,是WIN 9X系统启动过程唯一全面的诊断记录,可供
用户检查启动过程中的问题
⑶Safe mode
安全模式的GUI,屏幕四角有“安全模式”字样不加载CONFIG.SYS、AUTOEXEC.BAT,也不加载启动程
序组中任何程序,只加载最基本硬件配置 (标准VGA模式,无声卡、光驱等),即最简单的GUI启动,用于
纠正因硬件配置等造成的GUI启动问题。系统出现问题无法正常启动时,多数情况下会进入该启动模式,
但该模式能解决的问题非常有限,多用于显示器等配置系统配置主要在控制面板上调整。要进入正常的
GUI,必须重新启动
⑷Step-by-step confirmation
单步执行 W I N D O W S启动
用于确定因系统文件损坏造成的启动故障,该方式仅能确定DOS启动过程中的系统问题,主要修正
Config.sys和Autoexec.bat中存在的问题要确定GUI启动过程中的问题,只能借助BOOTLOG.TXT文件
⑸Command prompt only
仅执行完整的实模式 DOS启动过程,进入纯DOS状态加载全部支持WIN启动的DOS驱动程序,主要用于
只能运行于纯DOS模式下的应用软件或解决严重的系统问题,可用命令WIN启动正常的GUI
⑹Safe mode command prompt only最简单的 DOS启动仅执行最基本的IO.SYS、MSDOS.SYS和
COMMAND.COM三个系统文件,不加载默认驱动程序(HIMEM.SYS、IFSHLP.EXE和SETVER.EXE)和CONFIG.SYS,
AUTOEXEC.BAT,其它的环境默认值同WIN 9X 的设定,该模式无法继续启动正常的或安全模式的GUI,主要
用于处理最严重的系统故障。
⑺Previous MS-DOS version
启动旧版DOS,执行双重启动根目录下应有以.DOS为扩展名保存的五个原DOS系统文件。该选项的出现
由MSDOS.SYS中的参数“BootMulti”控制注意:当MSDOS.SYS中的BootWin=0时,选择本项将启动正常的
WIN 9X系统⑻Safe mode with network support带实模式网络访问的安全模式该选项的出现由MSDOS.SYS
中的参数“NetWork”控制用于排除网络系统的PC故障,可通过实模式网络系统,获得更大的系统支持
2、IO.SYS提供的扩展的DOS默认配置
IO.SYS在启动时与DOS的最大不同,是提供能满足大多数DOS应用的缺省CONFIG.SYS配置,能够自动加
载必要的驱动程序,以保证WIN 9X正常启动,具体内容如下:
HIMEM.SYS :支持1M以上内存,提供扩展内存(XMS)管理保证WIN启动的必需文件
DBLBUFF.SYS :双重缓存驱动程序,仅需要时加载,多用于支持SCSI卡
IFSHLP.EXE :增强的文件管理驱动程序,支持WIN的VFAT系统
保证WIN启动的必需文件
SETVER.EXE :版本登录服务,消除版本限制,仅在DOS下用
Dblspace.bin :DOS 6.0磁盘压缩驱动程序,仅在硬盘被压缩时才加载
Drvspace.bin :DOS 6.22以后的磁盘压缩驱动程序,同上
DOS=HIGH,UMB :将DOS系统移入HMA,以留出更多的常规内存而UMB对系统没有任何作用,
实属摆设
FILES=30 :能打开的最大文件数,能满足大多数应用仅为DOS下使用,WIN 9X不需要
BUFFERS=30 :设置最大的磁盘缓冲区数,能满足大多数应用
仅为DOS使用,WIN 9X不需要
FCBS=4 :文件控制块数,现已极少使用,仅为DOS使用
LASTDRIVE=Z :最大盘符设置,该值设置过小,将无法加载光驱
STACKS=9,256 :设定栈数目、大小,该设置为旧程序使用WIN 9X系统不需要
SHELL=COMMAND.COM/P :指定WIN 9X命令行处理程序
IO.SYS提供的系统环境设置如下:
命令查寻路径 : PATH=C:\W I N D O W S;C:\W I N D O W S\COMMAND
DOS提示符 : PROMPT=$P$G
临时文件目录 : TEMP=TMP=C:\W I N D O W S\TEMP
命令行处理程序位置:COMSEPC=C:\W I N D O W S\COMMAND\COMMAND.COM
IO.SYS提供了较完善的系统配置,使取消CONFIG.SYS、AUTOEXEC.BAT成为可能。出于兼容性考虑,
IO.SYS不加载EMM386.EXE驱动,不提供扩充内存EMS和上位内存UMB。EMM386.EXE在系统搜寻新硬件时可能
引起系统死机,在日常使用时不会有问题。
3、IO.SYS控制下的启动过程
⑴系统启动时,IO.SYS显示“Starting W I N D O W S 95...”,此时可由启动功能键选择启动方式。
⑵IO.SYS根据启动菜单选择和MSDOS.SYS的配置确定启动模式。
⑶若使用原DOS系统,IO.SYS自动将DOS和WIN 9X的系统启动文件对换,然后由原DOS控制系统启动过
程。(即WIN 9X的双重启动过程最终是由IO.SYS控制完成的,与引导记录等无关)
⑷IO.SYS根据启动模式先由CONFIG.SYS进行系统硬件配置,若CONFIG.SYS中没有加载WIN 9X启动的必
需文件(如HIMEM.SYS、IFSHLP.EXE等),系统则根据默认设置自动加载。(如果要加载使用扩展内存的驱动
程序,如EMM386.EXE等,必须在CONFIG.SYS第一行加上HIMEM.SYS驱动,否则由于系统此时未提供扩展内
存,EMM386.EXE等程序将无法运行)
⑸完成CONFIG.SYS等硬件配置后,IO.SYS通过COMMAND.COM调用AUTOEXEC.BAT进行软件配置。
⑹系统根目录下的BOOTLOG.TXT是由IO.SYS控制完成的,其它一些日志文件多是在安装系统时建立的
。
⑺完成DOS启动过程后自动调用WIN.COM,开始启动GUI。
2、MSDOS.SYS的配置参数
MSDOS.SYS由三小节组成,其各配置参数无顺序要求,内容如下:
[PATHS] 指定W I N D O W S的系统文件路径
WinDir= 指定WIN 9X各系统文件及其子目录所在的目录
该路径必须包括注册表文件sys tem.DAT和WIN 9X启动必需的驱动程序,如
HIMEM.SYS等
WinBootDir= 指定WIN 9X的GUI启动程序WIN.COM所在的目录
HostWinBootDrv= 指定WIN.COM所在的驱动器,不需冒号(:)
UninstallDir= 指定保存原系统的目录,便于自身删除时恢复原系统用
该参数出现在WIN的升级版本中
[OPTIONS] 指定W I N D O W S的启动方式,/前的值为缺省值
LOGO=1/0 允许/禁止启动时显示WIN 9X标志(LOGO)
屏蔽该画面有时可解决第三方内存管理程序造成的冲突
看到系统启动过程出现的提示信息,也使系统启动稍快,启动
启动时可用ESC键清除WIN 9X标志,查看实模式启动信息
BootKeys=1/0 允许/禁止启动键改变启动方式
为0时直接进入默认的启动方式,不能用启动热键转换
BootGUI=1/0 启动图形界面GUI / 仅启动DOS 7.X,进入DOS字符界面
为0时可为DOS 7.X多重启动提供方便,能进一步启动图形界面
BootWin=1/0 启动WIN 9X / 启动旧版DOS,可按要求对换系统文件
当BootWin=0时,默认启动旧版DOS,若此时选择启动菜单的
“Previous MS-DOS version”,将启动WIN 9X
注:BootWin级别高于BootGUI,两者冲突时以前者为准
BootMulti=0/1 禁止/允许双重启动
即在启动菜单中是否出现“Previous vertion of MS DOS”项
从旧版DOS升级WIN 9X时会自动出现此项,并设置为
1,但对于WIN 97/98 来说,如果不对启动系统进行修改
,选择此项将造成系统下次无法启动
BootMenu=0/1 系统启动时是否自动显示启动选择菜单
该值为1,在启动时会直接弹出启动选择菜单
Network=0/1 启动菜单中是否出现“带网络的安全模式启动”项
即“Safe mode with network support”项
BootDelay=n 系统引导前显示“Starting W I N D O W S 95...”时间,默认为2秒供使用启动键改
变启动方式,该值为0时不出现任何提示直接进入默认的启动过程,可加快启动速度,但仍可用启动热键
选择启动方式
BootMenuDefault= 启动菜单使用的默认选项,缺省值为 1
BootMenuDelay= 启动菜单按默认方式启动延迟间,缺省值30,单位:秒
BootSafe=0/1 系统是否以安全模式启动,为1时系统直接以安全模式启动
BootWarn=1/0 启动时是否显示警告信息
当系统非正常关机重新启动时,是否提示“应进入安全模式” 实际上安全模式
解决问题能力非常有限,真正的系统问题在该模式下是无法解决的,不进也罢
BootConfig=1/0 能否使用单步配置模式,其作用不明
DisableLog=0/1 在“Step-by-step config”时是否创建BOOTLOG.TXT
1:不选择“Logged”时不询问也不创建Bootlog.txt
0:询问是否创建日志文件Bootlog.txt
sys temReg=1/0 系统启动时是否运行W I N D O W S 9X注册器
1:“Step-by-step config”下询问是否运行注册器
其他模式则自动运行注册器
0:不运行也不询问是否运行W I N D O W S 9X的注册器
该注册器在整个系统启动前首先运行,但运行与否对系统无明显影响,其作用
不明
LoadTop=1/0 是否将COMMAND.COM、Drvspace.bin、Dblspace.bin等加载到高端内存,如启动中
出现内存地址冲突,可将该值设为0
这类冲突多由CONFIG.SYS、AUTOEXEC.BAT加载的程序造成Autoscan=1/0
非正常关机(如掉电等)再启动时,是否自动执行SCANDISK
(仅在WIN 97/98有效)
取消自动检测硬盘固然可以免除一些烦恼,但确实给系统带来了隐患,还是不
关闭的好
DoubleBuffers=1/2/0 是否加载BDLBUFF.SYS,提供双重缓存支持
0:不提供;1:需要时提供,如有SCSI卡等;
2:无条件提供双重缓存
DblSpace=1/0 允许需要时自动加载DblSpace.bin压缩驱动(DOS6.0、6.2)
DrvSpace=1/0 允许自动加载DrvSpace.bin压缩盘驱动(DOS6.22、WIN 9X)
压缩硬盘降低了系统整体性能,更增加了数据的危险性
在硬盘容量已不成问题的今天,还是不用压缩为妙
注意,FAT32不支持任何磁盘压缩软件
WinVer= 注明W I N D O W S版本正式推出日期
第三部分由以分号“;”开头的数行任意字符组成,在MSDOS.SYS中属于注释行,对系统不起任何设置作用
,主要用于保证MSDOS.SYS文件长度大于1024字节。
MSDOS.SYS提供的参数多数是用于调整系统使用的,对于普通用户来说,常用的主要包括NetWork前的
几个参数。
五、COMMAND.COM
COMMAND.COM是W I N D O W S 9X中的DOS外壳程序(SHELL),较DOS 6.22仅增加了部分内部命令,没有更新
的东西。
IO.SYS对COMMAND.COM的处理则有了根本改变,当WIN 9X在CONFIG.SYS中加载EMM386.EXE驱动提供UMB
时,COMMAND.COM的常驻部分装入HMA,暂驻部分装入UMB中(在DOS6.22中,COMMAND.COM只能将常驻部分装
入HMA),这将为DOS程序提供更大的常规内存,也不需要反复从磁盘中恢复暂驻部分,有效地提高了系统
性能。当然,如果没有加载EMM386.EXE,系统不提供UMB,COMMAND.COM的暂驻部分就只能象DOS6.22那样
置于常规内存的高端。
六、CONFIG.SYS和AUTOEXEC.BAT
WIN 9X中的CONFIG.SYS、AUTOEXEC.BAT的作用与DOS的一样,用于装配所有DOS实模式的驱动程序和应
用程序,或者修改IO.SYS的默认配置。其中,CONFIG.SYS主要用于硬件配置,AUTOEXEC.BAT主要用于软件
配置,其在启动过程中的使用参见IO.SYS一节。
WIN 9X启动后,这两个文件的配置作为全局设置始终保留在系统底层,决定着WIN 9X下所有的DOS、
WIN 16应用环境。如果没有DOS全局设置,W I N D O W S窗口下的DOS应用程序将使用WIN 9X的默认设置,当然
也可由用户单独配置。注意,DOS软件需要的PATH、SET等环境设置可在各自窗口的属性中单独设置;16位
的WIN 3.X软件需要的PATH、SET等环境设置只能在AUTOEXEC.BAT中设置。
WIN 9X新增了不少配置命令,使实模式DOS环境更便于优化,各配置命令参见系统目录\W I N D O W S下的
CONFIG.TXT说明,这里不再多说。 WIN 9X通过VXD(虚拟设备驱动)、DLL(动态链接库)等保护模式驱动程
序统一管理和使用系统软、硬件资源,基本上不需要实模式程序支持。实模式程序主要是为支持一些老设
备而保留的。实模式程序的存在使WIN 9X必须在保护模式和实模式之间频繁地转换,大大降低了系统性能
,更损害了系统稳定性,所以应尽量避免在启动时装载实模式程序。
WIN 9X对DOS环境的缺省设置能满足大多数DOS软件需要,在完成WIN 9X安装后试着删除这两个文件中
的内容非常必要。删除其中的实模式程序,尽量实现WIN 9X的保护模式驱动,可使WIN 9X处于高性能、高
稳定性的优化运行状态。
没有CONFIG.SYS、AUTOEXEC.BAT的DOS系统几乎一无所能,而没有它们的WIN 9X性能也许更好。在WIN
9X中它们主要是为支持原DOS软件和古老的设备而保留的。目前多数报章建议完全删除这两个文件,这其
实很有问题,具体分析参见《电脑界·电脑高手》‘99年10月号。
七、WIN.COM
WIN.COM是W I N D O W S的GUI启动命令,从文件名可以看出这是一个纯粹的DOS命令,它也是GUI系统中唯
一的COM文件。该命令是DOS和GUI的接口命令,主要用来加载保护模式的虚拟设备驱动程序VMM32.VXD(该
程序是由多个子程序组合而成的,使CPU运行于保护模式下),同时处理GUI启动中的各种问题,它控制着
系统的整个调入过程。
WIN.COM提供的各类启动开关,主要用于确定系统故障,会使系统性能降低:
WIN [/D: [F][M][S][V][X]
/D 当W I N D O W S不能正常启动时用于查找故障原因
:F 关闭32位磁盘存取模式,用于不支持32位存取的硬盘
等价于在sys tem.INI的[386ENH]节中设定: 32BitDiskAccess=FALSE.
:M 安全模式启动,等价于使用功能键F5启动
:N 带实模式网络支持的安全模式启动,等价于使用功能键F6启动
:S 禁止W I N D O W S使用在F000:0000与1 MB之间的ROM地址空间做为断点
等价于在sys tem.INI的[386ENH]节中设定: sys temROMBreakPoint=FALSE.
:V 指定启动时由ROM例程处理硬盘控制器中断
等价于在sys tem.INI的[386ENH]节中设定: VirtualHDIRQ=FALSE.
:X 禁止W I N D O W S使用所有高端内存(从A000-FFFF),解决内存冲突问题
等价于在sys tem.INI的[386ENH]节中设定: EMMExclude=A000-FFFF.
八、GUI启动
WIN 9X的GUI启动过程是非常复杂,更是微软公司的核心秘密,不为外人所知。而对普通用户而言,
完全掌握这个复杂多变的机制也无必要,这里只对整个GUI启动机制做一个大致的说明。
1、GUI的配置文件
同所有复杂的系统一样,WIN 9X主要是根据系统配置文件调用各类程序来组合系统,保证系统正常运
行的。WIN 9X的GUI系统配置文件以系统注册表为核心,以各系统目录下的INI文件为辅助配置。把握住系
统配置文件,就掌握了系统的核心。
GUI系统的核心配置文件主要有5个,即:WIN.INI、sys tem.INI、sys tem.DAT、USER.DAT和
POLICES.DAT。
WIN.INI和sys tem.INI据说是为WIN 3.X下的WIN 16保护模式程序保留的,WIN 3.X在这两个文件中的
设置在WIN 9X中大部分已移入系统注册表中。WIN 9X下WIN 32保护模式程序主要通过系统注册表完成配置
,不需要这两个文件的支持。这一做法规范了应用程序的开发和使用,消除了随意设置INI文件的混乱,
便于WIN 9X统一管理系统,增加了系统的稳定性。但如果删除这两个文件,WIN 9X系统无法启动,并提示
“找不到sys tem.INI文件”,这说明WIN 9X的启动还是离不开这两个文件的。
WIN.INI提供了WIN 16程序需要的字体设置、文件关联等种种信息,主要完成GUI下相应的环境配置,
对WIN 9X应用没有太大影响,如果没有这个文件,WIN 9X将自动生成一个最简单的只有几行配置命令的
WIN.INI。
sys tem.INI则不同,它是WIN 16的系统硬件配置文件,WIN 9X又为其增加了一些新设置,以保证WIN
16和WIN 32相互协调,使WIN 16可以调用VXD驱动程序,这一点在WIN.COM提供的系统调试参数中已有充分
体现。另外GUI的外壳程序(SHELL,即界面程序)、鼠标器、显示器等驱动程序必须通过sys tem.INI设置
才能加载使用,这些决定了sys tem.INI是绝对不能删除的。这充分证明了WIN 9X是一个WIN 16和WIN 32
的混合系统,也揭示了WIN 9X系统先天脆弱的根本原因。
WIN.INI、sys tem.INI中的各项设置可参见《新潮电子精华本1》。
sys tem.DAT和USER.DAT即所谓的系统注册表文件,是WIN 9X的核心文件,W I N D O W S就是通过它来管理
整个系统的。sys tem.DAT保存着硬件配置及软件安装信息,USER.DAT保存着与用户的个人设置有关的信
息,前者只能有一个,而后者可以有多个。这两个文件共同作用,包含了系统的全部信息,在使用注册表
编缉软件(如REGEDIT.EXE)时,这两个文件共同被修改,不能分开。它们的损坏将导致系统彻底瘫痪,无
法挽救。不幸的是,系统注册表非常脆弱,缺乏自我整理和维护机制,当系统运行一段时间后,用户往往
只能走上痛苦的系统重建之路。
在WIN 95/96/97中,注册表的备份为sys tem.DA0和USER.DA0,保存在\W I N D O W S下;在WIN 98中,
WIN.INI、sys tem.INI、sys tem.DAT和USER.DAT四个文件被合并备份成一个文件RB00?.CAB,保存在
\W I N D O W S\SY好好学习CKUP下,默认保留5个。
每次GUI启动时系统会对备份文件自动更新,这种处理缺乏安全管理机制,难以保证备份文件不受错
误信息干扰,多数情况下备份文件形同虚设。
令人遗憾的是,除了手工编缉注册表软件REGEDIT.EXE,WIN 9X没有提供更有效的注册表维护工具。
在WIN 98提供了注册表检测软件ScanReg.exe和ScanRegw.exe,这是一个进步,但它只能处理注册表的物
理故障,无法解决结构性问题,其可靠性又有多大呢?
博大的注册表完全应该用一本专著来剖析,在《新潮电子精华本1》中也有简单的介绍,这里就不做
更深的解释了。
POLICES.DAT是微软的MSN(Microsoft Network)注册支持文件,该网络国内用户很少,该文件也很少
使用。
尽管没有更直接的资料介绍,但是有充分的理由证明在WIN 9X的启动过程中,保存在\W I N D O W S\INF目
录下的各种INF文件是WIN 9X系统中最有力的支持文件。在启动系统的过程中,WIN 9X会适时地调用这些
文件,以装载相应的驱动程序。如果没有了这些文件,WIN 9X也是无法启动的。另外,WIN 9X的PNP技术
主要是通过INF文件实现驱动程序安装的。
2、GUI的启动过程
GUI的启动过程主要由三个阶段组成:WININIT.EXE阶段、16位保护模式启动和32位保护模式启动。
⑴WININIT.EXE阶段WIN.COM开始运行后,首先调用\W I N D O W S下的WININIT.EXE,该命令在同目录下寻
找WININIT.INI,如果有则按照该文件配制对系统文件进行重新调整或升级,以保证整个系统的驱动程序
能够得到及时更新。这是W I N D O W S系统支持PNP技术,实现系统驱动程序升级的主要途径。这个过程自然是
在DOS状态下完成的。
⑵16位保护模式启动
WIN.COM开始执行后,调入\W I N D O W S\sys tem下的VMM32.VXD,VMM32.VXD将处理器置于保护模式下,
根据sys tem.INI和注册表的配置开始启动GUI系统的16位保护模式。这可以保证系统支持WIN16软件,更
主要的是PNP BIOS(即插即用BIOS)规范只提供16位保护模式接口,以PNP为硬件技术核心的WIN 9X必须通
过16位模式直接获得BIOS提供的硬件设备信息来配置系统,提高系统启动性能,否则对硬件的配置必须在
实模式下从头开始。
GUI的启动首先加载WIN 9X的系统驱动程序,再从PNP BIOS获得硬件设备信息,先后加载PNP设备驱动
程序VXD和支持非PNP硬件所需的全部16位虚拟保护模式驱动程序VXD,分配系统资源,避免设备冲突,然
后初始化所有的驱动程序(包括系统驱动程序和设备驱动程序),完成系统硬件配置。最后加载16位外壳组
件USER.EXE、GUI.EXE、KRNL386.EXE等,形成WIN16的API,完成16位保护模式启动,此时,每个系统组件
都已存在,但还不具使用界面。
⑶32位保护模式启动
完成16位模式启动后,系统调用32位的外壳程序资源管理器,16位内核一看到这一调用,就先自动加
载VWIN32.386,由它加载三个32位DLL库文件:USER32.DLL、GDI32.DLL、KERNEL32.DLL,形成WIN32的
API(这是WIN 9X的核心),VWIN32.386完成这一任务后,将控制权还给16位内核,16位内核再将控制权交
给32位内核,开始32位保护模式启动。这时系统加载并初始化所有32位驱动程序,这个过程与16位模式相
同。
最后,运行GUI的外壳程序(该外壳程序由sys tem.INI中的[BOOT]节中“SHELL=”设置,默认是资源
管理器),完成GUI启动。
2、GUI的启动过程
GUI的启动过程主要由三个阶段组成:WININIT.EXE阶段、16位保护模式启动和32位保护模式启动。
⑴WININIT.EXE阶段WIN.COM开始运行后,首先调用\W I N D O W S下的WININIT.EXE,该命令在同目录下寻
找WININIT.INI,如果有则按照该文件配制对系统文件进行重新调整或升级,以保证整个系统的驱动程序
能够得到及时更新。这是W I N D O W S系统支持PNP技术,实现系统驱动程序升级的主要途径。这个过程自然是
在DOS状态下完成的。
⑵16位保护模式启动
WIN.COM开始执行后,调入\W I N D O W S\sys tem下的VMM32.VXD,VMM32.VXD将处理器置于保护模式下,
根据sys tem.INI和注册表的配置开始启动GUI系统的16位保护模式。这可以保证系统支持WIN16软件,更
主要的是PNP BIOS(即插即用BIOS)规范只提供16位保护模式接口,以PNP为硬件技术核心的WIN 9X必须通
过16位模式直接获得BIOS提供的硬件设备信息来配置系统,提高系统启动性能,否则对硬件的配置必须在
实模式下从头开始。
GUI的启动首先加载WIN 9X的系统驱动程序,再从PNP BIOS获得硬件设备信息,先后加载PNP设备驱动
程序VXD和支持非PNP硬件所需的全部16位虚拟保护模式驱动程序VXD,分配系统资源,避免设备冲突,然
后初始化所有的驱动程序(包括系统驱动程序和设备驱动程序),完成系统硬件配置。最后加载16位外壳组
件USER.EXE、GUI.EXE、KRNL386.EXE等,形成WIN16的API,完成16位保护模式启动,此时,每个系统组件
都已存在,但还不具使用界面。
⑶32位保护模式启动
完成16位模式启动后,系统调用32位的外壳程序资源管理器,16位内核一看到这一调用,就先自动加
载VWIN32.386,由它加载三个32位DLL库文件:USER32.DLL、GDI32.DLL、KERNEL32.DLL,形成WIN32的
API(这是WIN 9X的核心),VWIN32.386完成这一任务后,将控制权还给16位内核,16位内核再将控制权交
给32位内核,开始32位保护模式启动。这时系统加载并初始化所有32位驱动程序,这个过程与16位模式相
同。
最后,运行GUI的外壳程序(该外壳程序由sys tem.INI中的[BOOT]节中“SHELL=”设置,默认是资源
管理器),完成GUI启动。
⑹IO.SYS进行必要的默认环境设置
⑺自动执行WIN.COM,进入GUI启动阶段
⑻执行WININIT.EXE,对系统驱动程序进行升级
⑼加载sys tem.INI中[BOOT]、[386ENH]、[DEVICES]等节设置的驱动程序
⑽根据sys tem.INI、WIN.INI和系统注册表进行系统组合、配置,各类启动时调用的VXD文件主要存
放在C:\W I N D O W S\sys tem下的VMM32和IOSUBSYS下
⑾加载sys tem.INI中的“SHELL=”指定的外壳程序
⑿执行系统注册表中的HKEY_LOCAL_MACHINE→Software→Microsoft→W I N D O W S→CurrentVersion下的
Run、RunOnce中包含的应用程序(其中RUNONCE包含的程序只运行一次后就被自动删除,该键主要用于软件
安装),通常默认加载Internat.exe(输入法)、Systray.exe(音量控制)和WIN 98的ScanRegw.exe/autorun
。
⒀当用户完成身份登录后,系统执行HKEY_CURRENT_USER→Software→Microsoft→W I N D O W S→
CurrentVersion下的Run、RunOnce中包含的应用程序
⒁执行WIN.INI中的LOAD= RUN=加载的应用程序
⒂执行开始菜单中[启动]组包含的应用程序
十、结语
WIN 9X的启动过程终于介绍完了。由于笔者知识水平和眼界的局限,其中还是留下了许多空白就教于诸位高手。
诚然,这个过程本来是一个相当陈旧的话题,但是多数介绍仅限于局部技巧,且谬传颇多,比较系统完整的非常少见,这给广大电脑爱好者带来很大的困惑,这里不自量的献丑,实是纠正一些流传的误解,使电脑爱好者对W I N D O W S 9X的启动过程有一个相对完整清晰的把握。
呵呵,这篇东西适合我们这样的菜鸟。高手看不看无所谓了,哈哈
作者: sliuy0 时间: 2001-12-17 12:55 标题: W I N D O W S 9X 启动全揭秘 [转帖] 不错 作者: 真水ying 时间: 2001-12-17 14:41 标题: W I N D O W S 9X 启动全揭秘 [转帖] 谢谢斑竹夸奖!我会努力在努力!作者: 碧海狂涛 时间: 2001-12-17 16:02 标题: W I N D O W S 9X 启动全揭秘 [转帖] 的确不错哟!