写点什么

Google 的开源方法论

  • 2016-09-01
  • 本文字数:1097 字

    阅读完需:约 4 分钟

没有开源,Google 不会有今天的成功。在本周举行的北美 Linux 大会上,Google 工程师 Merlin 从一个第三方视角概括了 Google 是如何使用和为开源做出贡献。自 2002 年以来,Marc Merlin 一直担任 Google 的工程师,期间做过许多开源项目并为 Linux 项目贡献过代码的。

开源绝非易事

无论是个人还是公司,开放项目源码的目的无非是:借助社区的力量帮助项目更好地成长和推动社区的发展。但是,开源绝非易事。创始之初,由于资源非常紧缺,Google 在早期对开源的贡献非常有限。Google 的第一代软件都是为了内部使用的需要,并非在开始就是为开源而设计。之后 Google 希望将这些软件开源的时候,花费了大量的精力专门为它们写了技术文档以及论文,以描述其中的方法和代码,方便开源社区的其他开发者查阅和参与。开源并非仅仅是将源码发布出去,同时还需要付出巨大的精力去进行维护。

Google 的开源史

从经验上看,Google 过去在总体上虽然不怎么开源,但是却发表了很多相关的论文,比如说对于业界很重要的 MapReduce、BigTable 论文。并不是说 Google 不愿意开源,否则它也不会去发表这类论文,问题是在于开源需要太多的人力和物力了。随着 Google 的日益壮大,开始在开源社区担负起一定的责任。从 Google 开源的发展中可以看出,Google 最早期的贡献都是修复一些 bug。Google 总是最先发现和修复难以发现的 bug,因为这些 bug 只会在 Google 这样的规模中才会出现。到目前为止,Google 已经为 Linux 内核贡献了超过 5000 次补丁。其中有小的补丁也有大的子系统。当谈到 Google 自己的开源项目时,目前在 GitHub 中 Google 有超过 3000 个开源项目。随着开源项目的骤增,为了方便集中地对需要开源的代码进行审查,Google 组建了一个包含 6 个人的审查团队,主要任务是从法律层面审查 Google 内部使用开源项目和发布源码的合规性。

如何保持代码的合法性

为了保持整件事情的合法性,Google 将所有外部的开源代码存储在第三方。只有那些拥有 Google 能够接受的许可证的项目,Google 才允许在内部使用。一个 Google 不能接受的许可证的例子是 AGPL(Affero 通用公共许可证),这是一个互惠许可证,要求那些使用了其中的代码的项目需要提供一个项目源码的链接。相比于在一个较少限制的许可证下自己去书写代码重新实现,或者使用其他的方式,比保证 Google 面向外部的产品中没有任何 AGPL 代码的代价要小得多。对于那些向 Google 项目贡献代码的开发者,Google 要求他们同意贡献许可协议(CLA)。CLA 的主要目的是得 Google 能够对贡献的代码重新颁布许可证,以及 Google 对贡献的代码有专利许可。即,仍然保留开发者的代码的所有权,开发者只是另外给了 Google 一个许可证。

2016-09-01 19:003393
用户头像

发布了 32 篇内容, 共 20.4 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异

不在线第一只蜗牛

数据库 sql postgresql

IoTDB 如何破解交通运输时序数据管理难题?

Apache IoTDB

Studio 3T 2025.3 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端

sysin

DeepSeek 满血版在 VScode 和 IDEA 中怎么用?手把手教程来了

阿里云云效

阿里云 云原生 通义灵码 AI程序员 AI程序员体验官

越过“三重门”,萤石给出了商用清洁机器人的新解法

Alter

RPA是什么技术?RPA能干什么探究RPA技术,洞悉其应用前景

Techinsight

RPA RPAxAI RPA Agent RPA智能体

Windows 10 version 22H2 中文版、英文版下载 (2025 年 2 月更新)

sysin

Windows 10

Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 2 月更新)

sysin

windows

智能网络感知,打造极致流畅的鸿蒙版中国移动云盘图文体验

HarmonyOS SDK

RPA软件格局现状:解读”最好“标准下的佼佼者

Techinsight

RPA RPA评测 RPAxAI RPA Agent RPA智能体

Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)

sysin

windows

DeepSeek已接入!OpsPilot探索智能运维无限可能!

嘉为蓝鲸

智能运维 大模型 DeepSeek OpsPilot

《央国企数智化转型发展报告2025》调研正式启动,诚邀参与线上调研!

信通院IOMM数字化转型团队

数字化转型 数智化转型 央国企数智化转型 央国企数字化转型

低代码重新定义场景,如何拿到数字化转型的“新船票”?

秃头小帅oi

Cisco Expressway Release X15.2.2 - 统一通信网关

sysin

Expressway

Windows Server 2016 中文版、英文版下载 (2025 年 2 月更新)

sysin

Windows Server

DeepSeek 满血版在 VScode 和 IDEA 中怎么用?手把手教程来了

阿里巴巴云原生

阿里云 云原生 通义灵码 AI程序员 AI程序员体验官

什么是DApp?DApp开发指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台

阿里云大数据AI技术

大数据 spark Serverless EMR 美的

什么是云解析DNS?云解析和普通解析有什么区别?

国科云

借助AI挖掘资产管理领域的新大陆

ServiceDesk_Plus

资产管理 IT资产管理 AI资产管理

LLMOps+DeepSeek:大模型升级一体化运维

嘉为蓝鲸

运维智能化 LLMOps LLM模型 DeepSeek DeepSeek v3

交易所开发:数字市场的核心动力

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

低代码开发与人工智能协同创新:解码智慧养老产业数字化转型的技术路径与实践启示

不在线第一只蜗牛

给老系统做个安全检查——Burp & SqlMap扫描注入漏洞

为自己带盐

安全

DeepSeek赋能企业研发,DevOps+AI新时代再升级!

嘉为蓝鲸

DevOps 模型管理 DeepSeek DeepSeek v3

Nexpose 7.7.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

再尝Semantic Kernel

为自己带盐

智能体

2025 年值得关注的 10 大SD-WAN厂商

Ogcloud

SD-WAN SD-WAN服务商 SD-WAN厂商 SD-WAN厂家 SD-WAN提供商

当任务失败时,顶级调度系统如何实现分钟级数据补偿?

白鲸开源

大数据 开源 Apache DolphinScheduler 补数

Google 的开源方法论_Google_百占辉_InfoQ精选文章