作为开放源码运动的旗舰,Linux曾经是新兴软件企业变革传统软件产业结构的希望。可是,这些年走下来,Linux表现出来的辉煌光环似乎主要是成就了别人,例如风行全球的Android的基础就是Linux。反观Linux自身,却仍然在潜行。那么,Linux本身是否具备腾飞的基因?它需要怎样的机遇,才能羽化成蝶,一飞冲天?
变革,从基因到环境
回想1998年,开放源代码运动如火如荼,因为它向人们预示——软件即将免费获得。这将是改变全球软件产业结构的一场翻天覆地的革命。
这些年来,这种革命真的发生了,只是如果我们不去回想以往,就会觉得目前的一切是理所当然。只要看看我们许多人手中的Android智能手机,你知道其中的软件是免费的。最重要的是,其中的软件基础——Android操作系统是免费的。
尽管Android的基础是Linux,但在这个世界上知道Android的人似乎多于知道Linux的人。这一方面说明Linux是具有羽化成蝶的基因,因为在智能手机领域它已经变成举世闻名的Android;另一方面又启发我们,它应该在其他的更广泛的领域羽化成蝶,从而对整个软件产业的变革发挥更大的作用。
用比较研究的思维方法来观察Linux向Android的演变,有利于我们促成Linux在其他更广的空间里发挥潜力。那么,Android发生了怎样的变异,使其从传统Linux中脱颖而出呢?
纵观整个过程不难发现,统一化、一致化是Linux羽化为Android 的重要推动力。在智能手机和平板电脑领域,Linux被一股强大的力量统一于Android。在其他领域,从事Linux软件开发的工程师和团队仍然处在“家庭作坊”的状况。这并非由太多人热衷于“家庭作坊”式的开发方式。其中的痛苦他们有切身感受。从一个仅有内核和简单网络功能的操作系统开始,一点一点地编织出一个可以与特定硬件环境相配合、投入实际应用的系统,这个过程本身就像是看着别人健步如飞而自己却在爬行。此后,硬件环境哪怕有一丝一毫的改变,就可能导致全面重新修改和测试整个软件系统。而且,这个过程会无休止地循环下去,直至这个产品生命周期的结束。
反观Android,这是一个相对统一化、一致化的Linux系统。开发一个Android的系统,与开发一个Linux系统相比轻松多了,要担心的事情也少多了,速度也快多了。可见,Linux也需要类似于Android那样的变革。
Yocto适逢其时
时光回转至2010年,开放源代码运动的精英们意识到了统一化、一致化对于Linux性命攸关,他们聚集起来,启动了Yocto计划,开始为开源社区培植变革的火种。
通过提供通用的建构系统(Build System)和具备协同能力的开发技术,Yocto计划为Linux开发者启动了新的起点,重点是免除了他们浪费在Porting、Duplicating、Recreating和Maintaining这些低价值工作上的时间。
这两年来,在Yocto的支持下,从最初的爬行到后来的直立行走,Linux社区的人们步伐已经越来越稳健。其中具有标志性的一环就是Yocto计划的兼容需求规范(Yocto Project Compliance Requirements)已经出炉了,这将全面推动变革与进步。
那么,究竟什么是Yocto计划呢?它是一个Linux发行版本吗?我应该怎样把它用于自己的Linux项目呢?
Yocto计划是一个开放源码协同计划,它提供必须的标准以及高质量的架构、工具和方法论,以便降低嵌入式Linux软件工程项目的复杂度,提高其可移植性。Yocto计划不是一个某家公司或者机构提供的Linux发行版本,但是许多硬件和软件公司都加入了Yocto计划,共同来支持嵌入式Linux开发者实现更好的跨平台兼容性和部件互操作性。那么,Yocto计划又是怎样做到这些呢?
在嵌入式环境中建立一个可伸缩的Linux系统,必须依赖一些软件和工具集。请你设想这样的情形,你可以从开放源码社区得到Kernel、Userspace和Patch等等,也会做出你自己的工作,例如特定大小的文件系统、内核配置等等,然后应用适当的工具集来建构各种特定的应用系统,例如针对IA架构做一套系统,针对ARM架构做一套系统。
这跟烹调做菜十分相似——用相同的食材和工具,只要稍微改变配方比例和火候,你就可以做成不同的菜肴。现在请你设想一下,如果没有通用的、好用的工具,例如菜刀、炉灶、锅和炒菜的铲子,你的烹调技艺将会很难发挥。在嵌入式Linux领域,如果没有Yocto 计划,你所遇到的情形就是这样——没有通用的资源,从Kernel、Userspace到Cross-Architecture Build,也没有通用的工具集 (Toolchain、Makefiles、Compilers、Debuggers等等 )。
Yocto计划提供了上述所缺的一切,而且不会让用户有厂商锁定的困扰。这样,用户既拥有了高质量的标准化工具,又可以自行管理其风险。对于企业战略来说,拥有自主的技术选择是成功的必要条件。Linux项目中的互操作性、可移植性和可重用性将会让开发团队受益无穷。
{pagination}
风河Linux助Yocto推动变革
风河不仅在Yocto计划中扮演着工具的角色,而且投入了大量的时间和精力,并且积极倾听用户和合作伙伴的声音,在此基础上推出了新的Wind River Linux 5。
最新的Wind River Linux 5以Yocto项目开源开发环境为基础,而且也是第一批能真正达到“Yocto兼容性规范”要求的产品之一。其中不仅蕴含着最新的开源创意,而且保证了Yocto要求的兼容性和互操作性。这些特征都表明,风河提供了市场领先的嵌入式Linux系统。
通过采用Yocto计划,风河为开源社区更进一步发展嵌入式Linux系统提供了一个更开放、更灵活的基础。由于Wind River Linux 5具备良好的互操作性,并且确保了与Yocto的兼容性,从而可以消除大量重写代码的痛苦,让嵌入式Linux大幅度降低繁重的手工操作,自动化的程度越来越高。
风河中国区总经理韩青介绍说,“多年来开源软件的拥护者一起为持续壮大社区而努力,风河已经在Linux市场取得了重大成功,但这只是风河及其客户的成功,而不是整个开源软件市场的成功。直到‘Yocto计划’的实施,我们才开始在整个开源软件市场播下内在变革的种子。”
由于采用基于Yocto 的基础架构,Wind River Linux 5可与Yocto Project Compatible板级支持包(BSP)以及软件或中间件协同工作,从而帮助开发者迅速实施互用性高、不依赖于平台的Linux项目。 Wind River是Yocto 计划的创始会员以及咨询委员会的金牌会员,再加上风河全球范围内的技术支持和维护以及专家级专业服务,Linux将会会为用户带来更强的信心。除了兼容Yocto Project之外,Wind River Linux 5还可提供商业级Linux平台以及便捷的开箱即用用户体验。
回顾Linux和开放源码运动的发展不难看出,Yocto Project赋予开发人员一个极高的起点,帮助他们避免重复工作以及不必要的维护。事实上,Yocto Project是全球最大的开源项目之一,以此为基础而开发的通用创建系统,可帮助开发人员避免从零开始,转而把时间和资源集中于开发差异化Linux设备,从而实现投资回报最大化。