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 ...
随机推荐
- JSON C# Class Generator ---由json字符串生成C#实体类的工具
json作为互联网上轻量便捷的数据传输格式,越来越受到重视.但在服务器端编程过程中,我们常常希望能通过智能提示来提高编码效率.JSON C# Class Generator 能将json格式所表示的J ...
- 关于浏览器兼容处理—— 识别IE浏览器
var b_name = navigator.appName;var b_version = navigator.appVersion;var version = b_version.split(&q ...
- python字典根据value排序
参考: http://docs.python.org/2/howto/sorting.html http://www.cnpythoner.com/post/266.html http://ghost ...
- ics OverbyteIcsHttpProt
else begin { V7.05 begin } if (FRequestType = httpPOST) or (FRequestType = httpPUT) then begin {$IFD ...
- Beaglebone Back学习四(GPIO实验)
GPIO Beaglebone Back开发板引出了92个引脚,其中只有65个GPIO口可通过配置使用,由于引脚具有“复用”的特性,大约每个引脚有8种工作模式(Beagle System Refere ...
- 解决WPF图片模糊最佳方法(绑定PixelWidth与PixelHeight)
从事WPF开发一年有余,对于图片显示模糊相信很多人都遇到过.网络上查找能得到一堆解决方法,但都是会带来其他负面影响得不到最佳效果.其实,有些图片会因为垂直分辨率/水平分辨率不同而造成在WPF界面上显示 ...
- 【信息学奥赛一本通】第三部分_队列 ex2_3produce 产生数
给出一个整数n(n<=2000)(代码可适用n<=10^31)和k个变换规则(k<=15). 规则:1.1个数字可以变换成另1个数字: 2.规则中右边的数字不能为零. BFS #in ...
- ContextMenuStrip控件
设置单击窗体右键菜单 注意如果想在form1中显示右键菜单,那么要设置form1的属性
- 中文变英文字母(ios)
[_EnglishName setString:addressPerson.name]; if (CFStringTransform((__bridge CFMutableStringRef)_Eng ...
- nodejs read/write file
fs.readFile('c:\\tmp\\helloworld.txt','utf8',function(err,data){console.log(data);}) var token=fs.re ...