谷歌在开源世界开辟了一条Android之路

加州山景城——谷歌并不是开源编程的发明者,也不是移动电话软件市场的先驱者,但在它的安卓项目上,不要指责谷歌是在追随领导者。

尽管该公司长期以来一直在内部运营中使用开源软件,但Android是谷歌迄今为止最引人注目的尝试,它试图利用协作编程方法来改变公司外部的计算方式。

谷歌并不是第一家尝试使用开源软件来撼动行业的公司。值得注意的是,谷歌愿意在开源世界里惹火别人,包括像红帽这样的潜在盟友。

谷歌通过避免流行的通用公共许可证(GPL)来管理软件,并在引入外部人员之前在内部创建软件,从而打破了一些开源惯例。与此同时,它也逐渐融入了开源的主流。

“一开始,他们的方法几乎是一种专利产品的方法,”Linux卖家兼Android合作伙伴Wind River的首席营销官约翰·布鲁格曼(John Bruggeman)说。“我认为他们已经调整了战略的所有要素。它对开源更友好,对开发者更友好。”

尽管谷歌的道路可能有些不同,但该公司有一个明确的普通开源目标:建立一个广泛的、合作的社区,以挫败微软的霸权。

负责Android的谷歌工程总监安迪·鲁宾(Andy Rubin)把今天混乱的手机软件大杂烩比作早期的个人电脑。不过,在移动电话领域,微软已经开始提供集成软件,从高级的office应用程序和Web浏览器,一直到低级的操作系统内核,这些软件对手机制造商具有强大的吸引力。

“这是PC行业所发生的事情的重演。我们希望确保有其他选择。但是谷歌并不想成为其软件的唯一入口。“我们希望确保没有单一来源,(所以)如果运营商、用户或第三方遇到问题,他们可以自己解决。”

Android是一个庞大的开源项目——至少在今年晚些时候第一批手机上市时它会成为一个开源项目。鲁宾说,Linux内核的最新版本2.6.24有大约800万行代码,但Android的1100万行代码中有860万行是开源的。

作为开源软件出现的Android组件包括Nuance的语音识别软件和PacketVideo的音乐和音频解码器。他说,谷歌还一直致力于从高通(Qualcomm)、博通(Broadcom)和Sirf获得支持移动电话芯片的硬件规格。“你会看到我们的产品成为高通的第一个Linux系统,”鲁宾说。

先关闭,再打开,但是这个开源版本会很复杂。谷歌在今年晚些时候向全世界发布这一代码时,可能会面临褒贬不一的评价,这取决于它如何完成这项任务。最困难的部分不仅是共享代码,而且是将外部开发人员集成到一个在公司范围内不断发展的项目中。

从技术上来说,一个完全由一家公司运营的开源项目是没有问题的,但它很少是任何公司的开源目标。它不太可能吸引那些希望通过添加重要的新特性或可能为自己的贡献提供资金的企业联盟而出名的外部编码人员。

谷歌的封闭开局让红帽公司的首席技术官布莱恩·史蒂文斯很不舒服,他的公司是开源软件最积极的倡导者之一。

史蒂文斯说:“我认为,这减少了他们成功的机会,而不是增加了成功的机会。”“这妨碍了许多聪明的开发者参与Android平台的开发……社区出现在产品的早期,而不是当你决定要发布产品的时候。”

Mozilla负责工程的副总裁Mike Schroepfer补充说,总的来说,企业利用私有软件开发开源项目的努力常常会因为不愿分享控制权而受阻。

“人们认为发布源代码是困难的部分,但目前为止更困难的事情是公开参与决策——在你的四壁之外分配权力,”斯科罗普夫说。“其中一些真正出了问题的地方是,当人们没有得到授权,他们的声音不重要时,他们就不会参与进来。”

不过,Redmonk的分析师斯蒂芬·奥格雷迪(Stephen O’grady)表示,谷歌不会面临完全由私有软件向开源软件转变的挑战:开源之举是Android计划的一部分,而不是多年后才出现的发展。

开源交付的谷歌有其封闭启动的原因。

“我们希望达到足够稳定的程度,”鲁宾说。然后,在开源改变之后,“我们希望它蓬勃发展。”

这家公司正在着手把业务移交给外部世界。Android已经是一个项目,它的开发分布在所有支持Android的开放手机联盟成员中,包括起步阶段,以及多个国际谷歌办公室。“我们正在学习如何进行大规模的分布式工作,”鲁宾说。

鲁宾说,公司还有一个10人以上的团队负责处理Android的外部开发关系。一旦代码发布并吸收负责Android组件的谷歌“维护者”,比如运行用Java编写的应用程序的Dalvik虚拟机软件,这个团队就会变得更大。

鲁宾表示,谷歌的开源项目经理克里斯·迪博纳(Chris DiBona)以及一些来自Android项目的人员将与外部程序员合作。他说:“我手下负责核心开发的开发人员,一旦开源,就会转而为开源树或代码库编写代码。”

谷歌还采用了一种以社区为中心的方法来定义Android是什么。项目维护者可以接受或拒绝贡献,这在开源领域很常见。新的是谷歌将提供一个认证测试套件的基础上,这些维护者的工作,以保持兼容性的不同版本的Android。

“如果通过,他们就可以使用开放手机联盟的Android商标名,”鲁宾说。“我们不是说你不能分支。我们说的是你不想要分支。”

谷歌因为没有与现有的开源项目合作而受到批评。此外,Sun Microsystems还表示担心,谷歌对Dalvik的开发可能会分裂Java世界,使运行Android应用程序的Java软件无法在其他Java手机上运行,反之亦然。

但是,鲁宾说,谷歌选择单独与Dalvik和其他一些项目合作的一个重要原因是:它想避开GNU通用公共许可证(GPL)。作为自由软件运动宣言的开创性许可证要求源自GPL产品的软件项目也在GPL下发布。这个概念实际上需要互惠性:如果您使用GPL代码并分发产生的软件,那么您必须将您的更改贡献回GPL代码库。

鲁宾说,谷歌不愿提出这个问题,因为手机制造商可能想要增加专有功能来区分,所以它选择了限制较少的Apache许可。

“让我担心GPL的是:假设三星想要制造一款在功能和功能上与LG不同的手机。如果手机上的一切都是GPL、任何应用程序或三星所做的用户界面增强,他们将不得不做出贡献,”鲁宾说。“在应用层,GPL不起作用。”

当然,回报正是许可证的目的之一,理查德·斯托尔曼最初是为了管理一个不能成为私有的Unix克隆而写的;许多公司已经接受了GPL,包括最初的怀疑论者,如Wind River。其他的嵌入式计算工作正在更广泛地使用GPL软件。

“这是一个非常保守的解释,”布鲁格曼这样评价谷歌的GPL立场。

长期以来,开源倡导者一直在争论,是像Apache许可证允许的那样允许公司把代码变成私有的更好,还是像GPL要求的那样迫使公司保持代码的开放性更好。即使Android使用由GPL控制的Linux内核,也不要指望谷歌的立场会结束这场争论。

因此,不要指望鲁宾目前的想法会成为最终结论。这家公司已经表明愿意改变。

“我是这么想的。第一,他们边走边学,”布鲁格曼说。“第二,他们学得很快。”

THE END
分享
二维码
海报
谷歌在开源世界开辟了一条Android之路
加州山景城——谷歌并不是开源编程的发明者,也不是移动电话软件市场的先驱者,但在它的安卓项目上,不要指责谷歌是在追随领导者。 尽管该公司长期以来一直在……
<<上一篇
下一篇>>