笛声悠扬 Publish time 2007-1-17 16:55:48

深入了解google开源框架

搜索巨人Google不仅是开源软件的重要用户,也是开发资助开源软件项目的积极分子。

Google公司(Google总部位于美国硅谷山景镇)拥有像Ubuntu之类的很多软件。同时,Google公司还发布了具有开源许可的Google
Web工具包,并设计Java软件开发工具包以帮助用户创建Web2.0的应用程序。

此外,Google公司赞助的一个项目Net
Trust的源代码最近在Google的主页上发布,它是由开源软件开发者协作完成的。Net
Trust由印第安纳州立大学L Jean
Camp发起,是一个在线的反phishing安全威胁的项目。

DiBona曾在接受CNET
News.com的采访时说过:尽管如此,Google同样也是软件版权的坚强捍卫者。此外,他还谈到搜索公司喜欢什么样的开源项目,Java开源项目将如何影响Google以及为何公司仍有很多代码永远也不会发布给开发者等。

问题:Google公司支持一个开源项目的标准是什么?

DiBona:这包含很多的方面。有时Google的工程师会给我们带来一个想要我们去资助的项目,然后我们就会去研究资助该项目是否可行。这里"可行"意味着它将产生更多的代码,能吸引更多的开源软件开发者,或者它能以某种方式帮助开源组织。

如果你仔细研究我们的资助活动,你会发现他们都符合以上三条原则中的一条或几条。Net
Trust基本上帮助印第安纳州立大学产生了更多的开源代码,并吸引更多的开源软件开发者(有很多学生从事这方面工作)。目前我们已经扩大了资助的范围。

问题:Net
Trust是Google帮助创建的开源项目之一。它是如何产生的?

DiBona:一年以前,Google的一个工程师开始着手Net
Trust开源项目。此外,他的一个大学朋友Jean在从事社交网络抵御phishing安全威胁问题方面的研究。我们确实已经资助了很多的开源软件项目,但它听起来很吸引人,所以我们在Jean
的学校见了一面,看看她在做什么,发现她所做的确实很吸引人,于是就资助了该项目。

Net
Trust为用户提供了一种相互检测网站是否正常工作的方法的机制。它的基本思想是:如果你相信你的朋友以及朋友的朋友,那么你就会更加相信Internet。这十分引人注目。

问题:是否有很多人请求你们支持他们的开源项目?

DiBona:值得一提的是,金钱并不总是能转化为源代码。我们十分关注资助活动的产出,如果有人因为金钱的问题而向我们提要求时,我们是不会答应的。我们不喜欢任何官僚作风。

问题:Google有何开源项目产出?

DiBona:我们已经发布了很多代码,但我们更希望加入现存的团队而不是去建立一个新的团队。相比创建一个新的Linux内核,我更愿意向Linux内核添加补丁。相比创建一个新的Apache,我更愿意向Apache添加补丁。

问题:Google参与的最好的开源项目是什么?

DiBona:大体上我们可以认为是Apache项目及Apache软件基金会。由于雇佣了Linux内核开发人员Andrew
Morton,我们向MySQL添加了一些补丁。我们也有很多工作人员在从事OpenBSD
和OpenSSH的研发工作。

问题:Firefox怎么样?是最好的开源项目之一吗?

DiBona:当然。

问题:除了Firefox,好像其他都是服务器端的开源项目,是不是你们更关注一些服务器项目呢?

DiBona:一般说来,是这样的。

问题:是否因为你们自己也在用这些软件的原因呢?

DiBona:的确如此。自然我们更愿意为对我们很重要的软件打补丁。虽然我们也发布了一些跟我们关系不大的资源,但是大多时候我们都是关注那些对我们有用的东西。

问题:Google使用了哪些开源软件?

DiBona:我们使用了Linux内核、GNU
工具以及很多来自免费软件基金会的编译器。我们还使用一些Apache库--我们并不经常使用Apache
Web服务器,但我们的确使用到他们的很多库。同时,我们还经常使用了OpenSSL

OpenSSH,以及编程语言类,如Python语言和C语言,还有MySQL等诸如此软件。

问题:你们使用的是Linux的哪个版本?

DiBona:我们使用Goobuntu,它是我们的Ubuntu版本。我们通过一个旧的Red
Hat安装驱动我们的服务器系统,这一旧Red
Hat软件已经被修改了很多次,从而变成我们自己的东西了。以前启动系统时需要跟踪Red
Hat,但现在它已经被修整得无需再如此了。

问题:你们为何使用Ubuntu?

DiBona:出于喜欢它,我们认为它运行得非常好,是用户友好型软件。它也十分便于管理、易于更新且十分安全、容易读写。它用Debian系统启动,并运行得很好,我想他们在上边一定花了不少功夫。当然,我们对它做了一些改进,这样它就能运行在我们的网络上,并能提供各种各样的工具供我们的软件开发者使用。

问题:你们打算把Linux的Google版完整地捐献出来吗?或者你们根本不需要这么做?

Debian:我们不需如此。我们已经在我们的Web站点上使用了其中的一些资源,因为我们不得不发布这些资源。我们的开源规范不同于我们的开源项目。最重要的就是符合开源许可--这是我们首先要做的。接着我们就会开展一下诸如提供Summer
of Code(暑假实习)、资助Net Trust等活动。

问题:你在资助像Net
Trust等项目时,你们要求它们拥有一个特殊的开源许可吗?

DiBona:我们通常使用Apache许可,但是更愿意和大家一起合作。

问题:为什么你喜欢Apache的许可?

DiBona:按照用户的意思去做确实很简单。在GPL
[全球公众许可]、 LGPL、 MPL、
CPL及其他许可中,这对用户来说可能是有点困难。我们想要把事情变得简单,因此,当我们资助项目时,他们能很好地利用我们的资源而工作。

问题:Google如何看待开源和闭源之间的关系?贵公司看来是开闭源结合的一个很好的例子。

DiBona:他们确实同时存在。我们有很多现在基于开源但从未发布的软件。

问题:Sun公司的开源软件Java是否对贵公司有帮助?

DiBona:我们使用了很多Java技术,很高兴现在Java成为开源软件。这对Sun公司来说十分有帮助。但对我们来说,我们加载软件及将其在Google.com上显示给用户的方式与Java开源没有多大的关系。但我们的确很高兴他们这样做。

问题:这是否让你们具有更好的适应性?

DiBona:这绝对给了我们更好的适应性。过去如果我们找到一个Java的bug,它会带给我们很大的困难。如果你想给你自己的Java程序打补丁,你还必须获得Sun公司的特殊协议。但现在我们很容易从Sun公司获得那些补丁。

问题:你认为开源的最大收益是什么?

DiBona:适应性。开源软件最令人兴奋的问题在于,当我们更换操作系统及数据库系统之前,无需向任何人提出请求。我们无需为客户端许可支付任何费用。这不论从节约开支还是从适应性和速度来看都是十分重要的。

我们可以用计算机做任何想做的事情。没有人是我们的竞争对手。我希望更多的公司能注意到这一点。购买软件是一笔很大的花费,它将大大超出我们的财政预算。购买软件就意味着你不得不信任他们,因为他们知道你的信息,他们有能力降低你的速度,因此你在选择合作者的时候必须十分小心。而开源软件最伟大之举就在于你是自己的合作者,无需与他人合作。

问题:私有代码对Google来说也很重要。保持商业机密是否很关键?

DiBona:确实。我们不能发布我们所有类型的函数。不是因为安全性,而是因为这些技术本身就是商业战争中的一部分。
Pages: [1]
View full version: 深入了解google开源框架