windows ce的体系结构和功能

 

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调用转到实现该apiPSL进程。PSL进程会把进行系统调用的执行线程从一个进程迁移到下一个进程。比如说,上个例子中,虽然CreateWindow系统调用会在应用程序、NK.EXEGWES.EXE中来回切换,但是在3个进程中招待的纯种是同一个线程。而所谓的“切换”只是把执行进程的虚拟地址空间映射到了Slot 0Windows ce内核负责把应用程序中的用户态线程改变访问权限,然后把它迁移到系统进程中,在整个系统调用过程中,这个线程在3个进程中使用同一个栈和同一些寄存器。当这个线程离开PSL进程的时候,windows ce内核再把它的特殊访问权限移除。

内核NK.EXE

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值