⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windows 9x 启动全揭秘.txt

📁 奥斯丁分请一定要上载质量高而且本站没有的源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:

  1、GUI的配置文件


  同所有复杂的系统一样,WIN 9X主要是根据系统配置文件调用各类程序来组合系统,保证
系统正常运行的。WIN 9X的GUI系统配置文件以系统注册表为核心,以各系统目录下的INI文件
为辅助配置。把握住系统配置文件,就掌握了系统的核心。


  GUI系统的核心配置文件主要有5个,即:WIN.INI、SYSTEM.INI、SYSTEM.DAT、USER.DAT
和POLICES.DAT。


  WIN.INI和SYSTEM.INI据说是为WIN 3.X下的WIN 16保护模式程序保留的,WIN 3.X在这两
个文件中的设置在WIN 9X中大部分已移入系统注册表中。WIN 9X下WIN 32保护模式程序主要通
过系统注册表完成配置,不需要这两个文件的支持。这一做法规范了应用程序的开发和使用,
消除了随意设置INI文件的混乱,便于WIN 9X统一管理系统,增加了系统的稳定性。但如果删
除这两个文件,WIN 9X系统无法启动,并提示“找不到SYSTEM.INI文件”,这说明WIN 9X的启
动还是离不开这两个文件的。


  WIN.INI提供了WIN 16程序需要的字体设置、文件关联等种种信息,主要完成GUI下相应的
环境配置,对WIN 9X应用没有太大影响,如果没有这个文件,WIN 9X将自动生成一个最简单的
只有几行配置命令的WIN.INI。



  SYSTEM.INI则不同,它是WIN 16的系统硬件配置文件,WIN 9X又为其增加了一些新设置,
以保证WIN 16和WIN 32相互协调,使WIN 16可以调用VXD驱动程序,这一点在WIN.COM提供的系
统调试参数中已有充分体现。另外GUI的外壳程序(SHELL,即界面程序)、鼠标器、显示器等驱
动程序必须通过SYSTEM.INI设置才能加载使用,这些决定了SYSTEM.INI是绝对不能删除的。这
充分证明了WIN 9X是一个WIN 16和WIN 32的混合系统,也揭示了WIN 9X系统先天脆弱的根本原
因。


  WIN.INI、SYSTEM.INI中的各项设置可参见《新潮电子精华本1》。


  SYSTEM.DAT和USER.DAT即所谓的系统注册表文件,是WIN 9X的核心文件,WINDOWS就是通
过它来管理整个系统的。SYSTEM.DAT保存着硬件配置及软件安装信息,USER.DAT保存着与用户
的个人设置有关的信息,前者只能有一个,而后者可以有多个。这两个文件共同作用,包含了
系统的全部信息,在使用注册表编缉软件(如REGEDIT.EXE)时,这两个文件共同被修改,不能
分开。它们的损坏将导致系统彻底瘫痪,无法挽救。不幸的是,系统注册表非常脆弱,缺乏自
我整理和维护机制,当系统运行一段时间后,用户往往只能走上痛苦的系统重建之路。


  在WIN 95/96/97中,注册表的备份为SYSTEM.DA0和USER.DA0,保存在\WINDOWS下;在WIN
98中,WIN.INI、SYSTEM.INI、SYSTEM.DAT和USER.DAT四个文件被合并备份成一个文件RB00?
.CAB,保存在\WINDOWS\SYSBCKUP下,默认保留5个。


  每次GUI启动时系统会对备份文件自动更新,这种处理缺乏安全管理机制,难以保证备份
文件不受错误信息干扰,多数情况下备份文件形同虚设。


  令人遗憾的是,除了手工编缉注册表软件REGEDIT.EXE,WIN 9X没有提供更有效的注册表
维护工具。在WIN 98提供了注册表检测软件ScanReg.exe和ScanRegw.exe,这是一个进步,但
它只能处理注册表的物理故障,无法解决结构性问题,其可*性又有多大呢?


  博大的注册表完全应该用一本专著来剖析,在《新潮电子精华本1》中也有简单的介绍,
这里就不做更深的解释了。


  POLICES.DAT是微软的MSN(Microsoft Network)注册支持文件,该网络国内用户很少,该
文件也很少使用。


  尽管没有更直接的资料介绍,但是有充分的理由证明在WIN 9X的启动过程中,保存在\WI
NDOWS\INF目录下的各种INF文件是WIN 9X系统中最有力的支持文件。在启动系统的过程中,W
IN 9X会适时地调用这些文件,以装载相应的驱动程序。如果没有了这些文件,WIN 9X也是无
法启动的。另外,WIN 9X的PNP技术主要是通过INF文件实现驱动程序安装的。


  2、GUI的启动过程


  GUI的启动过程主要由三个阶段组成:WININIT.EXE阶段、16位保护模式启动和32位保护模
式启动。


  ⑴WININIT.EXE阶段WIN.COM开始运行后,首先调用\WINDOWS下的WININIT.EXE,该命令在
同目录下寻找WININIT.INI,如果有则按照该文件配制对系统文件进行重新调整或升级,以保
证整个系统的驱动程序能够得到及时更新。这是WINDOWS系统支持PNP技术,实现系统驱动程序
升级的主要途径。这个过程自然是在DOS状态下完成的。


  ⑵16位保护模式启动


  WIN.COM开始执行后,调入\WINDOWS\SYSTEM下的VMM32.VXD,VMM32.VXD将处理器置于保护
