Windows ce的体系结构和功能


                             Windows ce体系结构图

 

操作系统层

操作系统的基本功能被放在多个独立的进程(exe)里面实现。在运行的时候,这些进程大致有如下几个:

l         内核NK.EXE

l         图形系统GWES.EXE

l         对象存储FILESYS.EXE

l         设备管理系统DEVICE.EXE

l         服务SERVICES.EXE

 

系统调用与CoreDLL.DLL

CoreDLL.DLL不是一个单独的进程,它是一个会被所有用户进程都加载的动态链接库。所有的应用程序都不能直接与操作系统或硬件打交道,如果用户程序希望访问windows ce所提供的服务,那么只能通过CoreDLL.DLL进行。

Windows ce的系统调用

ü         应用程序进行系统调用时,它直接调用的是CoreDLL.DLL中的一个(Wrapper)函数,此包装函数为真正的系统调用准备所需要的参数。CoreDLL.DLL会被Windows CE的所有进程加载,因此这一步其实只是进程内部的函数调用。

ü         CoreDLL.DLL会发起一个异常,也可叫做软件中断。在不同的CPU体系结构上,异常的实现原理也不一样。总之,异常的作用是把执行权重新由应用程序还给操作系统。

ü         操作系统内核会捕捉所有的异常,当操作系统捕获到此异常时,也就重新获得CPU。在Windows CE上,NK.EXE会处理这个软件中断,这样进行系统调用的应用程序进程就挂起了,挂靠就转入了NK.EXE。

ü         接下来,NK.EXE根据系统调用的不同,找到具体实现该系统调用的进程(这些进程在Windows CE上也被叫做PSL,全称是Protected Server Library)。此进程可能是NK.EXE,也可能不是。如果不是NK.EXE,那么执行就再次跳转,把执行转到具体实现系统调用的进程去执行。

ü         实现这个系统调用的进程得到执行的机会。

ü         系统调用结束,应用程序可以从对CoreDLL.DLL的调用处返回,然后继续执行。

要注意的是CoreDLL.DLL中有些函数并不是系统调用的包装函数,例如字符串处理函数,当应用程序调用这类函数时,就不会发生自陷和进程执行的跳转。

由上CreateWindow()的调用可以看出,windows ce中的每次系统调用都会导致多个进程之间频繁切换,而且系统调用所涉及的数据也需要在多个进程之间迁移,这样势必会使整个系统的效率降低。其实,在系统调用的整个过程中,并没有发生真正的线程上下文切换。Windows ce内核负责把api调用转到实现该api的PSL进程。PSL进程会把进行系统调用的执行线程从一个进程迁移到下一个进程。比如说,上个例子中,虽然CreateWindow系统调用会在应用程序、NK.EXE和GWES.EXE中来回切换,但是在3个进程中招待的纯种是同一个线程。而所谓的“切换”只是把执行进程的虚拟地址空间映射到了Slot
0。Windows ce内核负责把应用程序中的用户态线程改变访问权限,然后把它迁移到系统进程中,在整个系统调用过程中,这个线程在3个进程中使用同一个栈和同一些寄存器。当这个线程离开PSL进程的时候,windows ce内核再把它的特殊访问权限移除。

内核NK.EXE

系统运行时,windows ce的内核表现为NK.EXE进程。NK.EXE是所有windows ce的系统中都存在的核心进程,它表现了win32 API核心中进程创建加载、纯种高度、中断处理和内在管理等核心功能。

NK.EXE由NK.LIB与OAL.LIB组成。NK.LIB是由微软提供的,它的代码与CPU指令体系结构相关而与具体的外设无关,此种设计可使OAL尽可能小OAL.LIB是OEM层中的OAL代码编译后的输出。

时间: 2024-10-26 14:13:56

Windows ce的体系结构和功能的相关文章

Windows CE嵌入式导航系统研究(内核相关)

1.1 嵌入式车载导航系统的软件设计流程 嵌入式车载系统软件主要包括系统内核.驱动程序.应用程序三部分.设计的过程当中,我们采用瀑布模型进行设计,首先制定Windows CE5.0系统内核,再次编写相关设备驱动,最后编写或移植应用程序. 制定内核时,我们采用SunSaung2440 BSP(板级支持包)进行制定,同时提交组建保证系统支持网络通讯.文件系统.CAB包安装.汉语支持等功能.不仅如此,为方便系统应用程序开发,内核制定之后,我们发布相应的SDK. 图 5.1 软件设计流程 1.2 Win

基于S3C2410的Windows CE 5.0 BSP移植

