wince与linux的比较(摘录)

来源:互联网 发布:mac mysql dmg 网盘 编辑:程序博客网 时间:2024/06/07 07:43
1) WinCE与Linux有何区别?(商业模式,学习和开发难度,对硬件的支持,稳定性,对工程师未来发展的帮助,对研发中心未来发展的帮助) 
嵌入式Linux OS与Windows CE相比的优点: 
第一:Linux是开放源代码,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者;Windows CE目前6.0内核全部开放,GUI不开放。第二:Linux的内核小、效率高;Windows CE相比,占用过多的RAM。第三Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE需要版权费用。第四Linux不仅支持x86芯片,还是一个跨平台的系统。更换CPU时就不会遇到更换平台的困扰。第五,Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持,目前WINCE的网络功能也比较强大。 
嵌入式Linux OS与Windows CE相比的弱点: 
第一:LINUX开发难度较高,需要很高的技术实力,WINCE开发相对较容易,开发周期短,内核完善,主要是应用层开发。第二:LINUX核心调试工具不全,调试不太方便,尚没有很好的用户图形界面,WINCE的GUI丰富,开发工具强大;第三,系统维护难度大。Linux占用较大的内存,如果去掉部分无用的功能来减小使用的内存,但是如果不仔细,将引起新的问题。 
2) WinCE 5.0与6.0有何区别? 

100%毫无保留地开放Windows Embedded CE 6.0内核,微软还将Visual Studio 2005专业版作为Windows Embedded CE 6.0的一部分一并推出。Visual Studio 2005专业版将包括一个被称为Platform Builder的功能强大的插件,它是一个专门为嵌入式平台提供的“集成开发环境”。这个集成开发环境使得整个开发链融为一体,并提供了一个从设备到应用都易于使用的工具,极大地加速了设备开发的上市。Windows Embedded CE 6.0重新设计的内核具有32,000个处理器的并发处理能力,每个处理有2GB虚拟内存寻址空间,同时还能保持系统的实时响应,加入了新的单元核心数据和语音组件,6.0包含的组件更便于开发者创建通过Windows Vista内置功能无线连接到远程桌面共享体验的投影仪,充分利用了多媒体技术,以开发网络媒体设备、数字视频录像机和IP机顶盒等。


Linux是单体内核,即将图形、驱动及文件系统等功能全在操作系统内核中实现,运行在内核状态和同一地址空间,其优点是减少了进程间通信和状态切换的系统开销,获得较高的运行效率;缺点是内核比较庞大!


WinCE是微内核,即在内核中实现基本功能,而将图形系统、文件系统、设备驱动及通信等功能都放在内核之外,以系统服务的形式提供各种功能。其不足之处在于运行中用户状态和内核状态须频繁地切换,从而导致系统效率不如单体内核。

从以面介绍来说,很明显在实时性来说,Linux要优于WinCE,但Linux方面做驱动、文件系统等,如开发人员的水平不高,会严重影响系统的稳定性!

其实Linux跟WinCE各有优缺点,Linux内核稳定、网络功能强大,网络资源多,而且还免费。但不足的地方就是网络上的免费资源大多是试用级,而不是产品级,N多BUG,以致让Linux背了黑锅!而操作不够人性化、要OEM厂商开放源码,这些是Linux跟WinCE竞争的劣势。

而WinCE的强处在于开发人员从Windows转过来很容易,开发工具集成、功能强大,而且界面美观(但其实里面也有不少BUG)。但要收费这点是所有用WinCE的公司的心病,而且WinCE的稳定性也有待提高。

个人建议,如果有一个有实力而比较稳定的团体,开发一些长线产品,使用Linux会比较好。而实力差一些的公司,开发一些使用带图形界面的产品,用WinCE会比较好。

Windows Linux 不同点
1. 驱动与应用的数据交互:
对于驱动中分配的内存,windows 通过memorymap 将驱动中的内存空间映射到应用层,应用和驱动是通过不同的地址同一地址空间的数据操作;而linux中驱动与应用层若存在数据交互的话,是通过CopyToUser, CopyFromUser进行的,看上去在这点上windows的效率会更高些。linux也有类似的mmap机制。可以把内核态的地址映射到用户空间中。
2.当应用与驱动需要同步时:
Linux中是在应用中通过调用IOctl让等待在驱动中进行,此时驱动还可以处理其它任务,可以得到响应的事件,并通知在等待中的任务结束,从而应用程序可以继续执行下去。
Windows如果将等待放到驱动中的话,会发现驱动就在那死等了,不再响应其它输入。因此,windos中的等待是在应用中回调用waitobject函数。 
WinCE操作系统实现了进程/线程两级管理模型。
linux本身不支持线程,它支持进程一级。如果要使用线程的话,需要使用线程库。

好文:LINUX 和 WINDOWS 内核的区别

[声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1.html]

原创粉丝点击