整体开发成本分析

比较商业 RTOSes 和非商业 Linux ,评估嵌入式 Linux 开发的整体成本


 
 

作者:Jerry krasner Ph. D.,MBA

 
 

简介 :

在 2003 年, EMF 通过比较 Microsoft Windows 嵌入式 Xp 和 Windows CE ,发表了一系列 Linux 开发成本的比较报告(可在 www.embededforecast.com 上下载“评估嵌入式开发平台整体开发成本报告”)

到目前为止,从下载次数和引用次数来看,上述报告依然是最多的。

此报告的目的是从 2003 年嵌入式市场的很多变化入手,重估这一年的发现,并对 2007 年做一些纪录。

在这份原始研究报告发表后的四年中,对很多应用软件来说, Linux 已经成为了可靠的替换商业 RTOSes 的操作系统。这篇报告中,我们使用了当前细致的调查数据,对 Linux 和确定的商业 RTOSes 在嵌入式设计活动和设计成本方面进行了比较。

我们欣喜的发现,从 2003 年开始,嵌入式操作系统 Linux 逐渐获得了越来越大的市场份额。这样的成长,大致可归功于下述两个原因:一是嵌入式 Linux 使用的范围越来越广,二是 Linux 厂商不遗余力的为 Linux 的开发者提供让人称赞的开发工具。

在此报告中, EMF 引用的很多数据是通过比较嵌入式开发人员使用特定嵌入式 RTOSes 和嵌入式 Linux 的设计进程和设计成本而获得。

2006 年和 2007 年的 EMF 数据显示:从 2003 年开始,对很多应用软件来说, Linux 和商用 RTOSEes 是不分上下的。

设计承诺和设计成果:嵌入式 Linux VS 商用 RTOSes

分析参数:

EMF 选用了一系列最有代表性的数据参数:

•  设计开始到产品成形的时间(以月计)

•  整个新修改的源代码行数——不包括重复的,商用买卖的和开源软件

•  超过进程表时间发布的进行设计的比重

•  超过进程表的时间长度

•  整个开发周期开始后,要求开发人员提高硬软件成品和预期之间的相符度。会比较预期表现,系统功能和特性还有架构。 EMF 有最终成品和预期相同度达到 20% 和 30% 的数据。

EMF 同样记录设计最终被取消的比例,从设计开始到被取消的时间,外包设计的比例。上述的这些数据参数为能对 LINUX 和领先的商用 RTOSes 进行一个精确的比较。

厂商比较: Linux 和商业 OSes

Linux 商用 RTOSes
FSM Labs (now Wind River) Green Hills Integrity
LynuxWorks BlueCat Linux LynuxWorks LynxOS
CodeWarrior for Linux Mentor Graphics Nucleus
MontaVista Linux Microsoft Windows XPE
Red Hat Linux (Enterprise) Microsoft Windows CE
Wind River Linux Wind River VxWorks

设计比较:

Table 1 对商业 RTOSes 和 Linux 的设计进行了比较。代码行数的多少代表了设计的复杂程度,每个项目平均软件开发人数和产品在时间表后完成的百分比以及时间表后所用的时间可以显示设计的相关成本。

这个表的目的是为了确定 2003 年之后基于 Linux 的设计有没有很大的改进,也为了确定有没有一些本质的不同。这些数据来自 EMF 的 2006 年, 2007 年对 1300 个嵌入式开发人员的调查

上市时间的重要性

从这些统计数据可以得到对于不同市场应用软件开发人员所配置的各个厂商的 OSes 。 EMF 的数据可以用来比较使用任意的 OS 设计产品的开发成本。下述就是一个计算实例。

产品上市时间显著影响着项目的整体成本。大量的 EMF 调查报告显示每个项目平均软件开发人员人数是 30.9 个,如果每个员工的成本(包括工资,奖金等)每年为 15 万美元,那么上市时间推迟一个月就意味着要多支出 386250 美元。

平均地说, 41.4% 的嵌入式设计都会比原时间表延迟 4 个月,也就是说,由于这些延迟,需要在每个项目上多支出 386250*41.4%*4=639630 美元。

