当前位置: 首页 > 图文教程 > 操作系统 > DOS > Win 98系统启动过程全揭密(四)

DOS
Windows系统蓝屏死机代码大揭秘(三)
Windows系统蓝屏死机代码大揭秘(四)
操作系统优化中的重要环节
巧设虚拟内存让系统更流畅
Win 98系统中共享文件夹和打印机
老系统如何实现自动关机
让Windows只显示某些文件的扩展名
对于Win 98系统死机的简单预防
热门技巧天天递招 98篇(九)
热门技巧天天递招 98篇(十)
热门技巧天天递招 98篇(十一)
热门技巧天天递招 98篇(十二)
热门技巧天天递招 98篇(十三)
热门技巧天天递招 98篇(十四)
热门技巧天天递招 98篇(十五)
热门技巧天天递招 98篇(十六)
热门技巧天天递招 98篇(十七)
热门技巧天天递招 98篇(十八)
热门技巧天天递招 98篇(十九)
热门技巧天天递招 98篇(二十)

DOS 中的 Win 98系统启动过程全揭密(四)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 101 ::
收藏到网摘: n/a

  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、KERNEL32.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的启动过程从未提供详尽的说明,仅在根目录下提供了一份启动日志文件BOOTLOG.TXT。该文件记录了启动过程使用的所有程序模块的加载情况,是解决系统问题的唯一依据。根据该记录可以全面了解GUI启动过程中发生的种种问题。

  面对启动过程中的失败,主要有两个处理方法,一是用完好的源程序覆盖出现问题的程序,但其难点在于如何在各类软件包中找到那些完好的源程序,注意,直接调试、修复出现问题的程序在Win 9X下是难以想象的;一是从启动配置文件(CONFIG.SYS、AUTOEXEC.BAT、Win.INI、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