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的启动过程,复杂的参数和技术分析模糊了其清晰的体系结构,现在对整个启动过程做一简单的概括,使读者根据启动过程中的现象能够相对准确地判断启动过程,更好地处理系统启动过程中的问题。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器