返回

2025/03/25

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 的上游(upstream)。

迄今為止,CentOS 作為免費的 RHEL 相容發行版頗受歡迎。然而,隨著 CentOS Stream 的到來,它不再能被稱為 RHEL 相容發行版。此外,CentOS Stream 使用滾動發布(rolling release)方式。因此,它始終需要保持最新,這使得在生產環境中使用變得困難。

這就是所謂的「CentOS 衝擊」。

Red Hat 的公告

Red Hat 針對原始碼公開發布了以下兩篇部落格文章:

首先,我們將介紹「進一步推動 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 相比,部分內容有些諷刺,但要點如下:

  • 他參與 Linux 社群 25 年,目標是使其成為對所有人來說最好的免費伺服器作業系統。
  • 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 相容的下游陣營共存。