Kernel Functionality Modifications: Windows CE 5.0 vs. Windows Embedded CE 6.0
里面的文章都是介绍WinCE6内核改动的,确实不错,建议大家都看看
这里也陆续翻译
这次翻译的是《Kernel Servers: Windows CE 5.0 vs. Windows Embedded CE 6.0》
欢迎大家讨论和指正不准确或者错误的地方
内容:
内核服务:WinCE5 对比 WinCE6
wwfiney@ARMCE
在 WinCE5下,有一个叫做PSL(process server library)的进程实现了API集供应用程序
调用。但是在WinCE6下,引入了内核模式服务(kernel-mode server)的概念,内核模式服务
就是被内核进程加载的 dll,这些 dll实现了 API集。
内核模式服务由内核版本(kernel-only version)的 coredll支持,这个dll叫做k.coredll.dll。
任何链接了 coredll.dll并且由内核加载的代码,都会自动使用k.coredll.dll来代替 coredll.dll。
在 WinCE6.0 当中,用户模式服务(user-mode server)是指注册了一组 API 集的进程。
Services.exe就是一个用户模式服务,用来加载一些驱动。这些驱动在以前的 WinCE版本中
是由 filesys,device和 gwes加载的。
内核服务的优点:
· 提高大部分 API调用的性能
· 简化并且提高API调用的安全性
内核服务所带来的折衷:
· 用户模式服务的 API 调用效率会变低,原因是参数需要 marshalling(后面的文章会解释什么是
marshalling)