向Linux移植的方法与策略
扫描二维码
随时随地手机看文章
摘要:本文概述了将设备软件从原来的平台上移植到Linux平台的方法和策略。
关键词:Linux;开放源代码;移植;DSO
Linux和开放源代码社群已成为设备软件领域的热门话题。将设备软件从原来的平台上移植到Linux平台,的确可以为电子产品制造企业带来不少好处。但是,对于这种平台移植过程中可能遇到的问题,如果不是预先有所认知并妥善处理,很可能就会使这项工作费力不讨好,甚至面临得不偿失的后果。
要通过向Linux的移植获得实际的回报,自然就要清楚地看到这项工作可以得到哪些好处,同时明白自己要付出的代价。
一般说来,电子产品制造企业将设备软件移植到Linux平台,主要可以获得商业和技术两个方面的好处,归结起来包括:
*免权力金
*容易获得源代码
*可以从商业或者非商业多方面获得软件模块和工具
*更容易招募开发人员
*更广泛的沟通与协作资源
*容易为所选的处理器找到支持来源
在上述所有因素中,免权力金所带来的吸引力最大。Linux平台的TCO(Total Owner ship Cost,总体拥有成本)低于其他操作系统,因而常常成为企业选择移植到Linux平台的决定性因素。
慎选Linux平台
Linux操作系统到处都拿得到,这是选择Linux的一大好处。但是,如果处理不好,错误的选择就可能成为一系列麻烦的开始。操作系统是整个应用的平台,最重要的是可靠性。如果你选用的操作系统来源不可靠,就很难相信它能够成为可靠的设备软件平台,因而给你的总体拥有成本带来很大的风险。在此决策过程中,最重要的一项决定是:选择商业套装Linux软件平台(CommercialGradeLinux),还是自行获取源代码并自行完成平台和工具的集成和调试。
以Linux为平台的设备软件开发者首先必须明确自己所要做的事情——是要在Linux平台上进行产品开发,而不是要去开发Linux操作系统。因此,为了降低TCP而选择Linux平台的决策者,一般都会选择商用套装的Linux软件,而不倾向于把自己宝贵的金钱和时间浪费在源代码的整理和工具的集成、测试等基础性的工作上。只有这样,电子产品厂商才可以把更多的财务和人力资源用于开发产品的新功能,解决客户关心的问题,使自己的产品具有更强的市场竞争力。
另一个促使决策者选择商业套装Linux平台的原因是产品上市速度。如果不选择商用套件,就必须自行维护Linux版本,需要投入大量的资源和时间。反过来,如果选择预先组合并且经过验证的商用Linux套件,就能够加快产品的上市速度。一般说来,商用套装Linux平台的提供商都会提供相应的技术支持和顾问咨询,这就更加有助于缩短电子产品厂商所面临的技术差距。相对于从开放源代码社群获得技术支持,商用套装Linux提供商的支持更有保障,更有助于缩短产品上市时间,同时提升客户满意度。
此外,商用套装软件提供商都已经形成了一定的合作伙伴体系。尤其是当电子产品制造企业所选择的硬件平台缺乏开放源代码社群支持的时候,商用套装软件提供商及其合作伙伴体系的支持能力就更显示出特有的优势,而且成为决定产品开发项目成败的关键因素。
如果不选择商用套装Linux平台,而是选择开放源码社群,这就意味着你的开发工具都要来自开放源码社群。相对而言,你就可以对这些软件工具掌握较高的控制权,也可以任意选择其他相容的开发工具,用来为你的产品设计增加所需的功能。开放源码意味着不需要与别的公司签署任何软件购买或技术支持合约。对于某些电子产品企业来说,不需要与另外的厂商签署复杂的软件购买与支持合约,就可以免除一些繁琐的行政工作。
开放源代码工具的经常成本(NormalCost)通常比较低,这是因为取得这些工具不需要直接的金钱成本。由于可以免费获得开发工具,而且这些开发工具流通比较广泛,因此可以较快地投入产品设计工程项目。不过,必须注意的是,如果选择自行取得操作系统,就应当在做出决定之前充分考虑到将会付出的机会成本。
虽然大多数开放源代码使用者都对单独的开发工具的品质给以肯定,但这些工具如何集成起来、融为一体,选择开放源代码平台的产品制造商就只好自行解决和确认。事实上,各个开发工具之间能否相互配合比单个开发工具的品质更为重要。如果选择了商用套装Linux平台,有些供应商就可以提供整合式的开发套件,在出货前都已经进行了商用级的品质确认。
值得注意的,并非每个宣称提供Linux操作系统和开发工具的厂商都提供商业级(Commercial Grade)Linux的套装软件和相应的全球化支持与服务。例如,有的嵌入式Linux软件提供商自行为Linux增加了许多内容,并且采用了非标准的代码,形成了所谓的“专有版Linux”,往往与原来的Linux社群反而没有多少联系了,这与采用Linux的目标是相背离的。
反过来,像WindRiver这样的商用套件开发工具提供商的产品不仅提供最原始、纯正的Linux内核代码,而且预先整合了各种开发工具和符合特定行业需求的工具和参考设计,这就使得电子产品制造商不仅可以基于一个标准、纯正、开放的Linux开放源码平台,而且免除了工具整合的工作,从而可以专注于应用软件功能特性的开发。如果产品制造商有额外需求,例如增加第三方的Plug-in,这都会增加整合的工作量,而商用套装Linux平台提供商就可以提供额外的功能与支持,这些都无法从免费的开放源代码社群获得。此外,商用套装Linux平台提供商还可以提供更完善的技术支持和专业服务,帮助产品制造商克服开发过程中遇到的困难。
移植方法与过程
当选定了操作系统及其来源和开发工具套件之后,在开始产品开发之前,还必须进行一些准备工作,以便产品开发项目执行得更为成功,并且确保今后的工作能够得心应手。
第一步是建立评估体系,作为日后衡量向Linux的移植是否成功的依据。在这个评估体系中,必须考虑到以下几个因素:第一,为何要从原来的平台移植到Linux;第二,是否有明确的目标来定义向Linux平台移植的成功;第三,是否建立了衡量工作效率的方法;第四,如果进行这种移植的目的是降低TCO,那么这个目标是否真正达到了;第五,有哪些指标必须进行评估,而哪些指标则不一定要考虑。
这种评估应该尽量采用量化的方法。例如,必须设定明确的ROI(投资报酬率)、TCO以及其他指标,以此来评估企业向Linux的移植是否获得成功。不同的评估方法可能对移植的成败与效果得出不同的结论。例如,降低TCO的指标还可以细分为免付权力金、相对便宜的程序代码维护以及人力资源成本的节省等。另外有些方面则可以从策略的角度来进行概念性的评估,包括由于选用了Linux和商用套件而获得了竞争差异性的机会,或者为企业开辟了新的收入来源。总之,如果没有清晰的评估体系,你永远都不会知道自己所做的事情是否成功,是否获得了实际的效益。
另外,风险因素也不可忽视。例如,如果向Linux平台的移植不成功,将会对TCO造成多大程度的影响。如果忽视了风险的存在,其后果常常更加难以收拾。
第二步是确定企业自身需要哪些外部支持。电子产品制造企业可能需要一些特定行业领域的支持,例如测试与验证、技术培训或者项目管理等。因此,企业可以考虑将部分工作委托给有技术实力和经验的外部服务提供商,帮助自己解决一些基础性的问题,从而使自己的精力集中在应用软件的开发方面。
最后,电子产品制造商还必须仔细审视其向Linux平台移植的进度计划。这个问题常常被忽视。VDC调查资料显示:超过40%的设备软件受访企业都认为,造成项目进度延误的主要因素就是他们自己制定了不切实际的进度计划。如果去实际检验一下项目的进度,就会发现事情比想象的严重。VDC报告还指出,超过三分之一的设备软件项目的进度都落后于计划,甚至有10%的项目最终干脆放弃了。虽然导致进度延误的原因各不相同,但是在制定计划的时候就充分考虑到各种可能的问题并做好预防措施,显然有助于避免许多问题的发生。
向Linux平台移植的确是一项不容易的工作,这个操作系统原本是为了企业系统而设计的,如果没有针对设备软件应用做出适当的调整,其中就会隐藏着许多风险,这也是许多电子设备厂商倾向于选择经过专业设备软件提供商集成与验证的商业套装Linux的主要原因。
需要逾越的难题
设备软件的运行架构与原本Linux所针对的企业运行环境有很大的不同。设备软件开发者可以选择最接近设备软件环境的Linux软件架构,以便简化移植的过程。但是,从以下几个问题可以看出,其中的障碍还是不小的:
第一,Linux的系统调用(SystemCall)与设备软件平台所使用的应用程序代码和中间件不同,因此设备软件开发可能与Linux软件开发存在一些概念上的差异;
第二,现有的设备软件操作系统和Linux之间的I/O架构也存在差异;
第三,内部程序或者内部处理器之间的通信存在的差异可能更大。Linux内核程序和线程(Thread)很可能和设备软件开发者现有的应用程序开发经验截然不同。
所以,当你向Linux移植的过程开始之后,必须随时掌握列入评估体系的关键指标,并且要保证其详细程度深入到软件架构的层次。发现问题所在,以及发现问题的时机都是非常重要的。性能调试的指标或者问题本应在需求分析阶段就得到解决,如果这些问题被延误到系统集成测试和优化阶段,就会给问题的判定带来极大的麻烦与困难。
引入DSO的好时机
向Linux移植的另一个重要影响是它对软件开发环境所带来的冲击。这可能意味着企业组织架构的重大变化,因此必须确保有效的管理、组织和沟通。不过,Linux同时也很可能给软件人员带来一个很好的改善机会。
为了让企业向Linux转移的过程达到最简化和正面的效应,必须建立科学的评估体系以便衡量移植所带来的成效,并从项目一开始就在这个评估体系中对确定的指标进行追踪衡量。除了严谨的规则以外,还必须为整个过程建立完善的文档,并且与整个团队就工作进程展开充分的沟通。事实上,这也是任何软件项目都必须遵循的原则和流程。附图给出了一个已经在一些移植项目中经过实践的方法,显示了一个软件项目必须遵循的步骤,称之为DSO方法学(Device Software Optimization Methdology)。
企业向Linux移植为什么有可能成为全面提升其软件开放能力的重要机会呢?因为与传统的嵌入式软件开发工具不同,DSO提供了更加完整的解决方案。传统的嵌入式软件开发环境,一般都是针对某个产品的开发,选择一个RTOS(嵌入式实时操作系统),再加上一些开发、调试工具。DSO方法则完全不同,它是在整个电子制造企业和产品生命周期这两个更大的范畴内对设备软件的开发、部署和维护进行规划,充分考虑到产品生命周期各个阶段的需求,实现了更大跨度的最优化。有了DSO,甚至可以在设备中实现远程管理和维护功能,让电子产品制造商在自己的办公室即可对远方的设备提供现场维护和支持,从而以更低的成本使设备的使用率和性能保持最佳状态。
WindRiver是帮助企业实施DSO方法学的开拓者和领先者,并且正在致力于把自己20多年的设备软件经验融入到Linux平台之中。在DSO方法学指导下实施向Linux的移植,让设备软件开发者集中精力从事应用开发层面的创新,而不需要在操作系统和工具集成方面消耗过多的资源,从而为设备软件的性能、成本和可靠性注入新的活力,在根本上增强其产品的市场竞争力。