关于linux:开源不等于免费Red-Hat-调整-CentOS-项目带来的思考

41次阅读

共计 7031 个字符,预计需要花费 18 分钟才能阅读完成。

大家好,我是张晋涛。

最近对于 Red Hat,CentOS 以及开源等方面有很多探讨,每个人都有各自的观点和认识,其实在 CentOS Linux 发表后续进行公布,推出 CentOS stream 时我就想写相干内容来着,起初只是和共事们进行了一些外部交换并未成文。

先介绍下背景,近 10 年内我的桌面发行版次要应用 Fedora,服务器跑的最多的是 CentOS。

早年我也保护着一个近 2 万人的 CentOS 社群(起初太忙就辞任了),当初我的公众号『MoeLove』的订阅者中也有一部分是因而过去的。

我也给 CentOS 报过 Bug,不过目前 CentOS Bug Tracker 这个网站曾经拜访不到了,Bug 报告曾经转向到 Red Hat 的 Bugzilla 了。

翻了下邮件也有晚期和他人交换的一些记录。

这些背景尽管与本文没有间接关系,但可能这是我最初一次写文章谈 CentOS 相干的内容了吧,作为我曾在这个畛域中留下过的一些痕迹,也曾为 CentOS 的倒退做出过一些致力。

此外,本文所有观点仅代表集体认识,亦不形成任何 操作系统/ 发行版抉择的倡议。

2023 年 6 月,Red Hat 发表了一个令许多人诧异的决定:它将不再向 git.centos.org 同步它的源 RPM(SRPM)包,也就是 Red Hat Enterprise Linux(RHEL)的源代码。这意味着,那些依赖于 git.centos.org 来构建和散发本人的 Linux 发行版的我的项目,如 Rocky Linux、AlmaLinux 等,将无奈轻松地获取和重建 RHEL 的二进制包。Red Hat 还示意,它将持续在 git.centos.org 上公布 RHEL 的源代码,但这只与 CentOS 我的项目构建和公布的二进制包无关。Red Hat 解释说,这一决定是基于它对开源的承诺,以及它心愿将 CentOS Stream 作为 RHEL 的上游开发平台。

相干通告:https://www.redhat.com/en/blog/furthering-evolution-centos-st…

那么,Red Hat 为什么要做出这样的决定呢?它对开源社区有什么影响呢?本文将从以下几个方面进行剖析:

  • CentOS 的起源和倒退
  • Red Hat 为什么它不想让其他人轻易复制 RHEL
  • CentOS Stream 的作用
  • Rocky Linux 等社区驱动的 RHEL 替代品的劣势和挑战

CentOS 的起源和倒退

CentOS 的全称实际上是 Community Enterprise Operating System 无论了解为『社区版的企业操作系统』,还是『企业级社区操作系统』都会发现它实际上比拟奇怪,因为在少数场景下,Community 和 Enterprise 别离是代表着收费 / 免费的两个版本。(但这不是重点)

CentOS 最后是 CAOS Linux 的一个构建,CAOS Linux 是一个由 Gregory Kurtzer 在 2002 年开始的基于 RPM 的 Linux 发行版¹。2006 年,Tao Linux(另一个 RHEL 克隆版)的次要开发者 David Parsley 发表 Tao Linux 服役,并退出到 CentOS 的开发中。

CentOS 的第一个版本于 2004 年 5 月公布,编号为 CentOS 2,是基于 RHEL 2.1AS 版本的。之后,CentOS 继续地追随 RHEL 的版本更新,并逐步成为最受欢迎的 RHEL 克隆版之一。2014 年 1 月,CentOS 发表与 Red Hat 正式单干,但仍放弃独立性,并由一个新的 CentOS 治理委员会负责。

倒退到这个阶段的时候,其实 Red Hat 曾经看到了 CentOS 带来的价值,CentOS 的用户基数很大 ,各种材料 / 文档中都会写到『CentOS 是 Red Hat 系的』, 为 Red Hat 带来了很多的品牌影响力 ,同样的也会 继续的进行 bug 反馈以及对上游进行奉献。

当然,如果认真想来,也会发现 CentOS 是一些想要用到 RHEL 稳定性,然而不想付费的用户的不二抉择

从商业的角度来看,它其实也妨碍了一些 Red Hat 的商业倒退。这与大多数的开源我的项目 / 企业版的状况相似,企业须要的高阶个性会放在商业版中,而开源我的项目中次要是一些外围的根底能力。

与其放任其发展,不如将它纳入到本人的幅员中,还能更加可控一些。过后 CentOS 退出 Red Hat 后,一些核心成员也就入职 Red Hat 了。

