一、Windows CE的体系结构
Windows CE 体系结构采用层次化的设计方法,其层次化体系结构如下图所示:
硬件层:
嵌入式操作系统在整个嵌入式系统中起着承上启下的作用:一方面,操作系统为嵌 入式应用程序提供了一个运行平台;另一方面,操作系统要运行在硬件之上,直接与硬 件打交道并管理硬件资源。Windows CE 只支持RAM,X86,SH3,MIPx 架构的处理器。
OEM层:(OEM:original equipment manufacturer,原始设备制造商)
OEM抽象层(OEM Abstraction Layer,OAL)是整个OEM 层的主体。它包含高度 硬件相关代码。OAL 主要负责Windows CE 内核与硬件通信。当引导程序引导操作系统结束后,有OAL 负责硬件平台的初始化,包 括中断服务例程,实时时钟,计数器,内核调试,开关中断,内核性能检测等工作。OAL 的代码在物理上是内核的一部分,最终经过编译连接,OAL 会成为内核的一部分。
Boot Loader 是硬件开发板上执行的一段代码,它的主要功能是初始化硬件,加载操 作系统映像到内存,然后跳到操作系统代码去执行。它加载操作系统映像方式有:串口, USB,以太网下载。
配置文件是一些包含配置信息的文本文件。这些配置信息通常与操作系统映像或源代 码有关。例如告诉编译系统如何编译某些代码,或告诉编译系统如何配置最终的操作系 统映像文件。
设备驱动程序直接与硬件外设打交道,是应用程序或操作系统与硬件外设交互的桥 梁。不同的外设有不同的驱动程序,如声卡驱动,显卡驱动,USB 驱动等等。
在嵌入式系统中有一个与Windows CE的OEM相对应的概念:BSP(板级支持 包)。BSP是介于主板硬件和操作系统之间的一层,主要目的是为了支持操作系统使之 能正常运行于主板硬件上。
操作系统层:
内核:windows CE 的内核表现为NK.EXE 进程,它是所有基于windows CE 的系 统中都存在的核心进程,为设备提供处理器调度,内存管理,异常处理及系统内通信等 功能并为应用程序使用这些核心功能提供内核服务。
Core DLL:它是一个会被所有用户进程都加载的动态链接库,应用程序希望访问 windows CE 提供的服务,只能通过Core DLL.DLL 进行。Core DLL.DLL 的主要功能是 负责应用程序与windows CE 通信以及完成windows CE 的系统调度。系统调度是操作系 统向应用程序提供的服务,一般以函数的形式提供。
对象存储:为应用程序及其相关数据提供的存储方式,完成管理栈和内存堆,必 要时压缩或展开文件无缝的集成基于ROM 的应用和基于RAM 的数据三项任务。理论上 包含文件系统,数据库,系统注册表。
GWES:图形窗口系统负责操作系统中与图形界面相关的部分提供基本的绘图功能 和窗口管理器。所有的用户输入(键盘,触摸屏等)相关的驱动程序都由GWES.EXE 来 加载和管理。
设备管理:DEVICE.EXE 是windows CE 中的设备管理器。它负责加载,卸载和管 理所有不被GWES.EXE 管理的驱动程序,也负责加载所有的总线驱动程序和电源管理 DLL,同时向系统提供所有关于驱动的API的实现。
网络服务:SERVICES.EXE 是负责加载系统服务的进程。它们提供一些后台的处 理或者为应用程序提供高级的功能。Windows CE 中,FTP,HTTP 和TELNET 都是以系 统服务的形式实现。Windows CE 提供单独的API来启动,停止和操作服务。