显然,这些计算并没有把由于产品推迟上市而损失的利润算入其中。在工业生产的每个环节里,上市时间都是很重要的,尤其在很短的产品周期中,比如对于消费类产品,上市时间更是决定获利或者损失的关键因素。

可以看出, Linux 项目每个工程的软件开发人员平均比商业 RTOSES 的人员多出七个, 2006 年和 2007 年的数据在此项上保持基本一致。但是 2007 年的数据显示, Linux 项目的平均开发设计时间比 2006 年节约了 1.1 个月。

应该明白的是,这些有关 Linux 的操作系统和商业 RTOSes 系统的数据比较可以表明它们与工业级系统平均水平相比有过之而无不及。工业级系统平均水平是由 46 种不同的 OSes 综合决定的,而嵌入式 Linux 和商业 RTOSes 的对比是从前边所列的 OS 提供商的产品中所获。

通过研究这些数据,可以得知这些信息是在综合考虑了 10 种不同的垂直市场和很多厂商的操作系统才搜集到位的。因此我们可以比较基于商业 RTOSes 和 Linux 的设计最后成品之间的差异。

通过研究过去的两年间所得的 1300 个反馈和 Table I 所示信息,很容易得出, Linux 和非 Linux 操作系统的成品跟设计保持着高度的一致性。

如果 Linux 和商业 RTOS 的成品与其设计有很大的差异,可从 table II 得出结论。

table II 数据调查的是成品与设计期望相比,有小于 20% 和 30% 差异的比例。不在这个范围内的设计,是有问题的。需要说明的是, EMF 在考虑相似程度的时候,没有加入考虑设计延时。

 

TableII 可以很明白的显示嵌入式 Linux 设计成品和使用商业 RTOS 设计的产品有很高的一致性,都高于工业平均水平。

分析

人们不禁要问,为什么嵌入式 LINUX产品从2003年后就突飞猛进?答案是,工具。在2003年,40%的Linux产品只有有限的可免费下载的工具。

以 MontaVista软件公司为例,其开发出了一整套设计工具,并且可以和MDD并用来提高嵌入式设计的配置。LynuxWorks将其蓝猫Linux嵌入到LynxOS中,以利于军品的开发。风河公司也将其仅有的Linux版本和其开发工具配置到了一起。

由于 Linux在工业自动化应用,电信/数据通信和服务应用上的卓越表现,Linux也得到了嵌入式社区的承认。而其也广泛的应用在了TV,机顶盒,DVRs如TiVo还有手机比如motorola的V8上。

多目标 OS集成开发环境的出现,比如 Green Hills的MULTI, Wind River Workbench 和Mentor Graphic的 EDGE支持Linux开发和其他OS集成,或者使用同样的IDE得到更持久的设计。

Linux同样受益于posix标准顺从和安全(EAL 5+认证或更安全)操作系统的业务攸关能力的提出,比如一些不安全或和posix一般一致的Linux应用软件在安全内存保护环境下可以很安全的运行在通过认证的操作系统上。这就为Linux满足严格应用软件需求扫清了障碍。

Linux这种特性极大的满足了嵌入式市场,一个稳定的Linux设计应用软件能直接和通过MILS和EAL认证的关键部分应用软件兼容。

总的来说, Linux不仅仅在嵌入式领域斩获颇丰,据EMF的数据可知,开发人员还将Linux用在传统的RTOSes领域。大家都希望Linux厂商能坚持不懈的将高级开发工具作为其产品的一部分,这也是开发者选择该操作系统时考虑得很重要的方面。

工具,工具,还是工具

很显然, Linux的成长繁荣绝对离不开正确合适的工具套件的应用。Montavista和风河公司都已经有一套令人称赞的按时满足预设计期望的通用或特殊应用软件开发工具,但他们选择了不同的入市途径。可是不是所有的Linux开发人员都会应用这些现成的工具套件,他们更倾向于开发自己的。如果使用多种不同供应商提供的特殊的Linux工具套件来进行嵌入式开发,这显然是一种对时间和资源的浪费。(使用个人开发的实时操作系统和工具套件进行嵌入式设计的比例已经从2005年30%降到了16.1%)

