MySQL 开源证书真比 Postgres 更能带动社区吗?
笔者之前写的「全方位对比 Postgres 和 MySQL」还在持续发酵,最近腾讯的公众号也发布了一篇「MySQL VS PostgreSQL,谁是世界上最成功的数据库?」,其中在对比两者使用的开源证书时写到:
PostgreSQL License 是一个宽松的开源许可证,类似于 MIT 许可证。它允许用户自由使用、修改和分发,无需公开源代码。它也不强制任何特定的版权声明,这使得它与许多其他开源和专有许可证兼容。 MySQL 采用 GPLv2 是一个“传染性”的开源许可证,这意味着任何基于 GPLv2 许可的代码进行修改或扩展,并且要分发的派生作品,也必须在 GPLv2 下发布。这确保了软件的自由性,但也可能限制了与非 GPL 软件的集成。 通俗来说,PostgreSQL License 支持第三方进行修改后商业化,还可以不开源。但 GPLv2 协议要求任何基于 GPLv2 软件的衍生作品也必须是开源的,所以第三方的优化成果最终也会反馈给社区。长期来看,GPLv2 协议更能带动开源社区的发展。
这段话对于两个证书的解释是正确的,但是最后关于 GPLv2 协议更能带动开源社区发展的结论有待商榷。
我们先来看一下 PostgreSQL 使用的证书。
再对比一下 MySQL 使用的 GPLv2 证书。
证书太长了,在 27 寸的显示器上都没法一屏截完😅。另外属于 Oracle 的 MySQL 还提供单独的商业证书,给那些想使用 MySQL 组件,但又无法遵循 GPL 证书的厂商。
Google 的 Open Source 网站也做了一个归类, PostgreSQL 的证书是归在了 notice 之列。
而 GPL 证书是归在了 restricted 之列。
笔者之前在 Google 维护内部的 MySQL 和 PostgreSQL 分支以及相关联的组件,但凡要引入 restricted 证书的开源项目,也需要提供更多的材料来阐述引入的必要性,让开源部门进行审核。毕竟还是要尽量避免污染 (Taint) Google 自己的代码。 在决定把软件项目开源后,首要考虑的就是选择哪种开源证书。GitHub 还为此做了特意的定制,在 GitHub 上项目的根目录下尝试创建 LICENSE 的文件,就能直接选择流行的开源证书模版。
这个排序大致是按照当前证书的流行度来的。目前主流的开源证书分几种类型:
- 你想干啥都行 - MIT, Apache 证书。
- 你可以用,但一旦用了,就要接受被同化 - GPL 证书。这类证书的特点是传染性 (infectious),项目要是使用 (use) 了这个证书的开源组件,那么项目本身也要把代码开源。自由软件基金会 (Free Software Foundation) 希望通过这种方式把开源软件发扬光大。但「使用 / use」这个词的界定是比较模糊的,法律上也缺乏判例。这个漏洞也催生了补丁版 AGPL 的诞生。
- GPL 的温和版 - MPL (Mozilla Public License) 证书。被 Google 归类为 reciprocal (互惠)。如果项目依赖了这类证书的开源组件,项目本身是不会被传染的,只是针对使用的开源组件包括对其的修改需要开源出来。
- 你可以用,但不能用来对付我 - SSPL, BSL (Business Source License) 证书。这个证书一开始是开源商业化公司针对云厂商的白嫖行为而开发的,现在扩展为制约所有其他的商业竞争对手。最近知名开源厂商 HashiCorp 就把旗下产品线的开源证书从 MPL 换成了 BSL。就是针对其他基于 HashiCorp 开源项目构建产品的公司,这些公司的产品和 HashiCorp 的付费版形成了直接竞争。这次改证书的举动也引发了巨大的争议,紧接着社区就 fork 了其最受欢迎的产品 Terraform。
依然保留了 tf,不过换成了豆腐 (Tofu)
目前势头还是挺旺的,5 周的星星数就堪比 Terraform 3 年多的积累。
对于新的开源项目,笔者的建议是选择限制少的证书,也就是所谓的 liberal / permissive license。当下最普遍的是 MIT 和 Apache 证书。这两者的区别在于 Apache 有一个基金会监督该证书的使用,以及对 Apache 这个品牌以及项目知识产权的保护。而如果一个开源项目里采用了双证书 (dual-license),一个 Apache 证书,一个商业版证书,往往也会受到 Apache 基金会的挑战。所以像采用双证书的开源项目,如 GitLab, Sourcegraph 以及 Bytebase 都是 MIT + 商业版证书的方式。
一开始没有必要采用更有限制性的 SSPL, BSL。这类证书在 Google 的归类里也是属于禁用级别。
把项目开源是期望能通过开源的传播性获得指数级的增长。让我们再回到 MySQL 和 PostgreSQL 的证书的对比, MySQL 采用的 GPL 系列是通过添加证书的约束,来强制传播。而 PostgreSQL 所属的 MIT 系是通过放弃约束,来形成自然传播。 Free Software Foundation (FSF) 倡导的 GPL 证书,带着理想主义色彩,而 MIT / Apache 这类的证书更遵从人性。在商业已经主导开源世界的今天,GPL 更能带动开源社区的结论是过于武断的。免费 (Free) 之上,更能进一步驱动开源发展的是自由 (Freedom)。而 Free Software Foundation 的官方中文翻译虽是自由软件基金会,可 GPL 证书却显得免费有余,自由不足(free not freedom)。
你怎么看🤨?
💡 你可以访问官网,免费注册云账号,立即体验 Bytebase。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
网易国产开源分布式存储系统——Curve
导读:Curve 是一款高性能、易运维、云原生的开源分布式存储系统(CNCF Sandbox)。可应用于主流的云原生基础设施平台:对接 OpenStack 平台为云主机提供高性能块存储服务;对接 Kubernetes 为其提供 RWO、RWX 等类型的持久化存储卷;对接 PolarFS 作为云原生数据库的高性能存储底座,完美支持云原生数据库的存算分离架构。 Curve 亦可作为云存储中间件使用 S3 兼容的对象存储作为数据存储引擎,为公有云用户提供高性价比的共享文件存储。本文将介绍Curve块存储相关的部分,并分享Curve在一些场景的应用。 全文目录: 1.分布式存储介绍 2.Curve架构及介绍 3.Curve主要亮点 4.Curve RoadMap 5. 问答环节 01分布式存储介绍 1.分布式存储的分类 首先简单介绍一下分布式存储的分类。分布式存储可以分为三类:对象存储、文件存储和块存储。对象存储在互联网中应用的比较多,比如一个对象、一个图片、一个音频,这种可以通过PUT GET接口来进行存储。文件存储与传统意义的文件系统的区别是,它是分布式的,传统的项目对应的是Ext4...
- 下一篇
【ODPS新品发布第2期】实时数仓Hologres:推出计算组实例/支持JSON数据/向量计算+大模型等新能力
阿里云ODPS系列产品以MaxCompute、DataWorks、Hologres为核心,致力于解决用户多元化数据的计算需求问题,实现存储、调度、元数据管理上的一体化架构融合,支撑交通、金融、科研、等多场景数据的高效处理,是目前国内最早自研、应用最为广泛的一体化大数据平台。 本期将重点介绍 ꔷ Hologres推出计算组实例 ꔷ Hologres支持JSON数据 ꔷ Hologres向量计算+大模型能力 ꔷ Hologres数据同步新能力 ꔷ Hologres数据分层存储 新功能—Hologres推出计算组实例 计算组实例支持将计算资源分解为不同的计算组,更好的服务于高可用部署。 应用场景: 资源隔离: 针对不同企业场景间相互影响带来查询抖动,例如写写之间、读写之间、大小查询间的相互影响,以及在线服务、多维分析、即席分析等之间的相互影响;某些大数据引擎并不是存算分离架构通过复制多副本去实现隔离等高成本业务场景。 高可用能力: 针对无服务级高可用、 容灾和多活的方案,企业通过双/多链路来实现高可用、容灾和多活,其中涉及人力、计算资源等高成本业务场景。 灵活扩缩容 : 针对企业对业务灵活能...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题