| | | | | | | [文章信息] | | | 作者: | | | 时间: | 2003-06-02 | | 出处: | 嵌入式开发网 | | 责任编辑: | 方舟 | |
| [文章导读] | | | Linux已经影响了一些全球最大的软件和硬件公司的战略,而且广泛渗入到IT部门中 | |
| |
|
| | | |
|
|
|
|
|
Linux已经影响了一些全球最大的软件和硬件公司的战略,而且广泛渗入到IT部门中,即使最传统的公司也不例外。为什么会这样呢?因为乍看上去,Linux实现了一个“免费软件”的梦想。
嵌入式系统非常不同于Linux赖以成长的应用领域——网络服务器,因为它们具有不同的需求。嵌入式系统的需求包括小存储空间、实时性和低功耗,但Linux从来不是为满足这些需求而设计的。它还缺少支持和工具,这使得开发成本高昂。虽然Linux是开放源代码,但它并非是免费的,而且使开发者必须承担相关的隐性成本。
适用在Linux上的GNU公共许可协议使设备制造商对知识产权的担忧越来越重。Linux只是一个操作系统,而日益复杂的嵌入式系统需要一种真正的平台。最重要的是,Linux将不能降低成本、减少风险或节省产品上市的费用。
嵌入式设备对实时操作、尺寸大小、速度以及其它因素有严格的要求。Linux不是实时操作系统,为了让它在实时环境中工作,设备制造商需要在较大程度上定制Linux。通常,设备制造商创建一种开放源代码软件的混合体或者修改Linux内核并去除一些基本元素以改善运行的实时性。然后,必须根据设备的专用硬件、外形尺寸和功能实施进一步的定制。现在,“标准”Linux已经演变成面向特定客户创建的操作系统,除了开发商外没有任何人能进行支持。这样的后果是出现了各种分裂的嵌入式Linux平台,并使工程师陷入集成的泥沼之中。
由于没有形成一致的单一平台,Linux还面临其它开发挑战:缺乏工具和支持。因为市场分裂,所以缺乏交叉编译器、调试器和实时分析工具。即使有合适的工具,开发、测试和调试产品质量代码的工作也充满挑战。没有这些工具,开发商不得不把各种解决方案揉在一块,而且开发周期将被延缓。
工具短缺的状况因缺乏嵌入式Linux的支持而变得恶化。因为嵌入式设备对尺寸、功能、功耗和速度有严格的要求,所以Linux必须经过修改才能在这种环境中工作,特别是设备在设计时对硬件、软件和固件进行了高度集成的情况下。
因为缺少单一平台,庞大的Linux社群无法对其提供支持。
业界可能存在数千种改良的Linux版本,除了设备制造商的软件团队以外没有任何人曾经参予过它们的开发。所以,设备制造商要亲自负担技术支持的任务,这导致工程师将宝贵的时间花费在操作系统的支持、集成和测试上,而不是用来进行产品创新和加快产品的上市速度。
公司客户之所以采用Linux是因为获得它不需任何费用(它能方便地从互联网上下载),而且无需付费就能使用它。这两个特点使人们称开放源代码程序为“免费”软件。
虽然你可以免费获取Linux,但在此之后,你采用它做任何事情都需要在时间和金钱两方面付出代价。大多数费用发生在公司实际得到软件的许可权以后。包括集成在内的这些费用是实实在在的。实际上,使用不受控制、无支持的开放源代码软件会增加这些费用,而不是使它们减少。
除了开放源代码软件的现实费用以外,还存在相当大的隐性成本。当前,大多数开放源代码软件的许可证是GNU公共许可证(GPL),GPL要求使用Linux内核运行软件的用户确保他们的软件是公开的且能供他人使用。GPL的一个关键条款是:“对于你销售或发布的任何工作成果,只要它全部或部分包含这个程序或其中任何一个部分,或者它全部或部分来源于这个程序或其中任何一个部分,那么根据本许可条款,你必须将它作为一个整体免费授权给所有第三方。”
这段语句给嵌入式设备制造商带来有关知识产权的问题。一种合理的解释是:如果设备“部分包含”任何由GPL授权的代码,那么根据此许可证的条款,设备中包含的软件必须“作为整体”免费地对外授权。这对设备制造商来说是至关紧要的:以往,他们将系统中的所有软件捆绑在一起授权给购买者,因为这些在他们销售的设备中都是“不可见的”。现在,如果部分软件来源于GPL,那么所有软件都要遵从GPL的法则,而且必须交给开放源代码社群。
GPL对各公司造成影响是因为它的许可条款以及该条款对产品开发形成的冲击。在今年初出版的《金融时报》中,引用了一件事例说明GPL如何影响产品开发。在一家世界领先的视觉处理解决方案供应商,一位开发人员采用了一个免费视频驱动程序的部分代码,但他没有意识到这段代码是按GPL授权的。因为这家公司不愿意公开其商业软件的源代码,所以它被迫开发一个不包含GPL代码的新驱动程序,不仅付出了高昂的费用,而且延缓了产品的面市。
GPL许可方式会招致不可预料的义务。即使极小数量的代码违犯了GPL都会导致产品的推出被延迟,或者更糟的后果。工程师要修改他们的方法学,以避免与未知的许可协议发生冲突以及由此导致的上市延迟。
“免费”是否意味着更快的上市时间?为嵌入式环境而修改Linux需要占用更多的开发时间,这常常延缓产品的上市。制造商需要能加速开发、具有清晰技术发展规划的解决方案,而且这些解决方案必须来自能提供持续技术支持的供应商。
其实工作在嵌入式软件领域的开发人员在想到操作系统时有时会感到很悲哀。现实是终端用户根据成本、功能和可靠性来选购设备,而不太关心所用的操作系统。另一方面,开发商需要特别考虑如何创建应用于这些设备的嵌入式软件,因为这些软件的开发成本是那么昂贵,而且它们对产品又是那么重要。创建这些软件的最佳方法是在尽可能高的层次上进行工作,因为迄今为止,最大的成本在于集成和测试。
Linux是一种操作系统,而不是平台。我们需要提高门槛,以便在平台级而不是在操作系统级思考问题,当然更不用说是一种需要每家设备制造商自己来集成、修改和支持的操作系统。如果操作系统不能充分地定制,这会导致产品成本增加;如果这影响了上市时间,损失的收入和利润将远高于采用“免费”软件而节省的所有投资。
Linux可能会不断改进,以提供基本的商业利益。但在目前以及可预见的将来,对于嵌入式应用它的缺点还是多于它的好处。
|
|
|
|
|
|
|
|