此外,这项变动带来的另一个影响就是 CentOS 能够更加不便的通过 git.centos.org 获取到 RHEL 的源码,在构建和同步等方面都将带来便当。

相干布告:

  • https://lists.centos.org/pipermail/centos-announce/2014-Janua…
  • https://www.redhat.com/en/about/press-releases/red-hat-and-ce…

2020 年 12 月,Red Hat 发表将 CentOS Linux 转变为 CentOS Stream,一个位于 Fedora 和 RHEL 之间的滚动更新的发行版,作为 RHEL 的上游开发平台。这意味着 CentOS 将不再是 RHEL 的克隆版,而是 RHEL 的预览版。这一决定引起了很多 CentOS 用户和开发者的不满和拥护,认为 Red Hat 背弃了 CentOS 的初衷和使命。

这件事件从我后面的内容就能够很容易了解用户们为何不满,因为作为 RHEL 的克隆版代表着它的源码是通过 RHEL 验证的,在稳定性方面失去了肯定的保障,但转变为 RHEL 的预览版(上游)后,则变成了 RHEL 的试验场,在稳定性方面的确少了一些保障。

但其实对于 Red Hat 来说,即便是原先的 CentOS Linux,它也并未取得任何认证和保障,所以它的稳定性并不能认为和 RHEL 一样(印象里 Red Hat 的某篇文章中有写,我遗记了)

这之后就是一些上游发行版了,比方 Rocky Linux、AlmaLinux 等,它们的指标都是成为 CentOS 的替代品,成为兼具“收费”和“稳定性”的发行版,它们想要作为 RHEL 的上游进行构建和再公布。

本次的探讨中来自 Rocky Linux、AlmaLinux 等社区的声音也是比拟多的,毕竟好不容易有了个发行版要接管 CentOS 原来的定位,并且可能曾经做了从 CentOS 迁徙的工作,而后 RHEL 忽然发布告说构建的形式可能会变的更难了,那天然是承受不了了。

然而如果你浏览了上述内容,你应该会发现,上游发行版之所以可能简略的通过 git.centos.org 获取到 re-build 所需的源码包等内容,这其实是因为 CentOS 成为了 Red Hat 的一部分,这些便当是 Red Hat 提供的。当初 Red Hat 所做的无非是把这个便捷的通道给勾销掉了,让上游发行版从新构建变的更难了一点。(这在很多年前也不是没有经验过)而且也依然恪守开源协定会提供其源码(须要通过登陆 portal 取得)。

所以,我的认识是 Red Hat 自身并未违反 开源协定,只不过这的确减少了一些人的工作复杂度。

Red Hat 为什么不想让其他人轻易复制 RHEL

Red Hat 是一家以开源软件为外围的商业公司,本文中聊的次要产品是 RHEL,一款面向企业级用户的 Linux 操作系统。RHEL 当初是基于开源我的项目 Fedora 和 CentOS Stream 开发的,它遵循 GPL 等开源协定,也就是说,它必须公开本人的源代码,并容许任何人批改和散发。那么,Red Hat 是如何赚钱的呢?

Red Hat 的商业模式并不是靠发售软件自身,而是靠提供软件的订阅服务,包含技术支持、安全更新、认证、培训等。这些服务对于企业级用户来说是十分有价值的,因为它们能够保障软件的稳定性、安全性和可靠性,以及与其他软件和硬件的兼容性。Red Hat 还通过与各种合作伙伴和客户建设良好的关系,来推广本人的软件和服务。

此外,对于 RHEL 也有着很长的反对工夫,Red Hat 会继续的将上游 & 安全更新 backport 到 RHEL 中,让即便公布很久的版本也能享受到一些新的个性,比方容器时代,大家可能接触最多的 CentOS 7 携带的 3.10 版本的内核就蕴含了很多上游内核中不蕴含的个性了。

然而,Red Hat 的商业模式也面临着一个挑战:因为 RHEL 的源代码是公开的,任何人都能够基于它来构建和散发本人的 Linux 发行版,而不须要领取给 Red Hat 任何费用。这些发行版被称为 RHEL 的克隆或重构版(rebuilds),它们通常只是将 Red Hat 的商标和徽标去掉,并做一些轻微的批改。这些发行版能够吸引那些不违心或不能累赘 Red Hat 订阅服务费用的用户,从而减弱了 Red Hat 的市场份额和支出。(这就是我下面提到的包含 CentOS 在内的上游发行版了)不过也不可否认,通过这些上游发行版实际上倒退了一个比拟大的生态。

