随着新公司的涌现以及对压缩成本的要求,嵌入式系统开发界正在逐渐接受开放源码的软件。目前,已经有大批量供货的消费电子产品的开发采用了那些从互联网上下载的开放源码的软件产品。容易获得、创新的编程方式、良好的适应性,以及零复用费用是人们津津乐道的开放源码产品的优点。尽管怀疑论者依然对开放源码产品在授权及技术支持方面提出质疑,但是可以看到越来越多的人开始在新项目中放弃选择那些商业化的软件,转而尝试使用开放源码的软件。
开发:不再是个人游戏
与商业化的软件不同,开放源码软件的开发是在"社区"中完成的。通常程序员先在社区中建立一个开放源码的项目,然后有众多程序员共同合作完成对源码的改进并共享修改后的成果。以这种方式开发出的软件中,最著名的就是Linux操作系统。今天,随着其他通过GNU项目开发出的软件的增加,Linux也已经演化出了很多根据不同需要开发的项目,而且在其周围聚集了数以千计的开发者和不少商业公司。
商业公司的介入也在转变人们对开发源码软件的传统认识,即它们不过是程序员出于个人爱好在业余时间产出的智力劳动成果。IBM、Apple和Sun等大公司已经参与了开放源码的项目,并基于项目所产生的源码开发出了多款软、硬件产品。仅IBM的Linux技术中心就雇佣了超过200名的全职程序员从事开放源码项目的开发工作。 商业公司非常清楚,开放源码已经成为了一种潮流,顺应这种潮流,未来其软、硬件产品也会随着开放源码产品的广泛应用而大行其道。
使用:成本与风险不断降低
开放源码产品给嵌入式系统开发者带来的最大的好处就是降低开发成本。即使是对大批量的产品,商业化的操作系统或是第三方应用支持软件包的版税也是嵌入式设备开发成本中很大一个组成部分。因此,降低成本的一个行之有效的方法就是在开发中选用一个或是更多的开放源码的程序。也许对开放源码程序的移植会产生一些成本,但是从开发总成本考虑还是会带来明显的节省。
在考虑成本问题时还有一点十分重要:与商业化的软件相比,开放源码软件的适应性是一个显著的优点。开发者可以根据自己实际的应用要求,在开放的源码基础上编写出一个新的软件版本,使得软件对系统计算和存储资源的占用最小化。而与之相对应,商业化软件由于要考虑到最大限度地覆盖客户需求,会在产品中包括开发者并不需要的其他功能,而开发者又不得不为这部分"功能"买单。而且商业软件的供应商也承认,最初的购置费用只占嵌入式软件整个生命周期使用费用的一小部分。
对于那些选择"自己开发"的开发者来说,开放源码软件也是具有吸引力的,他们通常需要将诸如任务表、网络和用户界面等操作系统功能集成到一个单一的应用软件包中。随着其所开发的嵌入式设备的复杂性的增加,这些开发者不得不在不增加预算的前提下尽量去满足客户的需求。开放源码的操作系统为开发者提供了一套将经测试的支持软件集成在一起的低成本的技术手段,可以使开发者集中精力进行独特应用功能的开发。今天的开放源码操作系统已经足够成熟,可以将使用者的风险降到最低限度。
对开放源码软件持反对意见者通常会指出,由于没有版权的约束和保护,这可能会阻碍开发者公布其编写的代码。但事实证明,这种观点是片面的,在开放源码资源网站www.opensource.org上,我们可以看到超过40种的经验证的软件授权方式。简单地说,开发者和版权所有者可以根据他们的需要,按照他们认为合适的任何一种方式达成授权协议。比如有些授权就介于商业应用和非赢利用户之间,如出于教育研究目的的授权。
目前比较流行的授权模式包括GPL(General Public License)、BSD(Berkeley Software Distribution)和Mozilla Public License三种。其中GPL开放程度最高,BSD则对授权的开放度做出了一些限制,而Mozilla Public License介于前二者之间,允许开发者将基于开放源码开发的软件分为受保护的和可共享的两部分。
服务:商业公司介入
除了授权模式,嵌入式系统的开发者在考虑是否选用开放源码的软件产品考虑的另一个问题是,可以获得什么样的技术支持。对于一些小的程序,开发者可以直接下载源代码自己进行维护和支持。但是对于那些比较复杂的系统,如操作系统,许多开发者选择了寻找有经验的支持团队的方法。在这方面,我们可以发现开放源码软件的另一个优点,即开放的系统可以使你获得兼容的售后支持,即使你更换了供应商,也仍然可以保留原有的软件并获得相应的支持。
各家嵌入式Linux供应商也根据自己客户的特点设计出了不同的商业模式。MontaVista通过收取年费的方式销售它的Linux产品,用户缴费后可以获得最新的软件版本、无限制的通过电话或电子邮件的技术支持,或是访问专为客户设立的网站获取更新版本、补丁程序和参加社区论坛。此外,大多数年费服务包中还包括向用户提供的培训。LynuxWorks的运作方式稍有不同,它向嵌入式系统开发者同时提供开放源码和商业化的两种操作系统。BlueCat Linux与公司所提供的满足实时需要的商业化操作系统LynxOS兼容,其6个月的服务包售价为2699美元。
目前作为嵌入式Linux供应商,MontaVista和LynuxWorks与IBM, Red Hat, Panasonic和Sony等公司合作,组成了嵌入式Linux联盟以防止在源代码流行的过程中出现的"分裂"问题,该问题可能会造成应用程序不兼容的后果。联盟提出的解决方案是出台一个平台规范来定义嵌入式Linux的API。遵从该平台规范的应用程序和中间件的开发者可以保证他们的产品在兼容的Linux系统中运行。
延伸:硬件也"开放"
这些基于开放源码的自由软件,特别是操作系统和支持软件的另一个来源,就是嵌入式单片机硬件供应商。很多硬件供应商为客户提供开放源码的软件以提高自身产品的附加值,以利于硬件产品的销售。
同时,在开发源码的软件的推动下,嵌入式系统开发者已经在进行一些新的尝试--开发开放源码的硬件产品。比如,小型化的嵌入式LART(Linux-advanced-radio-terminal)计算机可以运行Linux,其硬件包括功耗小于1W的、工作频率为220MHz的SA-1100 StrongARM CPU。在标准配置中,它包括32M的DRAM和4M的flash存储器。LART的硬件不是免费的,但是其全部设计、图纸、装配图、文档和软件是免费的,并可从LART网站上下载获得。开发者可以通过一种近似于软件所采用的GPL的授权方式获得LART的硬件设计授权,并且不用缴纳版税和授权费即可复制该硬件系统。