1.支持多种硬件平台
由于嵌入式设备硬件平台的多样性,CPU芯片的快速更新,嵌入式操作系统要求支持常用的嵌入式CPU,如X86, ARM, MIPS, POWERPC等,并具有良好的可移植性。另外还需要支持种类繁多的外部设备。Linux支持以上几乎所有的主流芯片,并且还在不断的被移植到新的芯片上。而在这方面,WinCE显然差得很远。
2.占有较少的硬件资源
由于多数嵌入式系统具有成本敏感性,处理器速度较低 ,存储器空间较少,这要求嵌入式OS体积小,速度快。Linux体系结构比较灵活,易于裁减,可以小到2M flash,4M RAM。而WinCE对资源的要求更高。
3.高可定制性
由于不同的嵌入式应用对系统要求各不相同,这要求嵌入式OS具备高可定制性,能够根据需要方便的增加和减少各项功能模块。这一点对于嵌入式领域至关重要,而Linux由于图形系统不在内核中,且支持模块机制,内核可根据需要加入或去掉功能。其外围工具拥有众多选择,更由于可以自由修改源代码,具有极强的可定制性。而WinCE/Windows根本无法做到这一点。
4.具有实时处理能力
实时应用分为硬实时和软实时两大类,嵌入式OS需要明确是否支持实时和支持哪一类实时应用,需要提供最坏情况响应时间为多长。Linux和WinCE/Windows最初设计时都没有考虑实时应用,但众多的实时Linux项目已使Linux具备了硬实时和软实时处理能力,硬实时有RT-Linux和RTAI,而2.6中加入了可抢占核心,使得Linux具备了软实时处理能力,此外还有Timsys和Montavista等实时Linux实现。Linux自由开发模式的优点得到了充分的体现。Windows虽然也有第三方提供类似于RT-linux的实时功能,但由于微软未提供这方面的支持,也由于Windows可靠性不能满足要求,很少有人在实时领域使用Windows。但RT-linux已经在美国航天部门,印度军方等得到了广泛应用。还有Montavista,Timsys的实时Linux都有很多成功案例。
5.具备强大的网络功能
现在,越来越多的嵌入式设备需要具备网络功能。这要求嵌入式OS支持常用的网络协议和可靠的网络功能。Linux的网络功能经过几次改进,其效率,功能都很突出。且具有众多的网络工具,支持几乎所有常见的网络协议。这些使得Linux在网络设备中倍受青睐,很多防火墙,低端路由器等中使用的都是Linux。而未闻WinCE/windows在这方面有什么应用。
6.高安全性和高可靠性
嵌入式设备往往对安全性和可靠性要求很高,这要求作为基础软件的嵌入式OS具有高安全性和高可靠性。如骨干网的路由器,交换机等。Linux的可靠性是经过实践检验的,并进一步向高端发展,冲击Vxworks, Unix的市场。安全性方面Linux病毒极少,并拥有众多安全增强,有的安全增强Linux达到了B1级别(红旗RFSOS通过了国家GB17859第三级,等同于TCSEC B1级)。而Windows病毒众多,漏洞不断,虽然微软大力宣传其通过了CC标准EAL4级,但是需要说明的是,EAL4仅仅说明Windows在多大程度上满足了它的安全目标,显然更为重要的是这个目标是什么,事实上,它通过的是CAPP的EAL4级,仍然相当于TCSEC C2级,Win2000的可靠性比起98等来说有了明显提高,但尚不足以向高端冲击,其安全性问题也会大大影响它的可靠性,这二者是紧密联系的,不能孤立讨论。
7.具有完善的嵌入式GUI和嵌入式浏览器
面向用户的嵌入式终端设备如Smart Phone等,都要求嵌入式OS具有功能完善,控件丰富的嵌入式GUI,并支持功能强大的嵌入式浏览器。在这方面WinCE有完善的解决方案,Linux也有QT/Embedded等GUI,Opera等嵌入式浏览器,拥有众多的选择。
8.实现嵌入式日志文件系统,具备断电保护能力。
这些功能Linux和Windows都能达到。
9.能够提供完善的开发工具集。
Linux下的开发工具众多,但不如Windows开发工具易用。不过Windows的开发工具不是为嵌入式领域设计的,功能也不完善。
10.能够快速启动
启动速度二者差不多,但很多嵌入式设备并不需要图形界面,且由于Linux有源代码,在硬件固定的情况下可以加速启动,这时Linux就比WinCE/Windows启动快多了。
通过以上分析,可以很清楚地看到,总体比较而言,在嵌入式领域Linux比WinCE/Windows具有明显优势。正因为如此,嵌入式Linux比WinCE/Windows应用领域要广泛的多。WinCE的优势在于PC衍生产品,如Pocket PC,高端PDA等。但在其他众多的嵌入式领域中,WinCE就并不适合了。