基于S3C2410的Windows CE 5.0 BSP移植 摘要  嵌入式开发中一个重要的环节是板级支持包(BSP)的开发,实际开发过程更倾向于移植BSP而不是重新开发BSP.本文先介绍了samsung公司的S3C2410微处理器和嵌入式操作系统Windows CE 5.0 特性,分析BSP结构,在此基础上,通过bootloader, OAL, 触摸屏驱动的移植来具体探讨BSP移植过程.   1 引言 在当今后PC时代,嵌入式系统应用得越来越广泛,嵌入式产品充斥着许多领域,日常生活的手机,MP

Windows CE嵌入式导航系统研究(关键技术)

1.1 GPS全球定位技术 GPS(Global Position System):全球定位系统,它是美国从上世纪 70 年代开始研制,历时 20 年,耗资近 200 亿美元,于 1994 年全面建成的利用导航卫星进行测时和测距,具有在海.陆.空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统.如今,GPS 已经成为当今世界上最实用,也是应用最广泛的全球精密导航.指挥和调度系统. 1.1.1 GPS组成 GPS 系统主要包括有三大组成部分,即空间星座部分.地面控制部分和用户设备部分[6

加密Windows CE系统

一直留意我著的文章的网友没有忘记,我在<让自己编写的DLL加载到Slot1>文章中向所有阅读这篇文章的网友询问一个问题,关于signfile.exe的参数key container的设置问题,至今没有人回答我.不过最近我已经自己研究搞定.经过实验,实现了CE提供的可信任环境."可信任环境"说通俗一点就是让你定制的CE内核启动后,只能运行内核包含的EXE.DLL模块和签名过的EXE.DLL模块,非签名EXE.DLL无法运行."可信任环境"保证了你的内核的安

基于PPP协议的Linux与Windows CE网络

本文介绍了通过网络实现 Linux 主机与 Windows CE 设备协同工作的方法.本文首先利用PPP 协议在 Linux 主机与 Windows CE 设备之间建立起连接,然后在 Windows CE 设备上运行一个 FTP服务器使得 Linux 主机能够访问 Windows CE 设备上的资源.本文所介绍的解决方案,对 Windows 9x/2000/NT 主机同样适用. 背景介绍 Linux是一个类似于UNIX 的操作系统,它起源于芬兰一个名为Linus Torvalds 的业余爱好,但

Windows CE环境下无线网卡的自动安装

摘要:讨论了Windows CE环境下无线网卡的安装,并提出了一种在系统断电重启时自动安装无线网卡的解决方案.对Windows CE的系统定制.应用程序的开发及系统封装进行了介绍. 关键词:嵌入式系统 Windows CE 无线网卡 设备驱动 Windows CE是为多种嵌入式系统和产品而设计的紧凑.高效.可升级的操作系统,并特别为有限的硬件资源设计了多线程.多任务和完全优先的操作系统环境.在无线通信领域有很大的应用前景. 本文重点讨论了Windows CE环境下无线网卡的安装,并提出了一种在系

Windows CE嵌入式导航系统研究(硬件设计1)

1.1 ARM微处理器的选择 1.1.1 ARM微处理器系列 ARM 微处理器目前包括下面几个系列,其它厂商基于ARM 架构的处理器,除了具有ARM 架构的共同特点以外,每一个系列的ARM 微处理器都有各自的特点和应用领域. l ARM7 系列 l ARM9 系列 l ARM9E 系列 l ARM10E 系列 l SecurCore 系列 l Inter 的Xscale l Inter 的StrongARM 其中,ARM7.ARM9.ARM9E 和ARM10E 为4 个通用处理器系列,每一个系列

Windows CE嵌入式导航系统研究(应用程序相关)

1.1.1 TCPMP多媒体播放器 本系统中采用的多媒体播放器是TCPMP,TCPMP播放器播放速度很快且支持多达几十中多媒体格式.TCPMP开源项目,同时支持Windows CE操作系统,而且提供很好的扩展性,例如需要重新编写TCPMP界面只需重新编写interface.plg即可.TCPMP提供全部的源代码,移植非常方便,只需编译后将生成的文件拷贝到目标机器运行即可.TCPMP多媒体播放器界面非常简洁,如图 5.35所示. 图 5.37 TCPMP软件界面 另外.TCPMP还支持应用集成,可

Windows CE嵌入式导航系统研究(软件平台的选择)

1.1.1 软件平台的选择 1. 操作系统的选择 尽管嵌入式系统有着无比广阔的市场需求和发展前景,但嵌入式系统的发展多年来却经历了一个曲折和痛苦的历程.随着微处理器的产生,价格低廉.结构小巧的CPU和外设连接提供了稳定可靠的硬件架构,那么限制嵌入式系统发展的瓶颈就突出表现在了软件方面.从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有Tornado/VxWorkx.pSOSystem.Neculeus和Windowss CE.QNX.VRTX,以及沸沸扬扬的"女娲计划",中国