Linux项目如何摆脱作坊式开发?

发表于 讨论求助 2021-12-11 13:39:43

LC1D

  Linux是Android的始祖。后者已经风行,但Linux却仍然在潜行。这说明Linux的发掘遇到了严重的瓶颈,而克服这个瓶颈就是一个非常大的挑战。这就是基于Linux的开发项目通常在商业上不够合算,具体地说,就是开发进度、成本以及产品上市之后的维护成本都有很大的不确定性,让商业决策者很难做出清晰度判断,因此很难用于大规模的商业项目。

  绝非大家都热衷于"作坊式"的开发,其中的痛苦,凡是用过Linux的嵌入式软件工程师都有切身感受。从一个仅有内核和简单网络功能的操作系统开始,一点一滴地编织出一个可以与特定硬件环境相配合并可投入实际应用的系统,这个过程本身就像是看着别人健步如飞而自己却在爬行。此后,硬件环境哪怕有一丝一毫的改变,就可能导致全面重新修改和测试整个软件系统。而且,这个过程会无休止地循环下去,直至这个产品生命周期的结束。

  摆脱Linux开发零打碎敲的束缚

  尽管软件开发工程是复杂的管理工程,但所用工具是否具备标准化、高效率、高可靠性,这是其中的关键因素。

  在嵌入式环境中建立一个实际可用的Linux系统,必须依赖一些软件和工具集。请设想这样的情形,你从开放源码社区得到内核、用户空间和补丁等等,然后开始做自己的工作(例如建立特定大小的文件系统、内核配置等等),然后应用适当的工具集来建构各种特定的应用软件。而且,你可能不得不针对IA架构做一套系统,再针对ARM架构做一套系统。

  实际上,嵌入式软件开发跟烹调做菜十分相似--用相同的食材和工具,只要稍微改变配方比例和火候,就可以做成不同的菜肴。

  现在请设想一下,如果没有通用的、好用的工具(例如菜刀、炉灶、锅和炒菜的铲子),做菜所花的时间长短将难以预计,烹调出来的菜肴品质也很难稳定。相反,如果刀具、炉灶和锅都是通用的,甚至是机械化、自动化的,情况就会大大不同。麦当劳、肯德基的厨房就是很好的实例--工具都是标准化的。在嵌入式Linux领域,所遇到的情形就是这样--没有通用的资源,从内核、用户空间到跨架构构建,也没有通用的工具集(工具链、Makefile、编译器、调试器等等)。

  反观Android,这是一个相对统一化、一致化的Linux系统。与开发一个Linux系统相比,开发一个Android的系统轻松得多,要担心的事情也少得多,速度也快得多。那么,Linux怎样才能实现类似于Android那样的脱胎换骨?

  以标准化的工具提升Linux项目的规模和效率

  在2010年,开放源代码运动的精英们意识到,是否具备开发构件和工具的统一化、一致化将会关系到Linux的生命力。于是他们聚集起来,启动了Yocto计划。这项计划的目的就是提供通用的建构系统和具备协同能力的开发,为Linux开发者免除他们浪费在移植、复制、重建和维护这些低价值工作上的时间。这两年来,Yocto计划取得了重要进展,其中具有标志性的一环就是"Yocto计划兼容性需求规范(Yocto Project Compliance Requirements)"的推出。

  Yocto计划是一个开放源码协同计划,它提供必备的标准以及高质量的架构、工具和方法论,可以降低嵌入式Linux软件工程项目的复杂度,提高其可移植性。Yocto计划不是某一家公司或者机构提供的Linux发行版本,而是吸引了许多硬件和软件公司都加入其中,共同来支持嵌入式Linux开发者实现更好的跨平台兼容性和部件互操作性。

  更加诱人的是,Yocto不会让用户有厂商锁定的困扰。用户既拥有了高质量的标准化工具,又可以自行管理其风险。对于企业战略来说,拥有自主的技术选择是成功的必要条件。Linux项目中的互操作性、可移植性和可重用性将会让开发团队受益无穷。

  以Wind River Linux 5摆脱硬件不确定性的束缚

  风河公司(Wind River)不仅在Yocto计划中投入了大量的时间和精力,并且积极倾听了用户和合作伙伴的声音,在此基础上还推出了新的Wind River Linux 5.

  的Wind River Linux 5以Yocto计划开源开发环境为基础,而且也是批能真正达到"Yocto兼容性规范"要求的产品之一。其中不仅蕴含着的开源创意,而且保证了Yocto要求的兼容性和互操作性。

  通过融入Yocto计划,风河为开源社区更进一步发展嵌入式Linux系统提供了一个更开放、更灵活的基础。由于Wind River Linux 5具备良好的互操作性,并且确保了与Yocto的兼容性,从而可以消除大量重写代码的痛苦,让嵌入式Linux大幅度降低繁重的手工操作,自动化的程度越来越高。

  由于采用基于Yocto的基础架构(如图所示),Wind River Linux 5可与Yocto计划兼容板级支持包(BSP)以及软件或中间件协同工作,从而帮助开发者迅速实施互用性高、不依赖于平台的Linux项目。

图:Wind River Linux 5架构示意图。

  回顾Linux和开放源码运动的发展不难看出,Yocto计划赋予开发人员一个极高的起点,帮助他们避免重复工作以及不必要的维护。事实上,Yocto计划是的开源项目之一,以此为基础而开发的通用创建系统,可帮助开发人员避免从零开始,转而把时间和资源集中于开发差异化Linux设备,从而实现投资回报化。

  Wind River Linux 5不仅兼容Yocto计划,还提供了商业级Linux平台以及便捷的开箱即用用户体验。由于Wind River是Yocto计划的创始会员以及咨询委员会的会员,再加上风河范围内的技术支持和维护以及级服务,因而可以支持Linux项目开发者摆脱"小炉匠"式的开发作业,进入标准化、商业化的全新时代。

发表
26906人 签到看排名