返回
2025/03/19
9. 考虑 Red Hat 决定不公开源代码
在 2023 年 6 月 21 日的博客文章“
推动 CentOS Stream 的进一步发展”中,Red Hat 宣布将限制 Red Hat Enterprise Linux (RHEL) 源代码的发布,仅限于客户和合作伙伴。
自那以后,许多新闻网站报道了这一话题,开发 RHEL 克隆版本的供应商和社区,如 Oracle、AlmaLinux 和 Rocky Linux,对此反应强烈。
Red Hat 的声明意味着什么?为什么会引起如此强烈的反对?要理解这一点,您需要了解 Linux 的历史、发行版的开发方式以及涉及的许可协议。
在这里,我们将简单探讨最近的这场骚动,包括 Red Hat 声明的意义、其他公司的反应以及对未来趋势的预测。
理解 Red Hat 的声明
要理解这一声明,您需要了解 CentOS Stream。让我们在介绍 CentOS Stream 的同时看看这个声明。
与 CentOS 相关的 Red Hat/IBM 声明
为了了解全局,让我们回顾一下 CentOS 的情况。
- 2004 年:CentOS 首次发布
- 2014 年:Red Hat 收购 CentOS
- 2019 年:IBM 收购 Red Hat
- 2020 年:CentOS 项目将被终止
- 2021 年:针对 CentOS 开发的终止,社区推出了 AlmaLinux 和 Rocky Linux
- 2023 年:RHEL 源代码仅对客户和合作伙伴开放
CentOS 的历史出人意料地悠久,可以追溯到 2004 年的 2.0 版本。当时,有多个与 RHEL 兼容的发行版,它不像今天这样稳固。特别是 Scientific Linux 使用了许多年,直到 2020 年才结束。Oracle Linux 则于 2006 年发布。
2014 年,Red Hat 收购了此前一直作为独立项目的 CentOS。这有其利弊,但我记得当时有许多欢迎的声音,尤其是因为 CentOS 的发布当时有些延迟。
2019 年,IBM 收购了 Red Hat。正如大家所知,从这时起 CentOS 将发生重大转变。
CentOS 的终结与向 CentOS Stream 的过渡
重大变化的起点是 2020 年宣布 CentOS 项目结束。正如在“第 8 部分:从 CentOS 切换到 Oracle Linux”中提到的,CentOS 项目已结束并被 CentOS Stream 取代(CentOS 7 的支持将于 2024 年 6 月 30 日结束,CentOS 8 已结束)。
它引起如此轰动的原因是 CentOS Stream 被定位为 RHEL 的上游。
迄今为止,CentOS 作为免费的 RHEL 兼容发行版颇受欢迎。然而,随着 CentOS Stream 的到来,它不再能被称为 RHEL 兼容发行版。此外,CentOS Stream 使用滚动发布方法。因此,它始终需要保持最新状态,难以在生产环境中使用。
这就是所谓的“CentOS 冲击”。
Red Hat 的声明
Red Hat 针对源代码披露发布了以下两篇博客:
- 2023/06/21 推动 CentOS Stream 的进一步发展
- 2023/06/26 Red Hat 对开源的承诺:对 git.centos.org 变化的回应
首先,我们将介绍“推动 CentOS Stream 的进一步发展”的重要部分。由于各种新闻文章对此有详细解释,我们在这里缩短了内容,以清晰度优先于翻译的准确性。
随着 CentOS Stream 社区的增长和企业软件世界应对新的动态,我们希望更加专注于将 CentOS Stream 作为企业 Linux 创新的支柱。我们将继续投资并加大对 CentOS Stream 的承诺。
随着 CentOS Stream 社区的增长和企业软件接受新的动态,我们将继续投资并加强对 CentOS Stream 的努力。
Red Hat 表示了对 CentOS Stream 的承诺,在前一段中,它提到一些人欢迎上游版本的快速发布。
CentOS Stream 已成为一个充满活力且前瞻性的选择。有些人可能会欢迎它。然而,重要的是要记住,也存在对其下游需求,完全兼容 RHEL。特别是在企业使用中,稳定性往往比变化和前瞻性更重要。
CentOS Stream 现在将成为与 RHEL 相关的公共源代码发布的唯一存储库。对于 Red Hat 的客户和合作伙伴,源代码将通过 Red Hat 客户门户继续可用。
今后,CentOS Stream 将是与 RHEL 相关的公共源代码发布的唯一存储库,Red Hat 的客户和合作伙伴将继续通过 Red Hat 客户门户访问源代码。
原文中这一部分也是粗体。它的表达方式有些迂回,但简单来说,就是“CentOS Stream 源代码将公开,但 RHEL 源代码不会公开”。
接下来是“Red Hat 对开源的承诺:对 git.centos.org 变化的回应”。
这是文章前半部分的摘要。原文很长,因此省略了。
Red Hat 采用开源开发模式,新功能的开发、错误修复、回溯补丁以及各种测试会产生大量成本。此外,始终管理 3 到 4 个主要版本并将补丁回溯到 5 到 10 年前的代码是一项艰巨的任务。此外,还需要反映 Fedora 和 Linux 内核项目等上游项目。
我觉得我们最近关于下游源代码的决定引发的许多愤怒,来自那些不想为投入 RHEL 的时间、努力和资源付费的人,或者那些想将其重新打包以谋取自己利润的人。对 RHEL 代码的这种需求是不诚实的。
我对那些只是重建 RHEL 源代码却不对其做出任何贡献的 RHEL 兼容发行版的不诚实感到愤怒。
这里有对“搭便车”的谴责。
开源软件的发展有多种原因。其发展的最大原因可能是对用户的益处,例如可以免费或低成本使用,并且由于源代码公开,不存在供应商锁定。然而,对开发者也有益处。随着更多用户报告错误,质量提高;随着开发成员数量增加,开发进展加快;随着文档和技术信息以多种语言提供,用户数量增加。
近年来,在 Amazon Web Services 等大型云端上,“搭便车”已成为一个问题。Redis、Elasticsearch、MongoDB 等服务针对大型云端的“搭便车”改变了许可协议。
我们还提供免费的 Red Hat 开发者订阅和用于开源基础设施的 Red Hat Enterprise Linux (RHEL)。开发者订阅为开发者提供免费的 RHEL,并允许最多 16 个系统免费使用。这可供个人用于自己的工作,也可供 RHEL 客户用于其员工的工作。
我们免费提供 Red Hat 开发者订阅和用于开源基础设施的 Red Hat Enterprise Linux(开源开发社区的服务)。
尽管使用条款相当有限,但 RHEL 确实为一些用户提供了免费计划。
为什么会受到如此强烈的反对?
这场骚动的原因是“作为 RHEL 兼容的免费 CentOS 将不复存在”和“除 CentOS Stream 外的 RHEL 相关源代码将不公开”。让我们深入探讨一下。我们将解释如何创建 RHEL 兼容发行版以及 GPL。
如何创建 RHEL 兼容发行版
下图显示了如何创建 RHEL 兼容发行版。RHEL 兼容发行版是基于 RHEL 或 CentOS 的源代码 (SRPM) 开发的。许多发行版基于 CentOS,因为它没有版权限制且易于修改。
问题是未来如何创建它。RHEL 的源代码仅限于客户和合作伙伴等有限用户。只有 CentOS Stream 成为对所有人开放的源代码存储库。然而,CentOS Stream 是 RHEL 的上游。重建 CentOS Stream 源代码不会使其与 RHEL 兼容。
GPL 和 RED HAT 企业协议
Linux 内核是根据 GPL v2 许可的程序。有些人可能认为 Linux 是 GPL,不公开源代码很奇怪。这里简要解释一下 GPL 和 RED HAT 企业协议,这对理解 RHEL 许可很重要。
GPL 是一个非常强大的许可,具有以下特点:GPL 条款已被志愿者翻译成日文,但有些部分难以理解且存在不同解释,因此请大致理解如下。
- 允许商业使用
- 作者不承担任何责任
- 包含版权声明且无保修。
- 分发时必须公开源代码
- 如果您创建的软件全部或部分使用了 GPL 许可的程序,您也必须在 GPL 下分发它。
需要注意的重要部分是“分发时有义务公开源代码”。对此的一般解释是“拥有目标代码(二进制代码)的任何人都有权获取源代码”。然而,也可以说是“没有目标代码的人没有权利获取源代码”。
举个具体例子,假设一家公司在公司内部开发了一个使用修改后的 GPL 软件的程序。尽管这个软件是 GPL 的,但它不对公众开放,因此无需向公众发布源代码,包括修改部分。
尽管 GPL 在源代码披露方面具有很强的特性,但它具有上述特点。因此,Red Hat 通过与客户签订Red Hat 企业协议对其客户施加一定限制。虽然我们不会深入探讨 Red Hat 企业协议的内容,但它包含许多限制性条款。
供应商和项目的反应
针对 Red Hat 的声明,开发 RHEL 兼容发行版的供应商和项目发布了各种声明。以下是其中一些。
AlmaLinux
AlmaLinux 是由 CloudLinux 公司发起的项目,该公司在 Linux 主机操作系统方面有丰富经验。这是 CentOS 项目后的第一个发行版。接连发布了三篇博客文章。
概要如下:
- RHEL 兼容的源 RPM 更难获取,但安全更新可以更快获得。
- 保持下游 RHEL 立场,但放弃与 RHEL 的 1:1 兼容性,目标是二进制兼容性
- 为整个企业 Linux 生态系统做出贡献,包括开源社区和 Fedora 及 CentOS Stream 等上游平台。
第二篇博客以 OpenSSL 为例解释了如何跟上安全更新。在日本开发 RHEL 兼容发行版的 Cybertrust (MIRACLE LINUX) 宣布与 AlmaLinux 的主要赞助商 CloudLinux 合作。
Rocky Linux
Rocky Linux 是由 CentOS 项目创始人 Gregory Kurtzer 创立的项目。由 Gregory Kurtzer 创立的公司 CiQ 提供支持。该项目也发布了三篇博客。
概要如下:
- 100% 与 RHEL 兼容,甚至包括错误级别
- 履行我们提供稳定、持久的 RHEL 兼容发行版的使命
- 为整个企业 Linux 生态系统做出贡献,包括开源社区和 Fedora 及 CentOS Stream 等上游平台。
- 尽管 Red Hat 的服务条款和最终用户许可协议限制了 GPL 授予的权利,该网站提供了合法获取源代码的方法(使用 Red Hat Universal Base Image 容器镜像和在公共云上使用按需付费实例)。
- 与 Oracle 和 SUSE 一起推出了OpenELA,一个促进企业 Linux 的项目。
Oracle
Oracle Linux 的开发者 Oracle 发布了以下新闻:
与 AlmaLinux 和 Rocky Linux 相比,部分内容有些讽刺,但要点如下:
- 25 年来一直参与 Linux 社区,目标是为所有人打造最好的免费服务器操作系统。
- Oracle 于 2006 年发布了 Oracle Linux,选择与 RHEL 兼容以避免分裂 Linux 社区。
- 我们遵守 GPL 并公开了我们的二进制文件和源代码。与 IBM (Red Hat) 不同,我们不通过订阅合同干扰用户权利。
- 这次不公开源代码的意图是否旨在消灭竞争对手?
- 在可能的情况下继续保持与 RHEL 的兼容性
- Oracle 将继续为 Linux 社区做出贡献,并将发布二进制文件和源代码。欢迎下游发行版。
SUSE
最后是 SUSE。虽然它是基于 RPM 的发行版,但与 RHEL 不兼容,但它宣布将进入 RHEL 兼容发行版市场。
结论
Red Hat 无疑是企业 Linux 市场的领导者。此外,该公司对开源社区的贡献,不仅限于 Linux,是无法估量的。因此,这次的声明令人惊讶。
虽然距离 Red Hat 的声明仅过去了三个月,但其他公司的反应很快。所有主要的 RHEL 兼容发行版供应商不仅宣布了应对措施,甚至在欧洲市场占有率很高的 SUSE 也宣布参与。因此,RHEL 兼容发行版不太可能消失,或安全补丁会显著延迟。
这个案例让我想起了 2003 年至 2010 年持续的“SCO Linux 诉讼”。从 SCO(Linux 版权所有者)起诉 IBM 开始,它继续起诉 Novell 和 Red Hat,甚至暗示要起诉普通 Linux 用户。除了在全球范围内受到强烈批评外,SCO 未赢得任何案件,最终支付了巨额法律费用。
这次没有 SCO 的专利流氓般的恶意。然而,在开源世界中反对者众多的事情不太可能成功。然而,作为上游的 CentOS Stream 也有需求,因此可能会尝试与 RHEL 兼容的下游阵营共存。