Red Hat 当然不心愿这种状况产生,但它也不能违反 GPL 等开源协定来阻止其他人应用 RHEL 的源代码。因而,Red Hat 采取了一些措施来爱护本人的利益,比方:像后面提到的,让 CentOS 团队退出 Red Hat;比方本次的,不再间接推送到 git.centos.org 等。

对于社区的各种不满和拥护的声音 Red Hat 为此做出了一些回应和解释,比方:

  • Red Hat 保持恪守 GPL 等开源协定,它没有阻止或禁止任何人应用 RHEL 的源代码,只是扭转了公布的形式和格局。
  • Red Hat 为 RHEL 投入了大量的工夫、精力和资源,它有权力爱护本人的商业模式和支出起源,而不是让其他人轻易地复制和利用。
  • Red Hat 通过 CentOS Stream 等我的项目,为开源社区提供了一个与 RHEL 严密单干的机会,让社区成员能够参加到 RHEL 的开发和翻新中。

相干布告:https://www.redhat.com/en/blog/red-hats-commitment-open-sourc…

CentOS Stream 的作用

CentOS Stream 是一个新的 Linux 发行版,它是由 CentOS 我的项目团队与 Red Hat 共同开发的。CentOS Stream 的指标是成为 RHEL 的上游开发平台,也就是说,它是 RHEL 的将来版本的预览版。CentOS Stream 与 RHEL 的关系能够用下图来示意:

从图中能够看出,CentOS Stream 位于 Fedora 和 RHEL 之间,它既接管 Fedora 中最新的软件包和性能,又向 RHEL 提供通过测试和稳固的软件包和性能。CentOS Stream 与传统的 CentOS Linux 不同,后者是基于曾经公布的 RHEL 版本来构建的。CentOS Stream 是一个滚动更新(rolling release)的发行版,也就是说,它不会有固定的版本号或公布周期,而是会继续地接管更新和改良。

那么,CentOS Stream 有什么益处呢?它如何帮忙 Red Hat 和 RHEL 的用户呢?

对于 Red Hat 来说,CentOS Stream 能够帮忙它:

  • 放慢 RHEL 的开发速度和品质。通过 CentOS Stream,Red Hat 能够更早地将 Fedora 中的新性能引入到 RHEL 中,并在社区中进行测试和反馈。这样能够进步 RHEL 的稳定性、安全性和兼容性,并缩小呈现 bug 和破绽的可能性。
  • 加强与社区的单干和沟通。通过 CentOS Stream,Red Hat 能够更好地与社区分享本人的开发计划和路线图,并邀请社区成员参加到 RHEL 的翻新中。这样能够减少社区对 Red Hat 和 RHEL 的信赖和反对,并吸引更多的贡献者和用户。
  • 缩小与克隆版的竞争和抵触。通过 CentOS Stream,Red Hat 能够让 RHEL 的克隆版无奈间接复制 RHEL 的二进制包,而必须从 CentOS Stream 中获取源代码并自行构建。这样能够减少 RHEL 的克隆版的难度和老本,并升高它们的吸引力和劣势。

对于 RHEL 的用户来说,CentOS Stream 能够帮忙他们:

  • 预览和体验 RHEL 的将来版本。通过 CentOS Stream,RHEL 的用户能够更早地理解和尝试 RHEL 的新性能和改良,并依据本人的需要和场景进行测试和评估。这样能够帮忙他们更好地布局和筹备 RHEL 的降级和迁徙。
  • 反馈和影响 RHEL 的开发方向。通过 CentOS Stream,RHEL 的用户能够更不便地向 Red Hat 提供本人的意见和倡议,并参加到 RHEL 的开发和翻新中。这样能够让他们更有话语权和参与感,并进步 RHEL 的满意度和忠诚度。
  • 享受更多的抉择和灵活性。通过 CentOS Stream,RHEL 的用户能够依据本人的爱好和需要,抉择应用稳固的 RHEL 版本,或者应用更新的 CentOS Stream 版本,或者同时应用两者。这样能够让他们更自在地管制本人的操作系统,并适应不同的环境和利用。

对于软硬件供应商而言,也有肯定的益处,因为 CentOS Stream 应用 Red Hat Bugzilla 最终 bug 及反馈,这些厂商们能够更早,更快的测试其兼容性,并间接将相干问题反馈到 CentOS Stream 中。对应的修复,有可能间接会在下一个 RHEL 的 bugfix 版本中呈现。

至于对于个别用户而言,是否有益处呢?我目前尚不确定。

就我集体而言,我会保持应用 Fedora,因为我须要更新的版本和性能来进行测试,对于其中可能蕴含的实验性个性是在我的预期范畴内的,呈现问题也能够进行修改。但我尚未看到让我去应用 CentOS Stream 的理由。

