Google开源负责人:Linux库房的乾坤

来源:百度文库 编辑:神马文学网 时间:2024/04/29 09:31:07
12月27日国际报道 搜索巨头Google大量使用开放源代码软件,也积极参与许多开源程序的开发计划,甚至是部分计划的赞助者。Google开放源代码计划经理Chris DiBona表示,Google的计算机系统上安装各式各样的开源软件,例如Ubuntu.该公司最近也依据开源授权发布用来开发Java软件的Google Web Toolkit,以协助程序设计师打造Web 2.0应用程序。
Google还出资赞助一项称为“Net Trust”的计划。这项开放源代码程序的源代码最近通过Google Code (Google为开源开发人员建立的在线协作园地)发布。Net Trust由印第安纳大学的L.Jean Camp率先发起,是一项反网络钓鱼(antiphishing)软件开发计划,其作用是根据网络使用者所属社区的成员对网站的评价,来标注某网站值不值得信任。
日前DiBona接受CNET News.com专访时表示,Google虽积极参与开源活动,但也笃信专有(proprietary)软件的价值。他提到Google偏好的开源程序、Java开放源代码对Google的影响,以及有些程序代码Google绝不会对外部开发人员开放的理由。以下是访谈摘要。
问:Google支持开源计划的标准何在?
DiBona答:必须考虑三件事。有时,Google的工程师会拿某个计划给我们过目,希望我们出资赞助。我们会研究看看,评估那项计划构不构成合理的投资条件。所谓“合理”,意味如果投资的话,会不会催生更多的程序、或培育出更多的开源程序开发人员、或对开源社区做出其它别的贡献。
我们已发布许多程序代码,但我们比较可能参与既有的社区,而不是自己从头建立新社区。看看我们赞助过的活动,即可知道那些计划都符合这三项标准中的一项,或不只一项。比方说,Net Trust基本上协助这所大学(印第安纳大学)编写更多的开源程序,并培养出更多的开源程序开发人员,因为可征召一群学生投入此事。我们赞助这类计划的范围很广。
问:Net Trust是Google从旁协助的开源计划之一,来龙去脉为何?
答:约莫一年前,某个Google工程师与这个开源集团接触。他的朋友在印第安纳大学就读,正在研究如何运用社交网络反制网钓问题。我们曾赞助许多的开源软件,而这项计划听起来很有意思。后来我们跟Jean Camp面谈,进一步了解她的研究计划,觉得很有趣,所以就出资赞助。
简单说,Net Trust是一种让使用者互相参考意见,以确认某个网站的确是表里如一,而不是挂羊头卖狗肉。背后的观念是:如果你信任你的朋友,也连带信任你朋友的朋友,那么你对因特网的信任感就会增加一些。这很吸引人。
问:有很多人要求你支持开源计划吗?
答:提到开源跟钱,有趣的是,钱未必能转化成程序代码。我们非常注重赞助活动会不会产生程序。意思是,当登门造访的人想做的不是以程序为导向的活动时,我们不支持。众所周知,如果你想写程序,跟我们很好谈;如果你要的是建立别的管理组织,就不怎么好谈。
问:Google本身可曾产生开源计划?
答:我们曾经发布许多程序代码,但我们比较可能参与既有的社区,而不是建立新的社区。我宁可在(Linux)核心之上添加补丁程序,而不是另外再打造新的核心。我宁可在Apache上加入补丁程序,而不是另外再创造新的Apache.我认为这样做更好。
问:Google或Google人参与的顶尖开源计划为何?
答:各种的Apache计划,以及整体而言,Apache软件基金会。不过,我们聘请Andrew Morton之后,也很重视Linux核心。我们曾回馈一些补丁程序给MySQL,但MySQL也许挤不进前五名。我们另拨出许多人力投入OpenBSD和OpenSSH.
问:Firefox呢?
答:喔,Firefox当然有。我不知道为什么忘了提。
问:Firefox显然是客户端程序,除此之外,你们参与的其它开源计划似乎都偏向服务器方面。这是巧合呢,还是你们偏重服务器计划呢?
答:大致来说,的确是如此。
问:那是因为你本身也用这类软件吗?
答:一点也没错。我们极可能修补对我们重要的程序,那是很自然的事。我们曾发布一些并不是我们谋生工具的东西,但我们专注于对我们最重要的软件。
问:那Google本身用哪些开源软件?
答:我们用Linux核心。我们取得GNU工具。我们用自由软件基金会(FSF)出的许多套编译器。我们也用一些Apache程序库(libraries)——我们不常用Apache网页服务器,但常常使用他们的程序。OpenSSL和OpenSSH经常使用。我们用Python和C这类的程序语言。也常用MySQL.诸如此类。
问:你用什么版本的Linux?
答:我们用Goobuntu,是我们自家版本的Ubuntu,安装在我们自己的台式机上。我们的服务器系统脱胎自旧的Red Hat版本,但后来程序改变得实在太多,所以现在实质上已变成我们自己的版本。就操作系统而言,我们以前曾亦步亦趋地跟随Red Hat,但现在系统变得很精简,很不一样,所以情况已改观。
问:你们的台式机选用Ubuntu,有没有什么理由?
答:我们真的很喜欢Ubuntu.觉得它执行效果好,使用者很容易上手,管理起来也很容易。这是跟得上时代的版本。非常安全。程序写得非常好。他们起初从Debian着手,改造得很棒。我认为他们的成就卓著。当然,我们也加以修改,以便在我们的网络上执行,并提供我们软件开发人员需要使用的那类工具。
问:你们有把Google版Linux贡献回社区吗?还是你们不必这么做呢?
答:我们不必这么做。我们的确在搜索appliance和我们的网站上用了一些东西,因为我们必须开放。
可以谈谈我们的开源协议遵守状况,那跟我们的开源推广活动是两回事。最重要的是遵守开源授权条件,这个我们优先实行。接下来才从事其它活动,像是Summer of Code,和赞助Net Trust这类计划。
问:你在赞助Net Trust这类计划时,你会指定采用某种特定的开源授权方式吗?
答:我们通常偏好Apache授权,但也愿意跟别人配合。
问:为什么偏好Apache授权?
答:Apache授权对使用者来说容易遵守。对我们而言,要遵守GPL(General Public License)、LGPL、MPL、CPL等等授权条件很容易,但对使用者来说可能有点难。我们希望把事情化繁为简,所以每当我们赞助计划时,就希望使用者能利用到我们赞助计划的成果。
问:Google对开放源代码与封闭源代码混用的看法如何?你们似乎是混合源始码公司的一个范例。
答:这两种软件显然和平共存。有许多软件我们绝不会开放;这些软件在我们用的开源基础上执行。
问:Sun已开放Java的源代码,对你们来说有没有什么差别?
答:我们也常用到Java,现在Java开放源代码是好事。我认为,Sun这么做是美事一桩。对我们而言——就我们推出软件的方式,以及我们通过Google.com向使用者展示的方式而论——Java源代码开放与否其实差别没那么大。不过,我们仍然很高兴他们这么做了。
问:那赋予你们更大的弹性吗?
答:确实赋予我们更多弹性。以往,如果我们发现Java程序有错,事情比较棘手。若你想修补自己的Java,必须与Sun签订特别协议。我们是有签那种协议。但现在要通过Sun发布那些修补程序,再开放到社区,可比以前容易多了。
问:你觉得开放源代码最棒的好处是什么?
答:对我们来说,就是弹性。开放源代码软件最棒的一点,就是我们事先不必征求任何人的允许,就能着手修改我们用的操作系统。不必征求任何人的允许,就能修改我们用的数据库。我们用这些东西,也不必支付按客户端份数计价的授权费。这一点极为重要,不仅是从节省成本的观点来看,也从弹性和速度的观点来看。
能够用我们的计算机做任何我们想做的事,就极具价值。不论是竞争对手或朋友,没有人有动机对我们说不。这实在很棒。但愿更多的企业能体会这一点。购买软件要付出的代价其实远不止于财务成本而已。
买软件意味你必须真的信任跟你往来的人,因为他们对你了如指掌,而且具有影响力,能拖慢你的脚步。所以你必须谨慎挑选合作伙伴。开源最棒的事,就是你的伙伴就是自己。
问:但Google也重视专属软件。对你们而言,保护商业机密很重要吗?
答:那是当然!我们不可能公布任何排序公式(ranking functions)。不是因为借刻意模糊来保持安全性,那很虚假,而是因为那些技术本身是作战的一部分。