Lu Lin All WINDOWS架构 27 Nov 98 21:48:34 今天讲下WINDOWS的基本架构: WINDOWS系列,包括3.1,3.2,3.11,95,98.基本架构是相同的. 1.在系统带最底层是DPMI服务器,包括虚拟机管理器都是建筑在DPMI服务器 之上,从WINDOWS启动的序列来看,DPMI服务器是在虚拟机之前启动的.但是 DPMI最初只不过用于将DOS切换到保护模式下,并且提供>1M的可直接分配 的内存,从某种意义上讲他并不能算是WINDOWS的一部分,但是DPMI的确被 WINDOWS的初始化所利用(就象DOS被利用一样). 2.是虚拟机管理程序.这是我们通认的WINDOWS最底层.3.1,95,98的虚拟机管理 器都叫VMM.VXD.但是,系统里并没有单独的叫VMM.VXD的文件.他整合在 WIN386.EXE或VMM32.VXD里,随后,VMM管理着系统的空闲行为.包括切换进程,线 程.只不过3.1下,VMM切换进程(TASK)是接收INT2FH或(YIELD)通知后才进行的. 而95的WIN32环境下是自动进行的,注意,95的WIN16环境并非抢占式的,仍要接 收INT2F或YEILD才能切换进程. 3.各种虚拟设备驱动程序.包括*.386,*.VXD或其他具有VXD文件头的文件.他们 是在VMM之后被启动的(其实各种VXD有3次初始化,和VMM的初始化有些交错, 但总体上讲,VMM算是第一个初始化的虚拟设备驱动程序).各种VXD与VMM一起, 组成了GUI子系统的基本运行环境.尽管我把VXD归到了第三层,但实际上他们 被VMM看作是VMM的扩展.是系统不可分割的一部分. 4.各种DRV.他们是沟通GUI和底层的通道,连同KRNL386.EXE,USER.EXE,GDI.EXE, KRNL32.DLL,USER32.DLL,GDI32.DLL组成了GUI.一个基本的WINDOWS系统就形成 了.除了这些包括COMMDLG.DLL,COMCTRLDLL...都不是系统所必须的.有了前述 的DLL.任何程序通过改写,都可以运行起来.而COMMDLG.DLL,WINSOCK.DLL...只 不过是简化编程的一些途径,他们把大量的WIN API调用序列集合到一些DLL里. 以使复杂的图形界面设计简单化. 5.然后是各种扩展,包括OLE,WINSOCK,DCOM,RPC,...各种扩展已经不再和系统底层 打交道了,已经完全被各种DLL所掩盖,完全进入了GUI的子系统,随后令人迷惑的 各种DLL的扩展都出来了: OCX...大家终于被MICROSOFT的种种迷雾所困扰,不能 自拔.无法见到系统的真面貌. 6.WIN3.11开始,一些95的基本特性已经开始显露出来了.最关键的就是32位的文件 访问系统被提供了.有了32位文件API,那么一个'32位'的操作系统已经有了雏形. 7.95又是个WIN3.11的扩展.但是它的最大特性就是增加了长文件名.和动态VXD装 卸系统.小的改进也很多.诸如增加了GDI,USER的堆的大小.增加了可供分配的 窗口句柄数等. 8.98有什么奥秘呢?可以说唯一明显的改进在于提供了WDM的支持.这是NT,WINDOWS 靠拢的一个最明显的特征.以后WINDOWS系列发展的趋向将令富有创造性的程序 员很痛苦.所有的东西都让操作系统控制了.程序员最多不过是写点操作系统没 完成的函数.根本不能接管任何系统资源.所有的东西都受操作系统限制.如果操作 系统不能支持某界面,那么再有创造力的程序员也无法令系统提供支持该界面. 严正声明:本文系本人经验所及,抄袭请通知本人,并给予适当稿费:)如有疑惑,请 CFIDO PROGRAMMER.CHINA帖来.我尽量回答. ... 看了我的信可是大补啊!:).陆麟 --- 蓝波95 v2.54 [NR] * Origin: Shanghai Blue Bird BBS (021)62619216. (6:654/1012)