Windows CE 6.0 系统框架
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows CE 5.0内存模式
CE 5.0
虚拟内存管理器 的运作方式决定 了固定进程slot
模式
(所有的slots都 在这里)
Kernel
Slot 97 – Nk.exe
2 GB 内核空间
共享内存
32个进程
进程Slots占据 VM的低位2GB 空间,这就使得 每个进程有固定 的大小以适合32 个进程数量。
Object Store
ROM FS
Storage Manager
Block Device
Serial
Custom
FTP HTTPD TELNETD
RAM
ROM/ FLASH
Timer INTC
CPU
HARDWARE
Serial
USB (Function)
PCCard
...
Page 12
CE 6.0新内核介绍
memory manager worked
(All slots were always there)
32 processes
Process slots occupied lower
2GB VM, this enforced a
fixed size per process to fit 32 processes
NKStub.lib OEMGLOBAL
nk.exe
KITL IOCTL
kitl.dll
IOCTL library Interrupt library Startup library Cache library OS Timer library
RTC library
RTC Timers Caches
• 网络
CE 6.0支持的BSPs
系列
ARM
MIPS SH4 x86
BSP
Kernel
Intel Mainstone III (C-Step) Device Emulator Board TI OMAP 2420 (ARM v6 core) NEC Rockhopper SG2 Vr5500 Renesas Aspen x86 (CEPC)
Page 26
应用程序兼容性
• 应用程序
• 应用程序二进制兼容性是主要目标 • 良好的应用程序(Win32兼容的)几乎不需要有任何改动 • 托管应用程序已经从操作系统中抽象出来了(平台调用服务问题-
P/Invoke) • 如果应用程序使用CE特定的技巧则可能有问题 • 使用“CEAppCompat”工具来评估兼容性问题
Slot 4 – GWES.exe Slot 3 – Device.exe Slot 2 – Filesys.exe Slot 1 – ROM DLLs
Slot 0 – Execution
Execution slot and shared DLL slot
新的虚拟内存
管理器给每个 进程分配2GB
的VM
CE 5.0
Kernel
Slot 97 – Nk.exe
2 GB 内核空间
CE 6.0
Kernel Filesys. GWES Drivers
Shared memory
Slot 32 Slot 31
: :
Single 2 GB VM
for all processes
每个进程 都有
2GBVM
Slot 6 Slot 5 – Services.exe
• 移植现有驱动器只需极少的工作量
• 每个驱动器只需1-3天的工作量
• 驱动程序的整体结构保持不变
• 主要改变的是驱动器访问客户内存的方式 • 已经没有了SetKMode 和SetProcPermissions方法
用户模式的驱动程序
• 由udevices.exe来装载 • 大多数API和内核模式一样 • 没有权限访问内核的数据结构和内存(无SetkMode) • 例子
CE 6.0系统体系结构
Shell
Services Manager
Services
UM Driver Manager
User Mode Drivers
AAApApppppplilpcilcilaciactatiatoiotioninonssnss
OS DLLs (Coredll, Winsock, CommCtrl, …)
• 每个进程都有2GB的虚拟内存 • 32K进程 • 统一内核
• 关键的OS组件都移到了kernel空间
• 改进的系统性能 • 增强的安全性和健壮性 • 高度的向后兼容性
Windows Embedded CE 6.0内核模式
Enforced fixed process slot
model due to the way virtual
Windows Embedded CE 6.0 New Features
Ying Li Developer Evangelist Microsoft (China) Co., Ltd. v-lying@microsoft.com
我们的议程
• Windows CE的11年发展史: 1996 – 2007
Execution slot 和共享DLL slot
Page 10
Windows CE 5.0系统体系结构
Application(s) COREDLL
NK.EXE
GWES.EXE
FILESYS.EXE
DEVICE.EXE DevMgr.Dll
SERVICES.EXE
OAL
Touch Display Keyboard
Cache library
OS Timer library
RTC library
RTC Timers Caches
Hardware
USB Ethernet Serial
port
port
port
Page 24
Windows Embedded CE 6.0 OAL的设计
kernel.dll
NKGLOBAL
• Windows Embedded CE 6.0的关键特性 • 内核和驱动器的体系结构 • 开发及相应的工具 • 应用场景
2
微软嵌入式系统的布局
.NET Micro Framework
CE 6.0
Wiwk.baidu.comdows XP Embedded
Wearable Devices
Auxiliary Displays
ARMv4i ARMv4i ARMv4i ARMv4i MIPSII & II_FP, MIPSIV & IV_FP SH4 X86
是否包括源码?
Yes Yes Yes Yes
Yes
Yes Yes
Page 22
OAL的变化
• 把OAL从内核分离了出来
• OAL 变成了“NK.EXE” • Kernel代码变成了“Kernel.DLL”
Windows Mobile Windows Mobile Smartphone Pocket PC Phone
Retail
Windows-based
Point-of-Sale
terminals
Health Monitoring
Portable Media Center
Windows Automotive
Page 7
CE 6.0操作系统
Windows CE 5.0内存模式
• 虚拟内存映射
• Kernel有2GB • 所有进程共享2GB虚拟内存映射
• 被分成32MB “slots”
• 32个进程的限制
• 每一个进程分配一个32MB的slot • 总共只有32个slots可供分配
• 共享内存
• 用户空间的上半部分是共享内存 • 能被所有进程读写
• 一些APIs不复存在
• 例如: SetKMode, CEZeroPointer, RemoteHeapAlloc, SetProcPermissions
• 一些APIs不被鼓励使用
• 例如: RegisterDevice, CreateFileForMappingW, IsAPIReady
11/1997
"Jameson" 4.1
"Talisker" Windows CE
.NET 4.0
1/2002
"McKendric" 4.2
"Yamazaki" CE 6.0
11/2006
行业趋势
设备
• 设备的联网需求持续增长(在家里,在工作时,在户外) • OEM在自己的嵌入式设备中集成许多越来越复杂的应用 • 设备需要和其他设备和技术能更好的在一起工作
• 可以独立升级 • 整体的OAL结构仍然不变
• OEM功能不变 • OAL/Kernel的接口经由共享结构
Page 23
Windows CE 5.0 OAL的设计
Nk.exe
Kernel
OAL
KITL library
IOCTL library
Interrupt library
Startup library
Hardware
USB Ethernet Serial
port
port
port
Page 25
CE 6.0增强的安全特性
• 新安全基础构架
• 允许我们在将来构建更好的安全模式 • 用户和内核模式空间的分离
• 与安全开发生命周期(SDL)的一致性
• 在整个操作系统中实现了深度防护战略 • 安全的C运行时库 • SafeSEH • PREfast工具
Windows CE的发展历程
"Alder"
Windows CE 1.0
11/1996
"Cedar" Windows CE 3.0
4/2000
"Macallan" Windows CE 5.0
8/2004
"Tomatin" NMD FP
SP1 SP2 2.11 2.12
"Birch" Windows CE 2.0
内存 映射文件 用户DLLs
进程代码
新的VM管理器 不再以进程slot 模式来进行操作 (您可以随需创建
内存)
32K进程
新的OS布局
• 把关键的驱动程序,文件系统和图形窗口管理器移动 到内核
• 益处
• 极大的减少了这些组件间的系统调用开销 • 减少了所有从用户空间到内核空间的调用的开销 • 增加了基本OS服务间的代码共享
Medical devices
Entertainment devices
Remote Controls
Mobile handhelds
VoIP phones
Sensor Networks
Set-top boxes
Gateways
Increasing functionality
Decreasing hardware requirements
• 全球就绪
• 操作系统组件支持14种语言 • 跨语言和地区的深度功能测试改进了我们的操作系统全球支持特性
Page 27
CE 6.0 API上的变化
• 一些APIs移动到内核空间
• 例如: InterruptInitialize*, InterruptDone*, ReadRegistryFromOEM*
• ARM, x86, SH4, MIPS
• 开发选项
• Win32, .NET CF, MFC, ATL, ...
• 共享源码 • 10年支持策略
6
CE 6.0关键特性
• 比Windows CE 5.0更多的特性 • 最新的开发工具 • 下一代内核 • 应用程序兼容性 • 增强的健壮性和安全性 • 用户模式驱动器模式 • 增加了许多新特性
Slot 32 Slot 31
: :
Slot 6 Slot 5 – Services.exe
Slot 4 – GWES.exe Slot 3 – Device.exe Slot 2 – Filesys.exe Slot 1 – ROM DLLs
Slot 0 – Execution
所有进程共
享2GB虚拟 内存
开发者
• 设备在消费者手里的生命周期正越来越短
12 months
• 开发者要在时间减少的同时做更多的开发
• 根据应用场景的不同设备的差异越来越大
• 我们希望在硬件和软件平台上的投资能在多个产品中用到
CE 6.0: 什么保留了下来?
• 32位多任务操作系统 • 内存占用少 • 组件化 • 硬实时 • 处理器体系结构
Kernel.DLL
NK.EXE Bootloader
KCoredll.DLL
FileSys.DLL
GWES.DLL
Hardware
Device.DLL
Kernel Drivers
用户 模式
内核 模式
Page 18
驱动程序
• 将支持两种类型的驱动程序
• 追求性能的内核模式 • 追求健壮性的用户模式
• 扩展总线,例如USB • 键盘和触摸屏
• 性能要求不是很严的驱动程序可以考虑移到用户模式
• 被调用次数比较少但是做得工作比较多
内核模式的驱动程序
• 驱动程序经由device.dll加载到内核空间 • 对内核的数据结构和内存有完全的访问权限 • 能够使用的APIs没有改变
• 内核模式的驱动程序不能显示UI • 使用CeCallUserProc来调用用户模式下的DLL