CentOS 7 在下个月就要结束更新了,借此机会聊聊红帽,CentOS 的历史,以及这两年都发生了些啥。

红帽以及旗下的发行版

Red Hat Enterprise Linux

1994 年 10 月,在 IBM 工作的 Marc Ewing 拼凑了自己的 Linux 发行版。
在同年,看到好苗子的 ACC 集团,买下了 Marc Ewing 的 Linux,并合并了销售和软件的项目,Red Hat Enterprise Linux 由此而生。

CentOS

CentOS 全称为 Community Enterprise Operating System,是 Gregory Kurtzer 在 2002 年创建的一个以社区为主的开源 Linux 系统。

CentOS 是 Red Hat 的一个下游翻版。有点像 Debian 和 Ubuntu 之间的关系,当然 Ubuntu 有更新的软件。RHEL 和 CentOS 是画等号的,这两者之间可能就是商标的不同,所有 RHEL 的更新都会流入到CentOS,在上游水这么好的情况下,CentOS 的稳定性受到的很多爱好者和小公司的欢迎。这就是为什么在 2010 年 CentOS 成了最受欢迎的服务器发行版。

2014 年,红帽决定赞助 CentOS,条件是 CentOS 商标以及所有权转让给红帽。这对于一个完全由社区提供赞助的 CentOS 来说确实是好事,在之后的期间确实没有经济问题。

Fedora

咱们再聊聊 Fedora。Fedora 一开始是红帽的项目,定标桌面系统,为 RHEL 的上游源。
这三者的关系可以解释为,Fedora 拥有最新的软件以及更新,同时作为最上游的测试源。
RHEL 作为下游,接受来自 Fedora 测试过的软件,提供服务器级别的稳定性。而 CentOS 则复制和修改 RHEL 的源代码。

费用

作为服务器发行版,红帽的收费标准基本和 Ubuntu 服务器是差不多的,个人账号不收取任何费用,但如果用在企业上就会进行服务收费。
CentOS 作为社区发行版,并不会进行收费,这就是为什么会受到的很多爱好者和小公司的欢迎。

那最近又发生了些什么

CentOS 的死亡和 Stream 的诞生

2018 年,IBM 以 340 亿美元收购红帽,从此红帽以独立子公司的形式在 IBM 旗下。
在 2020 年底,拥有所有权的红帽单方面终止了 CentOS 开发,并要求在 2021 年底全面投入 CentOS Stream 的开发。

当然,为了盈利的红帽把 CentOS Stream 变成了中游,作为 Fedora 的下游,RHEL 的上游。与此同时 CentOS Stream 变得不稳定起来。

红帽的意图大家肯定也能看得出来,在一个以企业服务为收费标准的公司,CentOS 不仅免费提供 RHEL 般的稳定性,而且又耗时间又不赚钱。为了利润,这项举动是为了推动个大公司购买服务,防止白嫖。大家的不满肯定不用我多说,个人用户可能还能解决,大不了重装系统,换个发行版。而资金不多的小公司那边只有两个选择,把公司所有服务器换成不稳定的 CentOS Stream, 要么消费大量经费,开始给红帽打钱。

Alma 与 Rocky 的反抗

幸运的是,开源软件还是开源软件。在 2021 年,Alma 和 Rocky 站了出来,承诺提供与 RHEL 的 1:1复制。

AlmaLinux 是由 CloudLinux 宣布建立,并希望 AlmaLinx 成为 CentOS 的精神继承者。2021 年 3 月 30 日,AlmaLinux OS 基金会从 CloudLinux 接手 Alma 的开发和管理,成为完全以社区而中心的发行版,而 CloudLinux 承诺每年为该项目提供 100 万美元的资金。

而 Rocky 是由 CentOS 最初的创始人之一 Gregory Kurtzer 创建与管理,目标也是 1:1 代替 RHEL。该项目的名称是为了向 CentOS 早期的联合创始人 Rocky McGaugh 致敬。
除了 1:1 的复制,Alma 和 Rocky 还提供了相当易用的 RHEL 迁移脚本。以这种形式,CentOS的灵魂又陪了我们两年。

RedHat 的付费墙与 GPLv2

在去年6月,红帽决定停止向公众提供 RHEL 的源代码。红帽的客户仍可获得源代码,但条件是禁止重新分发源代码。

RHEL 使用的不是 GPLv2 开源许可吗?

红帽在这之中找到了几个灰色缺口。
首先聊聊开放源代码这件事,GPLv2 确实有提到如果向用户提供可执行文件,就必须提供源代码。但这并不意味着你必须向全世界开放源代码,在这种情况下,红帽这就有理由仅向付费用户提供源代码。

同时的,GPLv2 许可并没有提到不能在 GPLv2 之上添加用户许可。红帽就在此机会在用户注册时添加了一个可以为所欲为的用户许可。
摘自 RHEL EULA

(g) Unauthorized Use of Subscription Services. Any unauthorized use of the Subscription Services is a material breach of the Agreement. Unauthorized use of the Subscription Services includes:… (d) using Subscription Services in connection with any redistribution of software…
(g) 未经授权使用订购服务。任何未经授权使用订购服务的行为都是严重违反本协议的行为。未经授权使用订购服务包括:…… (d) 将订购服务用于任何软件的再分发……

翻译自 DeepL

这样的的用户许可和 GPLv2 可以说是自相矛盾。
摘自 GPLv2

Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients exercise of the rights granted herein.
每当您重新分发本程序(或基于本程序的任何作品)时,接受者将自动从原始许可人处获得许可,在遵守这些条款和条件的前提下复制、分发或修改本程序。您不得对接受者行使此处授予的权利施加任何进一步的限制。

翻译自 DeepL

掉进钱眼儿里的 Red Hat 甚至公开说明,如果需要源代码请参考 CentOS Stream。
没有上游的源代码,下游也就自然没法更新。不仅是 Alma 和 Rocky,连 Oracle 与 SUSE 也被牵扯了进来。

红帽的做法是否违反许可仍在讨论中,现阶段想讨个说法是不太现实的。

Alma Rocky 该何去何从

2023 年 8 月,CIQ(Rocky 背后的公司),Oracle 和 SUSE 联合起来创建了 OpenELA,除了抗议以外,也是为了实现几个公司的合作,确保发行版与 RHEL 的 1:1 契合。其主要任务是从 CentOS Stream 的软件里进行挑选和修复来实现目标。

Alma 则选择变成 RHEL 的分支,并不以 1:1 为目标。而对于 OpenELA 的项目他们是 100% 支持。

对于爱好者

Jeff Geerling: 几年前我会说 CentOS 或者 Debian,现在来说答案变简单了。

参考文献

https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux
https://en.wikipedia.org/wiki/CentOS
https://en.wikipedia.org/wiki/AlmaLinux
https://en.wikipedia.org/wiki/Rocky_Linux
https://opencoreventures.com/blog/2023-08-redhat-gets-around-gplv2-license-intention-with-contract-law/
https://www.jeffgeerling.com/blog/2023/gplv2-red-hat-and-you
https://www.redhat.com/licenses/Appendix_1_Global_English_20230309.pdf#page=4
https://opensource.org/license/gpl-2-0/