近期 EMF数据清楚的表明,产品上市时间和最后设计结果在实现产品经济效益方面占很重要的比重。上市时间延迟或者删减产品特性将使产品的市场表现大打折扣。(对于消费类电子产品来说,不保证上市时间和最终设计性能,市场表现将不甚乐观)

EMF通过对比确定Linux和自建Linux之间的数据,发现使用自建Linux的开发人员的最终产品和其预设计期望相比,代码更少而且性能不佳。

数据 1为这个现象做出了一定的解释:

我们可以看出,在充分利用其现有技术用自建 Linux 进行设计开发和使用商业 Linux 进行产品开发所拥有的资源基本一样。数据显示,这些开发的代码会少一些,因此降低其复杂程度。可能有人认为用自建 Linux 进行产品开发没有时间表的压力,但数据表明超过 50%的开发人员声称没有足够时间去实现他们的想法从而支持他们的产品上市。

进一步考虑代表预设计期望和最终产品结果之间关系的数据:

最终产品在特性和时间表上符合 30%预设计期望的:

商业 Linux =70.2% 其他Linux=59%

从 EMF调查数据中,我们可以得出,与商业级Linux或者RTOSes相比,自建Linux开发比较简单,并与预设计有着较低的吻合度。此外,从数据一中我们知道,自建LINUX开发人员也没有足够的时间去完成他们的设计。

 

商用操作系统和开源软件的比较:

嵌入式市场变化和实时操作系统市场的变化没什么两样。今日的开发人员面临更严峻的复杂设计和更少的机会。他们没有时间检查微处理器和操作系统,没有时间写代码,编译,调试,测试以及完最后成硬软件的集成。越来越多的开发人员达成这样的共识,那就是上市时间是一个产品成功与否的关键因素,要坚决摒弃影响产品上市进程无关痛痒的设计。新的市场应用软件处理器每个星期都有出现,这就要求嵌入式开发人员选择合适的操作系统来对这些产品进行确定。他们在不断地寻求最终的集成解决方案。很多成功的厂商都在积极的响应这样的需求。

一些厂商与模型驱动设计的推动者合作,比如和 Rhapsody的提供商Telelogic。其他提供商,比如Mentor Graphics,把Mellor的UML模型工具嵌入到他们的开发环境中。MontaVista推出了“测试驱动(TestDrive)”工具,支持开发人员在目标处理器和参考板上评估MontaVista Linux,这使得这些人员在做一个购买的决定前可以开发运行其自有的测试应用软件来判断MontaVista的产品与他们的项目在技术上的吻合程度。

操作系统市场和嵌入式软件工具市场相比,相对的独立。选择一个操作系统,合适的软件开发工具和集成开发环境已经成为了决定性的因素。

 

集成开发环境,辅之以其他的支持工具和配件,已经成为了判断操作系统适不适合工程项目的决定性因素。这些年来,不同的操作系统之间的技术区分越来越困难。为了得到更多的开发人员的支持,操作系统厂商将重心放在了提供开发工具,减少产品上市时间和增强最终设计和预设计相合的概率上。

如果开源组织可以成功,那么大家肯定能够达成这样的共识:开源免版权使用费的软件是开发嵌入式应用软件最有效又经济的选择。如果只用其来开发嵌入式软件,那么软件以后会不会真的免费,或者说可能还有一些内在的成本而不为大家知?

假如要量化嵌入式设备的开发成本,显然软件是其中最贵的一项,并且难以预测。所以对 RTOS及相关设备驱动的开发人员来说,免费的开源软件具有相当大的诱惑力的。

开源是不是真的免费?或者必须支出其他隐性成本?这是两个引起大家热议的焦点问题。怎样看待这些问题?最好的方法就是通过真实的数据来进行分析。

表面看来,付费使用一些有专属权的软件与使用免费软件相比,成本更加昂贵,那么开发人员尽其所能获得大量的源代码并摘取其中对自己有用部分就显得很有意义。对于嵌入式开发人员而言,不用付一分钱,就可以得到这个领域里最好的头脑集中开发的代码,当然是一切十分惬意的事情。

与上述想法针锋相对的言论是:在嵌入式市场里同样没有免费的午餐。从大量如山的代码中摘取对自己项目有帮助的代码段是一件非常耗时耗力的事情。但厂商不光要提供这些基于版权的 Linux和非Linux操作系统,而且还负责这些操作系统的技术支持和bug修复。考虑到这些责任义务,很多开发人员还是会首选这些付费的实时操作系统。

