Win 98系统启动过程全揭密[10]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:

  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 98系统启动过程全揭密
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top