近日,GreenHillsSoftware(GHS)就嵌入式Linux撰写了一则措辞严厉的观点,下面就是它的开场白:“EmbeddedLinux是迄今为止最夸大其词的嵌入式操作系统。它吹嘘为廉价、高质量、高生产率、可靠、应用范围广以及得到很好的支持,可是,恰好相反...”
GreenHills接着恭贺Linux供应商承认这种操作系统是“一片混沌”(要谢谢风河!)且是“无底洞!”(也感谢你,MontaVista!)然而,赞扬是短暂的,据GHS透露,这种愤世嫉俗的工作方式会让你惊恐,以至于无法利用Linux自己编写操作系统,而最终变为风河或MontaVista的客户。
那是有些强硬的谈论,但是,GHS并不是中立的观察家。这家公司销售自己的操作系统,因此,它坚持由宣讲对Linux的恐惧、不确定性以及疑虑而获益。的确,我所交谈过的每一家供应商均在Linux上采取显然有利于自己的立场。下面是我听到的若干例子:
MIPS:自我编写的Linux非常管用!直接访问LinuxMIPS并下载!我们的Linux支持我们成为赢家!
WindRiver,MontaVista:免费的Linux是一场灾难。然而,我们才提供“真正”的Linux,否则的话,你将在键盘面前不知所措!
QNX:Linux是一场灾难。然而,我们的类似Linux的RTOS确实伟大的!
Microsoft:晕!你为什么会看上Linux?如果采用WinCE,生活会更轻松!
MentorGraphic:Linux?WinCE?你简直在开玩笑!你可以从像Nucleus那样轻量的RTOS中获得你想要的一切。
有一件事情是肯定的:没有人说Linux存在真正的缺点。然而,哪一家供应商说的是真相呢?或者说,他们希望促销才撒谎的吗?
实际上,每一个观点均包含合理的成分。每一个项目均具有独一无二的要求,因此,不同的项目会寻求不同的操作系统。下面我(无党派人士)列出了当评价嵌入式Linux时你应该提出的问题:
你需要全功能的操作系统吗?嵌入式Linux很大,通常代码长度超过2MB。当然,你可以通过裁减像网络堆栈以及文件系统这样的功能而压缩操作系统,但是,这些功能正是你要采用Linux的主要原因。如果你不需要这些功能,你最好采用精干的RTOS。
你能够获得针对特定应用功能的操作系统吗?WinCE就提供无数的版本,包括专门为汽车应用而设计的版本。
【编者注:RTOS是实时操作系统(real-time operating system)的首字母缩写,IRTOS指支持I2O协议的实时操作系统,也即支持I2O规范的核心应用程序接口与外壳应用程序定义的实时操作系统。RTOS 技术的发展已有25年以上的历史,IRTOS为设备驱动程序提供的环境与桌面操作系统为应用软件提供的环境相类似。使用IRTOS的最大好处在于驱动程序的可互操作性,可重复利用性和可移植性。IRTOS提供了各种第三方I2O设备驱动程序共存的环境,并提供了一种称为中间服务模块(intermediate service modules)的增值软件的运行框架。】
(QNX也一样)。Nucleus提供针对便携式媒体播放机的公用的特殊功能。不一而足。
许可的模式是什么?LinuxGeneralPublicLicense(Linux通用公共许可)存在其缺陷。如果你想修改内核要怎么做?然而,不要指望把你乱砍之后的内核与其它人分享?如果未经授权的代码溜进内核之中会怎样?所有者是否应该决定控诉?对于生命期长的产品,如汽车和网络基础设施来说,像这些问题就是主要的问题。我们当中其他人常常忽视法律问题并且在下一个产品版本中简单地升级内核。Linux会做出响应并足够可靠吗?我了解你在想什么:嵌入式Linux是专门为解决这些问题而设计的吗?是的,但是,嵌入式Linux无法匹配像INTEGRITY这样的操作系统。
你愿意现在付费或是以后付费?自己编写Linux操作系统是免版税的,但是,你必须做出重大的工程投资以及构建它并让它跑起来。相比之下,商用的Linux软件包(或竞争操作系统)能够让你以最小的前期投资成本进入市场。
你要付运多少产品?如果你的批量小,让你的操作系统团队急急忙忙自己开发操作系统的做法就没有意义。
你的上市时间如何?如果你赶着上市,那么,自己编写操作系统的方法也没有什么意义。
对你的特殊的处理器、电路板或参考设计提供技术支持吗?提供最佳技术支持的操作系统将给予你最低的NRE以及最短的上市时间。
你需要对接你的现有代码吗?大多数项目均是在现有的代码上构建的。如果在对接代码上浪费太长时间,你就会丧失转换操作系统所获得的好处。(你实际上可以跳过这个问题,但是,会增加系统的另一层复杂性。)
你的工具链支持操作系统吗?如果不是,你就要转换,这就增加了学习曲线并让设计团队不稳定,如果你愿意转换工具链,要寻找如MIPS的Linux热点分析仪这样的具有操作系统的功能,不论你对嵌入式Linux做出什么决定,公司的MUTLIIDE自从2001年起就支持嵌入式Linux,要自问:如果GHS真的认为嵌入式Linux是一场灾难,为什么这家公司为它提供支持呢?