一旦开发人员选定了源代码,他还需要在主机上获得同样代码。这就需要大量的工作来将代码编译到对嵌入式开发合适的平台上。所以会有开发的时间成本和面临上市潜在的机会成本。 Andrew Morton,在一个Linux基础会议上发表了看法,他认为从kernel.org上下载的免费的Linux没有产品的特性。所以如果有公司选用这些代码,首先得将其成品化,包括bug修复,测试,发布和文件还有移植到其他架构上。

一个嵌入式开发人员在使用一个操纵系统时有三种不同的选择:

1:一个有版权的RTOS

2:开源免费下载的Linux

3:商用Linux操作系统,为商用软件平台提供开源支持。

如上所述,不能将所有的 Linux版本当作同一类,也不能指望有一个一揽子的开源解决方案。Table 3比较了Linux的设计支出:工业平均水平,Wind River的LINUX产品,和Monta Vista的LINUX产品。

同样引起激烈讨论的是:嵌入式开发人员是不是真的需要知道其操作系统的源代码。无数的嵌入式开发人员已经在微软的 windows上开发了很多成功的应用软件,虽然他们没见到系统的任意源代码。知道操作系统如何运行是不是必要的?对于嵌入式开发人员来说,源代码重要还是开发者只需知道系统怎么支持应用软件就已足够?

很多用户都说,系统和平台的开发人员绝对需要这些源代码。但是,应用软件的开发人员不这么认为——他们只需要从系统开发人员那里得知系统的配置信息,从而支持应用软件接口就行。对 Linux来说,源代码是公开的,因此用户可以在其设计方法文本里参考这些代码。对很多公司来说,有了源代码意味着多一层保障——如果需要的话他们可以控制其开发结果——尤其是可以不必依靠系统的厂商。

不可否认的事,系统源代码为更好的开发复杂应用软件提供了很好的案例。除了源代码提供的典型案例教育机会,开源还支持开发人员调试任意 bug。开源软件支持嵌入式开发人员重获设计进程的控制权,进而解决问题。一些开发人员声称,在每天比较早的时间,解决问题最好方法是利用源代码而不是等着提供商的技术支持上线。

上述是基于以下的假设:有了源代码,开发人员可以隔离已有问题,以便用可靠的方法来解决;开发人员和源代码设计者对于同样的代码有一样的认识。当然,开发者评估其 Linux 决策时,完备的文本文件是必不可少的。而且,开发人员一旦修改了源代码,需要自己承担风险。

嵌入式软件和开发人员在特定的设备上运行的主机软件有很大差异。基于不同的设备驱动需求和外围部分考虑,开源厂商认为实用的开源代码是最重要的。部分开源厂商在其产品经过多年使用后很有底气的说他们的支持工具可以非常有效的满足客户需求。

对于嵌入式设计(上市时间和最终设计结果)来说,有效工具的需求,文档和支持变得相当重要。此外,开发者需要最小化其直接和操作系统联系的成本——因为开发人员应该在应用软件上投入更多。这里的数据对自建 Linux 的开发者来说,可以对其经济成本有更深入地了解。

成功的嵌入式 Linux 开发人员对这些问题已经很清楚。

摘要:

在嵌入式市场发生了很多变化的情况下,出炉了这篇报告,其目的在于重估 EMF2003 年的发现,并将其数据更新到了 2007 年。

我们分析的基础就是 EMF 年复一年的从嵌入式开发人员那里汇集的广泛数据。这些发现和分析都是有现实依据的。

我们可以得出如下结论:

•  使用 Linux操作系统进行设计开发不再是一件昂贵而且冒风险的事情

•  使用有技术支持的商业 Linux 操作系统与使用自建 Linux 进行开发相比,前者更具有成本优势

•  Linux 可以在需要MILS和EAL认证或者POSIX标准顺从的关键任务环境中使用。同样,使用Linux来进行嵌入式设计不再局限于一部分应用软件,设计结果数据表明使用Linux操作系统开发的产品与用经过认证的RTOS开发的产品相比,是不相伯仲的。