在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 5095|回复: 14

转贴 嵌入式系统开发,不用Linux的理由 !

[复制链接]
发表于 2006-8-28 09:35:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[raymondxu的专栏]
笔者应该可以算作国内第一批玩Linux的IT人,最早在Linux上做开发的时候,电脑市场的高端配置还是486。随着项目经验的增加,我深深的感到,在国内,对Linux还有很多误解,尤其是嵌入式开发上面,目前我现在还有很多项目进行在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和嵌入式系统划上了等号。为什么? 无非是因为下面的原因:

1 操作系统源代码开放
2 网上资源丰富,很可能可以找到开放源码的整套环境,可以大大缩短开发周期
3 编程接口方便,熟悉,跟台上机上开发几乎没有什么区别
4 上层应用丰富,而且也开放源码
5 低层接口统一
6 TCP/IP等协议自带

但是我认为这是站不住脚的。我们一个一个来看Linux的所谓优势:
1. “开放源码”很多嵌入式系统都是开放源码的如:eCos,RTEMS,NetBSD等等。这些系统都比Linux简单易懂。此外值得提出的是。Linux是GPL协议的,也就是说,你对Linux的任何修改,都必须公开。而NetBSD等系统就不是,他们是遵循更为开放的BSD协议,你对系统的任何修改,都有权保密。这对于商用系统来说,是非常重要的。
2. “网上资源丰富” 这个……我只能说其他系统应用资源也很丰富。但是总体上,Linux资源比其他系统丰富,主要体现在桌面系统上,在嵌入式领域的应用软件,Linux并没有明显的优势。
3. “编程接口方便,熟悉,跟台上机上开发几乎没有什么区别”编程接口上来说eCos,RTEMS和NetBSD都提供POSIX的API,这意味这,在Linux上面的代码,几乎不用做修改就可以移植到上面的系统中。
4. “上层应用丰富,而且也开放源码”嵌入式系统大多是用于专业用途的,很多上层应用比如GNOM,在嵌入式领域,并没有太大用途
5. “低层接口统一。TCP/IP自带” 一方面,Linux底层十分复杂,其接口也非常复杂,这导致给Linux制作驱动需要大量的时间(当然,也有不少驱动是现成的),同时复杂的层次结构导致驱动的效率底下。
6. “TCP/IP等协议自带”几乎所有的嵌入式系统都提供TCP/IP,这个不是Linux的专利。
此外,uCosII也存在不少问题,他很简单,他不是想大多数人想的那样是免费的,他的免费只表现在他的教育版本。如果你用uCOSII作出了东西要出口到欧盟,很可能被kaka。而且uCOSII免费的地方也很少,需要TCP/IP?掏钱,需要文件支持?掏钱......这导致uCOSII的免费版本只能算作一个玩具。
真正好的嵌入式系统应该满足1-6,此外还应有下面几点,注意,这些一直都是Linux的贽垢
1 实时性支持(不要认为RTLinux的实时性就很好,他只不过有些改善罢了)
2 资源占用小
3 支持低功耗
……
此外使用Linux在降低软件成本的同时,会大大提高硬件成本,就好像如果有些程序用386+DOS就能跑,现在非要换成了586+windows2000成本的提高不说,速度只会变慢。现在市场竞争激烈,很多硬件设备利润就只有几块钱。如果用了Linux, 很有可能成本控制不了。

总之,Linux只适合高端嵌入式系统中(如商用路由器等),如果CPU< 100MIPS, 最好还是不用Linux为妙。
发表于 2006-9-1 12:15:36 | 显示全部楼层
恩,有道理
发表于 2006-9-13 08:33:06 | 显示全部楼层
高手,顶一个
发表于 2006-9-13 09:10:29 | 显示全部楼层
关注中
,本人正再研究linux
发表于 2006-9-13 09:28:47 | 显示全部楼层
還有這麼多不同的平台
要學的還真速多
发表于 2006-9-13 20:33:55 | 显示全部楼层
有感触,写得很好
发表于 2006-9-23 08:23:13 | 显示全部楼层
有感触,写得很好 ,很好
发表于 2006-9-27 21:11:13 | 显示全部楼层
写的的确很好
发表于 2006-10-1 11:45:09 | 显示全部楼层
高手啊,
宁愿不站队,不要站错队!
发表于 2006-10-2 18:03:34 | 显示全部楼层
linux使我看到了windows外的东西,希望个帖子能更加开阔我的眼界。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-9 10:35 , Processed in 0.031958 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表