Windows CE,你妈吗喊你在多核上玩玩
转自:http://hezongjian.com/blog/?p=9693
众所周知,CE的内核是完全重新写的,与9x根nt没有任何关系,这给CE带来了较好的实时性及灵活性。从诞生之日起,CE的内核改过两次,第一次是3.0,极大的增强了实时性,第二次是6.0,去除了内存/应用32 / 32的限制。如此看来,貌似已经比较完美了。从6.0发布以来,我一直乐观的觉得6.0的内核应该可以至少再顶三个版本了,下次更新内核大概要到CE 9.0了(猴年马月….)。但是计划不如变化快,信息产业瞬息万变,很多预言都会被证明是很可笑的。我的这个“预言”也不例外(对在08年TechEd上听我演讲的听众说声抱歉,当时我还极力鼓吹多余的Kernel
feature都是没必要的)。短短几年时间,如果现在你再问我新版本的CE要不要改内核。我会一口咬定,改,最好马上改。
个人观点,欠改的地方有两个,内存映射和SMP支持。
首先说内存映射。CE从诞生之日起就在Kernel的3GB起始处映射了2个512MB的虚拟地址。一个是有cache的,一个是没cache的。这使得CE最大的物理内存就只有512MB,512已经是理论极限了,再多了就不认了。512这个数字在嵌入式系统上一直是天文数字,几年前还是。谁知道随着智能手机软件(应用复杂化)跟硬件(内存白菜价)的飞速发展,在手机上装个512MB的内存也没什么大不了的。在CE上,如果装了512MB内存,麻烦还真不小。这个限制应该改了。倒也不是难事,只是向下兼容性要打折扣了。
其次说一下SMP。CE诞生以来一直是针对单CPU的,即使在PC机上,多核技术已经兴盛很长时间了,但是依然没有能够打动CE加入SMP支持,因为用CEPC的人,一般也不会找个多核CPU。时代又不同了,CE支持的主流平台──ARM,这几年也跟着玩起了多核。ARM11, ARM Cortex A9都玩起了MPCore。这一玩,不得了了。如果CE不跟着玩,几年后,可能移动设备上就看不到CE的影子了。*nix系统(iphone和android)可是原生支持SMP的。虽然*nix系统实时性没有CE高,但是人家毕竟支持smp,可以把CPU的能力都发挥出来。CE啊,抓紧把spinlock,CPU
Affinity这些Desktop Windows上的东西搬过来吧(BSP的实现又复杂化了,当然这些东西要BSP支持)。
其它还有没有要改的呢,可能有。例如Windows消息机制,现在的WM_LBUTTONDOWN, RBUTTONDOWN消息已经远远不适合multi touch了。当然这个可能不需要改内核,driver和API改改就可以,魅族的手机已经实现了。
下一个版本的CE大概今年就会发布吧。新的CE里面这两点会不会改进,目前还没有官方的消息。拭目以待吧。
(参考资料,ARM的多核:http://www.arm.com/products/CPUs/ARM11MPCoreMultiprocessor.html)
关于512M的大小和地址限制,没办法,MIPS和SH 硬件上就这么访问虚拟内存地址空间的,所以只要CE一天要兼容这2个玩意,这个包袱还得一直背下去。2013年6月份发布的Windows Embedded Compact 2013就只支持ARM和x86内核,见http://blog.csdn.net/loongembedded/article/details/12841535
Windows CE,你妈吗喊你在多核上玩玩的更多相关文章
- 移植到Windows CE 的经验
Windows CE 是微软早期推出的嵌入式设备和移动设备的开发运行平台,虽然目前移动端几乎都是android和ios的天下,但是,在嵌入式设备领域,Windows CE仍然占有一块地盘.很多用户希望 ...
- windows CE 6.0编译报BLDDEMO: There were errors building MY283错误解决办法
今天开始正式进入windows ce程序开发. 第一次编译windows ce6.0的系统,25分钟编译后报:BLDDEMO: There were errors building MY283 错误. ...
- C# windows ce编程-----我的第一次
最近公司要求开发抄表软件,软件分为PC端和手持终端(简称HHU),HHU是基于英文版的windows ce6.0操作系统,开发环境要求VS2005+SQLite数据库,开发语言为C#,因为是第一次基本 ...
- Windows CE Notification API的使用方法
1 引言 以Windows CE 为操作系统的掌上电脑(如PocketPC或HPC),除具备PC的功能外,还具备很强的自身控制能力.Windows CE API超越微软其他操作系统的 API ...
- windows ce.net开发概述
依据开发所处的层次以及开发工具的不同,能够将嵌入式系统开发分为系统开发和应用开发. 系统开发所涉及的内容包含三个方面:系统定制.驱动程序开发.操作系统一致(BSP开发). 一系统开发 (1) ...
- Microsoft Windows CE 5.0 Board Support Package, Boot Loader, and Kernel Startup Sequence
Summary Learn about the initial, low-level startup sequence and the hardware platform functions that ...
- (转) 关于Windows CE和Windows Mobile
转发自http://www.cnblogs.com/chump/articles/1281955.aspx 一.Windows CE Windows CE是微软的嵌入式操作系统主要的一种,面世于199 ...
- (转) Windows Mobile和Windows CE的区别
转发自 http://blog.sina.com.cn/s/blog_6250bbe60100tsf3.html WinCE Windows CE 是一个可定制的操作系统: Windows Mobil ...
- E-Form++ for Windows CE源码库2020,嵌入式开放源码!
E-Form++ for Windows CE源码库2020! 现在就把这个下载到您的Windows CE中,体验极致HMI触摸. Windows CE评估版下载! 1. E-Form++ for ...
随机推荐
- C#实现网络传输数据加密
1. 分组密码 分组密码是将明文消息编码表示后数字序列划分成长为n的分组,各组分别在密钥的作用下进行变换输出等长的数字序列,即密文.一次加密一个数据组,加解密所使用的是同一密钥,故其通常也称为对称加密 ...
- WordPress非插件添加文章浏览次数统计功能
一: 转载:http://www.jiangyangangblog.com/26.html 首先在寻找到functions.php.php文件夹,在最后面 ?> 的前面加入下面的代码 func ...
- CentOS安装libpcap
1.安装GCC: yum -y install gcc-c++ 2.安装flex: yum -y install flex 没有flex,直接安装libpcap会提示"Your o ...
- 《C和指针》 读书笔记 -- 第14章 预处理器
1.相邻字符串常量被自动链接为一个字符串:"my""name"="myname" 2.##把位于两边的符号连接成一个符号: #define ...
- WPF中的多点触摸事件
UIElement在WPF4下添加了很多支持多点触摸的事件,通过它们可以在硬件支持的情况下处理多点触摸,以下通过代码来说明通过处理这些事件,我们可以做些什么: 一.触摸相关的多种事件,跟鼠标事件是对应 ...
- kappa 一致性系数计算实例
kappa系数在遥感分类图像的精度评估方面有重要的应用,因此学会计算kappa系数是必要的 实例1 实例2
- 【学习总结】UIGestureRecognizer(手势识别器)
基本知识点 : -> IOS 3.2之后 , 苹果推出了手势识别功能 ( Gesture Recognizer ) 在触摸事件处理方面 , 简化开发难度. -> UIGesture Rec ...
- python解决汉诺塔问题
今天刚刚在博客园安家,不知道写点什么,前两天刚刚学习完python 所以就用python写了一下汉诺塔算法,感觉还行拿出来分享一下 首先看一下描述: from :http://baike.baidu. ...
- DateTime.ToString()
/* [y]代表年份,注意是小写的y,大写的Y并不代表年份. [M]表示月份. [d]表示日期,注意D并不代表什么. ...
- ios 中的小技巧 - 总有你想要的 一
UITableView的Group样式下顶部空白处理 在viewWillAppear里面添加如下代码: //分组列表头部空白处理 CGRect frame = myTableView.tableHea ...