谷歌是怎样做开源的？
谷歌是开源领域领先的贡献者之一，但是这个搜索巨头不是所有的开源许可证都喜欢。
谷歌 开源 许可证
谷歌是开源领域领先的贡献者之一，但是这个搜索巨头不是所有的开源许可证都喜欢。
*谷歌是开源领域领先的贡献者之一，但是这个搜索巨头不是所有的开源许可证都喜欢。*


来自多伦多的报道：Marc Merlin 从 2002 年起就在谷歌担任工程师，至今已经做了许多开源和 Linux 相关的工作。在本周召开的 LinuxCon 北美峰会上，Merlin 发表了演讲，为大家揭示了谷歌是如何使用开源和为开源做贡献的。


“没有开源软件就没有今天的谷歌”，Merlin 说。


Merlin 讲到，谷歌早期回馈到开源社区的资源有限，谷歌的第一代软件全都是写给内部用的，最初并不是为开源而设计的。他接着补充说，事实上开源并不是一件简单的事。也就是说，谷歌早期的软件最初并没有准备开源，不过谷歌发表了技术性论文描述了使用的方法和代码，以便其他人也可以用同样的原理来实现。


![google open source](/data/attachment/album/201609/01/085716qhlbuufepr6rnerl.jpg)


*Marc Merlin at LinuxCon North America*


在各种开源技术领域，谷歌早期的贡献主要是错误修复。


“我们通常是第一个发现并修复那些只在我们这个量级出现的错误的”，Merlin 说。


到现在，Merlin 说谷歌已经为 Linux 内核贡献了超过 5000 个补丁，补丁涵盖了从小的修复到完整的驱动程序和类似容器这样的子系统。


随着谷歌在开源领域的努力，现在已经在 GitHub 上发布了超过 3000 个开源项目。为了以法律的角度来管理整个过程，Merlin 说谷歌有六个人专门在内部从事使用和发布开源软件的合规管理。


为了保证法律上的一致性，谷歌将所有外部的开源代码存储在一个第三方体系内。Merlin 补充说，谷歌只允许使用谷歌能够遵循的许可证的开源软件。其中一个不能接受的许可证是 [AGPL](https://www.gnu.org/licenses/agpl-3.0.en.html) （Affero General Public License），它是一个互惠的许可证，要求使用该代码需提供一个到源代码的链接。


“确保我们没有在任何对外的产品中使用 AGPL 代码的代价太高，相较而言，不如找一个限制性更少的替代品或我们自己写一个”，Merlin 说。


对于那些贡献给谷歌项目的代码，谷歌要求开发者接受一个<ruby> 贡献者许可协议 <rp>  （ </rp> <rt>  Contributor License Agreement </rt> <rp>  ） </rp></ruby>（CLA），该 CLA 主要是让谷歌可以对贡献的代码重新颁发许可证，并为谷歌提供代码的专利授权。


“你仍然拥有你的代码，你只是授予谷歌一个许可而已”，Merlin 说。

