采用嵌入式 Linux 顺利开发产品的策略和原则
文章有点老了,有些地方可能与现在的情况不一样了,不过还是很有参考价值,值得一看的!
--by me
飞漫软件 魏永明
毋庸置疑,使用嵌入式 Linux 进行产品开发有一个很大的优势,那就是开发资源
丰富,而且成本低廉。但是,技术路线复杂多样,专业人才相对匮乏也是嵌入式
Linux 系统开发的另一个主要特征。
在这样的背景下,国内很多行业软硬件集成商在利用 Linux 开发嵌入式产品时遇
到了许多困难。许多产品的开发因为这样或者那样的问题导致难产,甚至最终以失
败告终。这种现象甚至存在于国内许多专业的嵌入式 Linux 厂商中。
原来对嵌入式 Linux 抱有很大期望的人们,因为迟迟看不到采用 Linux 的消费
类产品上市,开始表现出了对基于嵌入式 Linux 的产品开发的否定情绪。存在于
许多媒体上的声音,也在不断渲染和夸大一个看法:使用 Linux 开发嵌入式产品
时的总体成本比昂贵的专有系统还要大。
笔者从事嵌入式 Linux 的开发,可以从大约 5 年前算起。1998 年底,笔者在别
人的介绍下考虑用 RT Linux 来开发制造领域使用的计算机数字控制系统,并为解
决图形用户界面问题而开始开发 MiniGUI。近 5 年过去了,笔者经历过许多使用
Linux 的项目,有的成功,有的失败。所幸的是,大部分由我负责的项目均可算得
上是成功,许多使用 Linux 和 MiniGUI 的产品已经上市,正在发挥着重要的作用。
但不幸的是,我也看到了许多失败的项目或者产品。有人问我,嵌入式 Linux 的
未来是什么?尽管我没有预言未来的能力,但我相信:嵌入式 Linux 的未来是辉
煌的!只要我们在采用嵌入式 Linux 开发产品之前,做到下面所说的几点,我们
就能确保顺利开发出我们想像中的产品。
1 选定优秀的软硬件技术提供商和服务商
当您在脑海中有了自己产品的大致规划之后,您应该首先寻找一家专业的嵌入
式 Linux 技术提供商,向经验丰富的开发工程师咨询,看看您的产品是否适合使
用 LINUX 来开发。负责任的技术提供商会为您提供非常有价值的信息,包括产品
是否适合使用 LINUX,如果适合,还会为您推荐相关的软硬件设计、开发厂商。
然而,大部分厂商不会这样做。许多产品开发商之所以要在产品中使用
Linux,其最主要的原因就是“成本低廉”。许多老板的想法是,反正自己养着工程
师,LINUX 又是开放源码的,为什么不自己开发呢?自己开发,那成本就可以更低
了,而且项目就在自己的掌控之下,这不是更有利吗?在这样的想法驱使下,老板
们就把该花的服务费用也给省了。但是,他们没有意识到我们提到的嵌入式 Linux
开发的第二个重要特点,那就是“技术路线复杂多样,专业人才相对匮乏”。正是这
样一个特点,导致老板们根本无法用低廉的工资招收合格的研发工程师,这注定了
他们的产品开发充满了极大的风险。
如果这种思想仅仅存在于公司的领导层,那问题倒还不严重,更加严重的是,
从事研发的工程师自身也有这样的想法。中国的软硬件工程师总体水平较低,这已
成为共识。在这样的现实条件下,因为低水平,会选择错误的产品技术路线,甚至
是不切实际的研发计划。在这样一种情况下,产品的研发出问题是几乎肯定的。
笔者所见到的许多失败的项目,大部分是因为上面这种一错再错导致的。根据我
们的估计,中国有能力完成嵌入式 Linux 产品技术方案设计的总人数不足五百
人,或者更少,而且分散在不同的企业当中。因此,对一家并不拥有足够研发实力
的厂商来说,选定一家值得信赖的技术提供商和服务商就更为重要了。
然而,许多认可技术服务的企业在寻找伙伴时,又会有另外一个问题。他们认
为,LINUX 不是便宜吗,那围绕 LINUX 的技术服务也应该很便宜啊!其实,这种
看法在逻辑上就是错误的。
Linux 的成本优势在于免去了商业授权费用,它的成本优势将在产品营销的后
期体现,而并不是在开发初期体现。因为我们上面提到的原因,目前,围绕 Linux
的技术服务成本将在很长一个时间段内高于其他行业的技术服务成本。当然,随着
嵌入式 LINUX 开发人员的增加,技能的提高,围绕 LINUX 的技术成本最终将会降
低。如果您未来的产品一直沿用 LINUX,那 LINUX 的成本优势将会为您带来更高
的收益。
目前,国内的嵌入式 LINUX 行业逐步走向了分工、协作的良性发展阶段,您在
产品开发的不同阶段:比如硬件选型、操作系统移植和定制、中间件选择和应用开
发等等,均可以找到合适的技术提供商和服务商。
对于打算采用嵌入式 LINUX 开发产品的企业来讲,我们推荐一种符合现阶段客
观条件的方式:
* 倚赖中间件厂商,参考成功案例,确定硬件方案,选定硬件合作伙伴,并在
中间件厂商的帮助下,自主开发应用软件。
这里,中间件厂商在整个技术框架中,位于承上启下的重要环节,首先选择中
间件厂商有着非常重要的现实意义。另外,如果您对自己的技术实力有怀疑,还可
以委托中间件厂商开发自己的第一个应用软件,在此基础上,再尝试自主开发。如
此,您的产品开发将为更加顺利。
在寻找合作厂商时,我们要防止走向另外一个极端,那就是花大价钱购买所谓
的开发工具。在国外,嵌入式 Linux 厂商的营销方式是以服务为主,客户支付的
费用主要用于培训、技术支持等服务上。就拿 MontaVista 的嵌入式 Linux 产品
来讲,在国外的营销方式是产品免费,但服务价格很高。您要购买产品,首先要购
买其一年的服务。在发达国家,消费者花十几万美元买服务,是有相应的技术和法
律保障的。然而,如果把这个产品拿到国内来,就算你花了一样的价钱,也很难买
到相应的服务。于是,有的代理商就想了一个好招数,那就是用户要花几十万来买
产品,然后给你提供一年的免费服务。既然是免费的服务,那质量、内容就无所谓
了。但回头来再看产品,你花几十万购买的产品,真的值那么多吗?实际的情况
是,这些产品的绝大部分组件来自 INTERNET。稍微花点时间,您就可以在互联网
上找到这些产品所带的开发工具、内核源代码以及其他几乎所有的内容。
但有的用户仍然认为花这么多钱很值得,因为他们购买到的是在自己的产品中
使用嵌入式 Linux 的合法授权!呵呵,读到这里,你就会发现中国的用户有多冤
枉。我在这里教您一招,以后如果有人说要收取您使用 Linux 的授权,您就先问
他要 Linus 给他的授权。
许多购买了这类开发工具产品的用户,他们仍然要自己开发驱动程序,仍然要
花功夫选择 GUI 等中间件产品,还要自己调试开发应用程序,而且得不到任何有
保障的高质量的服务。
其实,许多用户之所以原意花钱买这种开发工具,是因为这样一个心理作怪:
老外的东西比国人的好;只买贵的,不买好的。。。
2 认真细致、客观公正地评价技术方案
采用嵌入式 Linux 开发产品,需要确定的技术路线有如下几点:
* 硬件方案的选择。硬件的不同,会影响操作系统的选择,低端无MMU的CPU,
就要使用 uClinux 操作系统,而相对高端的硬件,则可以用普通的嵌入式 Linux
操作系统。uClinux 和普通的 Linux 有各自的优势和缺点。但一个原则是,只要
可能,永远选择使用普通的嵌入式 Linux 系统。
现阶段,硬件方案的选择实际非常灵活,在 CPU 及架构的选择上,一个原则
是:只要有可替代的方案,千万不要选择 Linux 尚不支持的硬件平台。不要选择
Linux 尚不支持的平台,并不是因为在技术上有多难,而是害怕您为移植 Linux
花冤枉钱——辛苦找到一个厂家为您做移植,结果没几天,国外的黑客就已经做好
了。如果是这种情况,您说冤不冤呢?
* 硬件方案确定之后,操作系统的选择就相对轻松了。之后,我们就需要考虑
选择正确的中间件产品了。这里的中间件,是指除操作系统和应用程序之外的其他
必要组件,包括 C 函数库、GUI 系统、数据库系统等等。
在 C 函数库方面,可选的有 glibc、uClibc 等。通常如果您的存储空间足
够,就可以选择 glibc,而如果空间紧张,则选择 uClibc。一个原则是,除非必
要,始终使用 glibc。
在 GUI 方面,可选的就更多了,比如 MiniGUI、Qt/Embedded、MicroWindows
等等。这方面的一个原则是,要选择能够获得良好支持的产品,对国内用户,我们
推荐 MiniGUI。这并不是“王婆卖瓜,自卖自夸”,而是实践证明,MiniGUI 的适用
范围很广、性能表现最佳、而且对国内用户的支持和服务最好。目前,MiniGUI 是
国内唯一一个为嵌入式 Linux 发展做出重大贡献的产品和项目,并得到国际认可。
在前两年,有许多采用 MicroWindows 的产品。许多人也许不知道,
MicroWindows 中对 GB2312 字符集及字体的支持,就来自于 MiniGUI。采用
MicroWindows 时,您自己要做大量的缺陷修正工作,而且性能还很差。更要命的
是,MicroWindows 的免费版本进展一直很慢,在大约 2 年的时间里,几乎处于停
顿状态;而至今为止,国际上没有任何一家专业对 MicroWindows 提供全面技术支
持、服务和担保的公司。
而对 Qt/Embedded 来说,它是肥美型的产品,功能丰富,但能消化它的东西只
能是高端产品,32MB内存是运行它的最小要求。因此,如果您开发的产品不是高端
的信息终端类产品,就无须考虑 Qt/Embedded。当然,还有几个重要因素就是,
Qt/Embedded 的商业授权门槛还是蛮高的,而且还要付美金!
如前所述,中国嵌入式 Linux 行业正处于发生重大变革的过程中。分工
细化、走向协作是这次变革的一个重要特征。这样的变革,将带来嵌入式 Linux
行业大的增长。对行业软硬件集成商来说,应该尽早结束自己大包大揽开发产品的
历史,和专业的技术厂商合作,才是走向专业分工、共推市场、协作前进的重要道路。
--------------
注:作者简介
魏永明,青海湟中人。1998 年毕业于清华大学精密仪器系,获工学硕士学位。毕
业后在清华大学精密仪器系任教,负责国内第一台产品化虚拟轴机床数控系统的研
发工作,并在该项目中使用 RT-Linux 开发数控系统。为解决性能问题,在多年积
累基础上开始开发专门针对实时嵌入式 Linux 系统的图形用户界面支持系统--
MiniGUI。后于 2000 年 5 月加盟蓝点公司,任蓝点软件(北京)研发中心技术主
管。2001 年 6 月加入中科红旗软件有限公司从事嵌入式 Linux 关键技术的研究
工作,并担任该公司嵌入式事业部高级研发经理。2002 年 9 月创办北京飞漫软件
技术有限公司,并担任该公司总经理兼首席培训师。
由魏永明主持的 MiniGUI 项目,是国内最具代表性的几大自由软件项目之一,该
系统已经广泛应用于 PDA、彩票机、POS 机、机顶盒、控制系统等实时嵌入式系统
当中。
魏永明为 Linux 在中国的普及和应用做了大量工作,著有《Linux 实用教程》与《学
用 Linux 与 Windows NT》,并主持翻译了《Red Hat Linux 奥秘》、《Linux 编程宝
典》、《Linux 设备驱动程序》(第二版)等大批优秀的 Linux 技术著作;是清华大
学 AKA 信息技术协会 Linux 编程技术系列讲座的主讲人,IBM developerWorks
中国站点 Linux 区的专栏作家。曾获 2001 年度 IBM developerWorks 优秀作家
一等奖,2002 年度中国“Linux 评优”活动“Linux 杰出人才”称号。
注:飞漫软件简介
北京飞漫软件技术有限公司(Beijing Feynman Software Technology Co.,
Ltd.)是由国际知名的自由软件项目 (MiniGUI)的创始人及主要开发者组建的软
件公司。公司成立于 2002 年 9 月。
从 1998 年底开始,我们就为嵌入式 Linux 系统开发适合实时嵌入式系统特点的
图形用户界面支持系统——MiniGUI,并在 1999 年初遵循 LGPL 条款以自由软件的
形式发布了第一个版本。在近四年的发展过程中,MiniGUI 已经被广泛应用于许多
项目和产品中。其中包括数控系统、手持信息终端产品、彩票机、DVR 系统、金融
终端、KTV 点播系统、POS 机等等(有关 MiniGUI 成功案例的详细信息,请点这
里)。目前,MiniGUI 的用户广泛分布在北京、上海、广东、重庆、台湾等地区,
韩国、日本等国也有开发者基于 MiniGUI 进行嵌入式系统的开发。除 MiniGUI 之
外,飞漫还为嵌入式系统提供内嵌式数据库等中间件系统软件产品。飞漫已成为中
国嵌入式软件行业最具代表性的中间件技术供应商。
转自:http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=441463