从宏观的角度来看,系统包括以下几个软件组件:CoreDLL,NK,设备管理模块、数据储存模块、图形使用者接口模块、通信模块、OAL 模块以及两个比较特殊的部分:驱动程序模块和Win32 系统服务模块,它们和其它的模块在划分上有一些重迭。
1、NK
NK 透过NK.exe 在系统运行,它是CE 操作系统的真正核心,它主要包含以下6 类:功能处理器排程、内存管理、异常处理、系统内的通讯机制、为其它部分提供核心应用程序例程 (routine)、为系统范围内的侦错提供的支持。
NK.exe 的程序代码非常精简,始终以较高的优先级和处理器特权级别(privilege mode) 执行,一般除了中断处理例程,系统内其它的执行绪不能中断kernel 程序,并且在虚拟储存管理模式下,kernel 程序是不被允许换出 (swap out)的,它被存放在系统储存空间从0xC2000000 起始的位置。 NK 的程序代码位于[CEROOT]\PRIVATE\WINCEOS\COREOS\NK 目录下。
2、CoreDLL
CoreDLL 在系统中具有举足轻重的地位,它区隔了应用程序和操作系统的其它模块,是使系统稳定的一个保护性屏障。它提供了两类功能:第一类是外部应用程序系统功能的代理;第二类则是类似字符串处理、随机数生成、时间计算等基本支持函式。前者是主要的功能,它负责系统API 的管理和安装应用程序,系统应用程序的核心软件中断过程就发生在这里。这一个模块是透过CoreDLL.dll 在运行,它是第一段被加载的系统共享程序代码。CoreDLL 的程序代码位于[CEROOT]\PRIVATE\WINCEOS\COREOS\CORE 目录下。
3、设备管理模块
这是Windows CE 的设备管理核心,透过Device.exe 来执行。它提供系统范围内基本的设备列表管理、随插即用管理、电源管理、I/O 资源管理,并提供了装置驱动程序运作的基本机制。这一部分的程序代码位于[CEROOT]\PRIVATE\WINCEOS\COREOS\DEVICE 目录下。
4、数据储存模块
数据储存模块主要是提供系统基本的数据储存能力,其中包括对象储存以及档案系统,这些功能主要是透过filesys.exe 来执行。数据储存模块并没有开放全部的原始程序代码,主要开放的原始程序代码部分位于[CEROOT]\PRIVATE\WINCEOS\COREOS\FSD 这个目录以及[CEROOT]\PRIVATE\WINCEOS\COREOS\STORAGE 这个目录下。
5、图形使用者接口模块
Windows CE 透过这个模块提供的图形使用者接口,它提供几个主要的功能:基本的绘图引擎、窗口管理、接口的事件机制等。这个模块运行时为GWES.exe。这个模块的主要程序代码位于[CEROOT]\PRIVATE\WINCEOS\COREOS\GWE 目录下,与数据储存一样,它的原始程序代码也只开放了一部分。
6、通讯模块
在整个Windows CE 系统中,网络通讯模块是最为独立的一个部分,它是透过一系列的动态链接库来运作,这一部分因为牵涉到较多的Windows 平台公用特性,所以原始程序代码开放的程度也最低。可以找到的程序代码包括TAPI 的一个实作、NDIS 的一个实作版本 (pcx500) , 它们位于[CEROOT]\PRIVATE\WINCEOS\COMM 目录下。
7、OAL 模块
这个模块没有确定的形态,主要包括和硬件相关的若干功能,例如处理器的专用支持程序代码、总线控制器的驱动、系统引导程序、系统初始化程序等等。一般来说OAL 不具有可移植性。
8、驱动程序模块
驱动程序模块实际上并不是一个单独的软件实体,而是一个由驱动程序实体构成的集合,它包括很多组件,执行也比较复杂。它实际上是多个其它模块的底层,例如网络通讯模块的下层就是驱动层,NDIS 实际上可以看作一个具体的类别驱动程序。此外它是分散在系统中的,有大量的驱动程序分布在OAL 中,而系统服务和协议也可以看作是驱动程序,它们由不同的模块管理,例如services.exe 和gwes.exe。
9、Win32 系统服务模块
Win32 系统服务是Windows CE 对应用程序提供的接口,多数公用的系统管理函式,例如,产生执行绪等,都是由NK 负责。细心的读者应该已经发现了模块中的黑色虚线框,它表示系统实际运行时,这一模块某一部分内容被包含在NK.exe 当中。这个模块也是有特殊性的,原因类似驱动模块,它实际上也包含多个模块的上层对外功能接口。在早期的CE 版本中有一组基本的API 函式管理集合,系统和使用者可以透过这组函式,将自行定义的接口注册到系统服务应用程序代理中,因为系统稳定性的缘故,目前这些函式只能在系统内部使用,例如和设备管理相关的Win32 API,就是藉由这组函式注册的。