wince6.0操作系统的架构

Windows Embedded CE 6.0操作系统被实现为一种分层的架构,分别由内核模式层和用户模式层组成,其中内核模式层由OAL(OEM抽象层)、KITL(独立于内核的传输层)、操作系统内核、内核模式的Coredll库及文件系统模块、GWES模块、设备管理器模块和内核模式驱动/服务模块等组成,而用户模式层分别由用户模式的Coredll库、用户模式驱动/服务以及各种用户应用程序组成,如图1所示。

                                      图1

 

与以前版本的Windows CE操作系统相比,Windows Embedded CE 6.0的架构有以下两个显著的特征:

(1)将Coredll.dll库区分为两个不同的库,一个位于内核层(称为K.COREDLL.DLL),另一个位于用户层(称为COREDLL.DLL)。其中位于内核层的K.COREDLL.DLL库为内核模块、内核驱动和服务提供API,而位于用户层的COREDLL.DLL库为用户驱动、用户应用程序和服务提供API。位于用户层的应用程序不能调用内核模式K.COREDLL.DLL库中的API。

(2)将驱动程序区分为内核模式的驱动和用户模式的驱动。由于内核模式的驱动能够应用内核版本的K.COREDLL.DLL直接调用内核API,因而可以提供最好的性能,同时,由于用户内存对于内核驱动是直接可用的,因而内核驱动还可以同步访问用户缓冲。而用户模式的驱动一般不被允许直接访问系统硬件,内核模式驱动只有通过内存映射的方法才能通过操作系统内核访问系统硬件,这种通过内存映射将用户模式驱动与操作系统内核隔离的方法,可以大大提高系统的稳定性。

如果将如图1所示Windows Embedded CE 6.0的系统架构进行细化,分别表示出用户空间、内核空间以及系统硬件的主要组成模块,那么将如图4所示。

 

用户空间主要由用户应用程序、Shell、ServiceD.EXE和Udevice.EXE等模块组成。

Shell为用户运行应用程序和管理Windows Embedded CE操作系统提供对象接口,这些对象既可以是位于目标设备上的真实对象,如文件和文件夹等,也可以是虚拟的对象,如回收站等,还可以是通过网络进行访问的远程对象。与以前版本的Windows CE一样,Windows Embedded CE 6.0允许实现从简单的命令行接口到完全定制的图形用户接口的适合特定设备需要的各种Shell。Shell是由一些模块和组件组成的,每一个模块或组件都完成一个特定的Shell功能。

UDevice.EXE是用户模式驱动程序的主(Host)进程,其作用仅仅是为了将驱动程序加载到用户模式。

ServicesD.EXE是对UDevice.EXE的补充。从本质上来讲,服务(Service)是与驱动程序同样的东西,它们具有同样的目的以及相同的编程模型,其差别仅仅是人们为了将硬件操作与纯软件操作区分开来,人为地将完成硬件操作功能的软件称为驱动程序,而将完成纯软件操作功能的软件称为服务,用户模式的驱动程序由UDevice.EXE加载和卸载,服务由ServicesD.EXE启动、暂停和停止。因此,如果要开发一个运行在UDevice.EXE上而不是ServicesD.EXE上的服务,是没有任何问题的。

内核空间主要由FILESYS.DLL、FSDMGR.DLL、GWES.DLL、DEVMGR.DLL、KERNEL.DLL、Networking DLLs和KITL.DLL等模块组成。

FILESYS.DLL模块相当于Windows CE以前版本中的FILESYS.EXE,负责初始化文件系统、对象存储、注册表、CEDB数据库、设备通知以及其它一些工作。

FSDMGR.DLL模块负责管理文件系统、过滤器和存储管理器。

GWES.DLL是由Microsoft Win32应用程序编程接口(Win32 API)、用户接口(UI)和图形设备接口(GDI)组合而成的图形、窗口、事件子系统模块,GWES是用户、应用程序和操作系统之间的接口。GWES支持所有构成Windows Embedded CE 6.0用户接口的窗口、对话框、控件、菜单和资源,使用户能够控制应用程序,同时还为用户提供位图、光标、文本和图标形式的信息。即使对于没有图形用户界面的无头设备(Headless Device)也需要使用GWES基本的窗口和消息机制以及电源管理功能。GWES还负责处理图形窗口的管理和事件管理器,包括消息、事件以及来自于键盘、鼠标和触摸笔的输入等。

DEVMGR.DLL被称为设备管理器,由操作系统内核加载,并一直运行直至系统关闭。设备管理器用来管理已经加载的驱动程序及驱动程序的接口。当设备管理器被加载时,它同时会加载I/O资源管理器,以便从注册表读取可用的I/O端口及IRQ资源。

KERNEL.DLL、FILESYS.DLL、FSDMGR.DLL、DEVMGR.DL、GWES.DLL以及绝大多数的驱动程序都被加载到内核进程空间,被称为内核模式的服务器,并实现了一组API供应用程序调用。内核模式的服务由内核版本的COREDLL(即K.COREDLL.DLL)支持,被加载到内核并被连接到COREDLL.DLL的任何代码,系统会自动重定向去使用K.COREDLL.DLL来代替。

KERNEL.DLL是构成Windows Embedded CE 6.0内核及其它共同特征的核心操作系统服务,主要用于处理操作系统底层的任务,如时钟管理,进程、线程多任务调度以及电源管理等。

硬件是操作系统赖以生存的物理基础,硬件与操作系统通过驱动程序提供的标准接口连接在一起。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/duanhjlt/archive/2009/08/13/4443548.aspx

你可能感兴趣的:(WINCE嵌入式操作系统,wince,windows,shell,api,图形,microsoft)