Rocky Linux 等社区驱动的 RHEL 替代品的劣势和挑战

Rocky Linux 是一个由社区驱动的 Linux 发行版,它的指标是成为 RHEL 的兼容替代品,也就是说,它是基于 RHEL 的源代码来构建的,与 RHEL 具备雷同或相近的性能和性能。Rocky Linux 是由 CentOS 我的项目的创始人之一 Greg Kurtzer 发动的,它是对 Red Hat 调整 CentOS 我的项目的一种回应和抗议。除了 Rocky Linux 之外,还有其余一些相似的我的项目,如 AlmaLinux,它们都试图填补 Red Hat 和 CentOS 我的项目留下的空白。

那么,Rocky Linux 和 AlmaLinux 等社区驱动的 RHEL 替代品有什么劣势呢?它们又面临着什么挑战呢?

对于开源社区来说,Rocky Linux 等社区驱动的 RHEL 替代品能够带来以下劣势:

  • 保护开源软件的自在和多样性。通过 Rocky Linux,AlmaLinux 等社区驱动的 RHEL 替代品,开源社区能够放弃对 RHEL 源代码的拜访和应用权力,并依据本人的欲望和指标来构建和散发本人的 Linux 发行版。这样能够避免 Red Hat 对 RHEL 源代码进行垄断或限度,并促成开源软件的倒退和翻新。
  • 提供更多的抉择和可能性。通过 Rocky Linux,AlmaLinux 等社区驱动的 RHEL 替代品,开源社区能够提供更多的 Linux 发行版给不同类型的用户,比方那些不违心或不能领取 Red Hat 订阅服务费用的用户,或者那些对 Red Hat 和 CentOS Stream 不称心或不信赖的用户。这样能够满足不同用户的需要和冀望,并减少开源软件的遍及和推广。

然而,Rocky Linux 和 AlmaLinux 等社区驱动的 RHEL 替代品也面临着以下挑战:

  • 不足足够的资源和反对。与 Red Hat 不同,Rocky Linux 等社区驱动的 RHEL 替代品没有稳固的支出起源和商业模式,它们次要依附社区的捐献和志愿者的奉献来维持运作。这意味着,它们可能难以获得足够的资金、人力和设施来构建、测试和公布本人的 Linux 发行版,并提供相应的技术支持、安全更新、认证等服务。这可能影响它们的品质和可靠性,并让用户感到不安和不满。
  • 难以跟上 RHEL 的倒退和变动。因为 Red Hat 对 git.centos.org 的扭转,Rocky Linux 等社区驱动的 RHEL 替代品无奈间接获取和重构 RHEL 的二进制包,而必须从 CentOS Stream 中获取源代码并自行构建。这意味着,它们可能难以及时跟进 RHEL 的最新版本和补丁,并放弃与 RHEL 的兼容性和一致性。这可能影响它们的安全性和稳定性,并让用户感到困惑和不便。
  • 当然,目前无论是 Rocky Linux 还是 AlmaLinux 等都在摸索如何以更低成本 & 合规的形式持续进行 re-build。其中一种可能是应用 Red Hat UBI , 或者启动 RHEL 云实例等。目前尚无定论,但必定比之前 CentOS Linux 存在的时候麻烦了一些。

总结

Red Hat 对 git.centos.org 的扭转,是一个具备重大意义的事件,它对开源社区产生了深远的影响。一方面,Red Hat 通过这一决策,爱护了本人的商业利益和市场位置,并推动了 RHEL 的开发和翻新。另一方面,Red Hat 也引起了开源社区的不满和拥护,并激发了 Rocky Linux 和 AlmaLinux 等社区驱动的 RHEL 替代品的诞生和倒退。

在这个事件中,咱们能够看到开源软件的两面性:开源不等于收费,也不等于无限度。开源软件是一种基于合作和共享的软件开发模式,它既有利于软件的品质和翻新,也有利于软件的遍及和推广。然而,开源软件也须要遵循肯定的规定和协定,比方 GPL 等开源协定,它们既爱护了软件作者的权力和利益,也爱护了软件用户的自在和权力。

因而,咱们应该正确地了解和尊重开源软件的价值和意义,既要反对和激励开源软件的倒退和翻新,也要恪守和保护开源软件的规定和协定。只有这样,咱们能力真正享受到开源软件带来的益处和乐趣。

在以后的整体模式下,这类事件可能也还会产生,合规是其中的底线,至于其余的局部,见仁见智吧。

正文完
 0