|
|
|
|||||
|
|
Choice of RTOS, Are you Still Using Linux? 作者 Ray RTEMS版权所有,转载请注明:来源http://www.rtems.net,作者Ray 这篇文章的灵感来自我去年分析员考试的一片论文。以此文献给我的网友ChangZhou。虽然我现在还有很多项目进行在Linux平台上面,但是我认为,对于嵌入式设备,Linux在大多数情况下并不是首选。同时,我也不认为在国内用得沸沸洋洋的uCOSII是好的选择。 笔者应该可以算作国内第一批玩Linux的IT人,最早在Linux上做开发的时候,电脑市场的高端配置还是486。随着项目经验的增加,我深深的感到,在国内,对Linux还有很多误解,尤其是嵌入式开发上面,Linux往往不但不是最好的选择,在很多时候甚至是下策。 除了Linux,你还有很多选择: 现在流行的操作系统五花八门,下面我来分们别类的说说: 随着IC业的发展,出现了越来越多的价格低廉、结构小巧的CPU和外设。限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有Vxwork、pSOS(已被收购)、QNX、Neculeus、Windows CE、PALM、SmartPhone等。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。 另一个方面,这些商用的操作系统往往有非常完善的技术支持和丰富的软件包,以WinCE为例,他的PlatForm Bulider安装光盘有7张,容纳了大量的应用框架,用户只需要做很少的改动就能生成一个应用程序。工作强度和普通PC机上开发没有太大的区别。 目前,以Linux为首的开源嵌入式系统发展势头强劲,比较有代表的有Linux(包括uClinux,RtLinux等),RTEMS,eCos,uCOSII等。国内的用户大多使用Linux和uCOSII。但是我认为各种系统有自己存在的理由,我从事的大多数项目中,向客户推荐的不是Linux和uCOSII,而是RTEMS和eCos。理由很简单,Linux过为复杂,速度慢,实时性差;而uCOSII又过于简单。 Linux本来就不是为嵌入式系统设计的,现在Linux2.6的kernel source压缩包大小更是有30多兆。Linux源代码解析那种大部头的书又有多少人从头到尾看过。这导致很多问题无法解决。以前,某客户要求使用Linux给他们做底端路由器,我们使用了一套比较成熟的ARM+uClinux系统,结果,该系统会不定期的死机,调试了很久也没有结果。过了几个月,发现是uCLinux的一个bug。期间,该客户由于系统不够稳定,错过了几个大单。此后,另外一个Linux的系统,用于VoIP网关,结果,运行速度非常慢,资源消耗也很大。几乎没有办法达到设计要求。后来,改用eCos,不但能达到编解码速度要求,而且无论是对内存还是对Flash,占用都大为减少。这样的项目举不胜举,后来总结出一条经验,Linux用来做Demo版本,商业版本用其他RTOS。 实际上,这样的例子还很多,现在,很多嵌入式系统设计服务提供商动不动就是Linux,好像将Linux和嵌入式系统划上了等号。为什么? 无非是因为下面的原因:
但是我认为这是站不住脚的。我们一个一个来看Linux的所谓优势: 总之,Linux只适合高端嵌入式系统中(如商用路由器等),如果CPU< 100MIPS, 最好还是不用Linux为妙。
|
|||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
嵌入式软硬件设计咨询 8位
16位 32位 64位 RISC DSP |
||||||||||||||||
| 2004 RTEMS.NET 版权所有 |
||||||||||||||||