模式下,根据SYSTEM.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、KERNEL3
2.DLL,形成WIN32的API(这是WIN 9X的核心),VWIN32.386完成这一任务后,将控制权还给16
位内核,16位内核再将控制权交给32位内核,开始32位保护模式启动。这时系统加载并初始化
所有32位驱动程序,这个过程与16位模式相同。


  最后,运行GUI的外壳程序(该外壳程序由SYSTEM.INI中的[BOOT]节中“SHELL=”设置,默
认是资源管理器),完成GUI启动。


3、GUI启动过程中故障的排除


  GUI系统相当复杂,相关的技术资料却极少,这决定了用户不能象在DOS中那样根据启动过
程去排查故障。


  WIN 9X对GUI的启动过程从未提供详尽的说明,仅在根目录下提供了一份启动日志文件BO
OTLOG.TXT。该文件记录了启动过程使用的所有程序模块的加载情况,是解决系统问题的唯一
依据。根据该记录可以全面了解GUI启动过程中发生的种种问题。


  面对启动过程中的失败,主要有两个处理方法,一是用完好的源程序覆盖出现问题的程序
,但其难点在于如何在各类软件包中找到那些完好的源程序,注意,直接调试、修复出现问题
的程序在WIN 9X下是难以想象的;一是从启动配置文件(CONFIG.SYS、AUTOEXEC.BAT、WIN.IN
I、SYSTEM.INI和注册表)中删除调用有问题模块的命令。后者主要用于解决某软件卸载失败出
现的问题。


  在图形模式GUI下解决系统问题时多会受到种种限制,而纯DOS模式不受系统制约,是最后
的系统之门(对于电脑高手来说,DOS仍是永恒的主题)。


  WINDOWS系统的复杂性决定了排除那些莫名其妙的故障的难度,若对系统经过几次调整后
仍未解决问题,最保险也是最快捷的办法就是重新安装系统。也许这是微软对用户唯一有用的
建议。 


  在WINDOWS下重新安装系统,要保证产品的序列号一致,否则系统可能拒绝安装。


  九、WIN 9X启动顺序小结


  本文详尽地讨论了WIN 9X的启动过程,复杂的参数和技术分析模糊了其清晰的体系结构,
现在对整个启动过程做一简单的概括,使读者根据启动过程中的现象能够相对准确地判断启动
过程,更好地处理系统启动过程中的问题。


  ⑴系统加电启动,依次加载扩展卡(包括显卡等)、主板的BIOS程序(这与所有的操作系统
(如WIN 9X、LINUX、UNIX、OS/2等)无关),完成自检过程


  ⑵读入硬盘的主引导记录、分区引导记录,自动加载IO.SYS


  ⑶IO.SYS读取MSDOS.SYS配置,确定启动方式,根据CONFIG.SYS,进行硬件配置


  ⑷IO.SYS根据WIN 9X启动要求,自动加载必要的默认驱动程序(HIMEM.SYS、SETVER.EXE,
IFSHLP.SYS等)


  ⑸IO.SYS调入COMMAND.COM,解释执行AUTOEXEC.BAT,进行软件配置



⑹IO.SYS进行必要的默认环境设置


  ⑺自动执行WIN.COM,进入GUI启动阶段


  ⑻执行WININIT.EXE,对系统驱动程序进行升级


  ⑼加载SYSTEM.INI中[BOOT]、[386ENH]、[DEVICES]等节设置的驱动程序


  ⑽根据SYSTEM.INI、WIN.INI和系统注册表进行系统组合、配置,各类启动时调用的VXD文
件主要存放在C:\WINDOWS\SYSTEM下的VMM32和IOSUBSYS下


  ⑾加载SYSTEM.INI中的“SHELL=”指定的外壳程序


  ⑿执行系统注册表中的HKEY_LOCAL_MACHINE→Software→Microsoft→Windows→Current
Version下的Run、RunOnce中包含的应用程序(其中RUNONCE包含的程序只运行一次后就被自动
删除,该键主要用于软件安装),通常默认加载Internat.exe(输入法)、Systray.exe(音量控
制)和WIN 98的ScanRegw.exe/autorun。


  ⒀当用户完成身份登录后,系统执行HKEY_CURRENT_USER→Software→Microsoft→Windo
ws→CurrentVersion下的Run、RunOnce中包含的应用程序


  ⒁执行WIN.INI中的LOAD= RUN=加载的应用程序


  ⒂执行开始菜单中[启动]组包含的应用程序


  十、结语


  WIN 9X的启动过程终于介绍完了。由于笔者知识水平和眼界的局限,其中还是留下了许多
空白就教于诸位高手。


  诚然,这个过程本来是一个相当陈旧的话题,但是多数介绍仅限于局部技巧,且谬传颇多
,比较系统完整的非常少见,这给广大电脑爱好者带来很大的困惑,这里不自量的献丑,实是
纠正一些流传的误解,使电脑爱好者对WINDOWS 9X的启动过程有一个相对完整清晰的把握。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -