解析嵌入式操作系统WinCE6.0体系结构

分享到:
点击量: 221945

  WinCE6.0体系结构

  

 

  WinCE6.0中的程序有两个级别,分为内核级和用户级。有些程序可以同时运行在内核及和用户级。例如:Coredll会分别运行在内核级和用户级上,这两个级别的Coredll功能是一样的,目的是增加系统的稳定性。

  GWES:WinCE通过这模块提供的图形接口提供了几个功能:基本的绘图引擎、窗口管理、接口的事件机制等,是用户、应用程序和操作系统间的接口。

  Device Manager:由Kernal来加载并一直运行,它负责管理设备驱动的加载和设备接口,Device Manager追踪驱动登记的接口,并支持根据全局**标识globally unique identifier (GUID),来寻找驱动。

  Kernal Mode Driver:设备驱动是物力设备或虚拟设备的一个软件抽象,一个设备驱动管理这些设备的运行。一个物力设备驱动的例子是网卡驱动,一个虚拟设备的驱动是文件系统。

  不同的进程加载不同的驱动程序,下面这张表说明了哪些进程都加载什么驱动。

  

 

  Coredll(核心操作系统服务) :由Windows Embedded CE kernel 和其他一些通用的WinCE设计组成。Coredll 执行低级别的任务,例如,进程、线程和内存管理。基础设备驱动也是Coredll的一部分。

  Kernal:表现为Nk.exe的形式,是WinCE操作系同的核心,提供操作系统的基本功能。这些功能包括,进程、线程和内存管理。Kernal还提供一些文件管理功能。

  OAL(OEM adaptation layer):OEM adaptation layer,是存在于硬件和kernal之间的一段代码。它方便了OS和目标设备之间的交流。这段代码包括了:中断、时钟和一般I/O控制(IOCTLs)等代码。

  KITL(Kernel Independent Transport Layer):

  提供一种简单的支持任何调试服务的方式。KITL隔离了层间通信服务的协议,可以直接与硬件通信。硬件传输层是在KITL下面的一层,避免了KITL去了解不同硬件通信类型。例如,你可以创建一个桌面和WinCE设备端的传输机制。

  在桌面端,这个传输是一个独立的DLL,这个DLL提供一些API接口给KITL,当然这个DLL要在系统中被注册,以便让KITL知道它是一个功能传输。在设备端,这个传输被建立在OAL中。在CE设备上,KITL依赖这个传输机制去支持一系列API级别的debug服务调用。

  Hardware:这一层包括不同主板的BSP(Board Support Packages)。