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 ...
随机推荐
- CSS3.0动画之hover---Y轴----3D旋转
div#div2{display: table; width: 100%; height: 100%; text-decoration: none; outline: none; -webkit-tr ...
- 用 .htaccess 实现网址规范化
网址规范化在 SEO 中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成内容重复,还不能正确的集中权重.目前大多数网站,绑定的域名都有带 www 和不带两个版本,甚至很多网站同时绑定多个域名 ...
- php5 图片验证码一例
php5 图片验证码. GD库的函数1,imagecreatetruecolor -----创建一个真彩色的图像imagecreatetruecolor(int x_size,int y_size) ...
- 获取json对象长度的问题
平时,我们获取一些字符串或数组的长度的时候会使用length,例如: var str ="asdasd" console.log(str.length) //输出6 var arr ...
- SSH-KEY服务及批量分发与管理实战
SSH服务 一.SSH服务介绍 SSH是Secure Shell Protocol的简写,由IETF网络工作小组制定:在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后再进行数据 ...
- python 判断 windows 隐藏文件/系统文件
linux 下隐藏文件是以句号 “.” 开头的文件,根据文件名即可判断是否为隐藏文件. win 下是以文件隐藏属性确定的,所以,只能通过微软的 API 获取隐藏属性来判断是否为隐藏文件. 1. win ...
- Python urllib2多进程共享cookies
如果想多个进程共享同一个cookies,不用每个进程都重新登录,可以就cookies保存到一个文件,然后多个进程直接共享一个锁来实现 1.一个进程登录完成后,把cookies保存到一个文件里面 sel ...
- dom树的介绍,及原理分析
三.解析和DOM树的构建 1.解析: 由于解析渲染引擎是一个非常重要的过程,我们将会一步步的深入,现在让我们来介绍解析. 解析一个文档,意味着把它转换为一个有意义的结构——代码可以了解和使用的东西,解 ...
- EXTJS 3.0 资料 控件之 combo 用法
EXTJS combo 控件: 1.先定义store //年款 var comboData_ReleasYear = [ ['], ['], ['], ['] ]; 2.定义combo控件 { lay ...
- UITextField监听文字输入事件
[textField addTarget:self action:@selector(textFieldDidChange:)forControlEvents:UIControlEventEditin ...