返回

2025/03/25

1. 你使用 Oracle Linux 嗎?(第一部分)

你知道 Oracle Linux 嗎?Oracle Linux 是由 Oracle 公司開發的與 Red Hat Enterprise Linux (RHEL) 相容的發行版。第一個版本於 2006 年發布,現在被用於 Exadata 等工程系統,以及 Oracle Cloud Infrastructure 和 Oracle Linux KVM。

過去,由於這是由企業軟體公司 Oracle 開發的,使用者數量受到限制。然而,自從 2020 年 12 月 12 日宣布 CentOS 開發將終止以來,情況發生了變化。
(CentOS 計畫的官方公告「CentOS 計畫轉向 CentOS Stream」)。其他將取代 CentOS 的 RHEL 相容發行版引起了廣泛關注。其中之一就是 Oracle Linux。

在本文中,我們將解釋 Oracle Linux 的功能以及它與 RHEL 和 CentOS 的區別。

什麼是 Linux 發行版?

在進入正題之前,讓我們先談談 Linux 發行版。Linux 最初僅指內核。
然而,一般使用者無法僅憑 Linux 內核使用 Linux。因此,除了必要的庫和工具(如 glibc、coreutils、設備驅動程式和 shell)外,還結合了安裝程式、編譯器和各個軟體,製作成對每個人都易於使用的「Linux 發行版」。

這裡重要的一點不僅是將這些元素組合起來,還要預先驗證每個軟體是否能正確運行。Linux 發行版包含開源軟體。因此,開發者各不相同,開發環境自然也不同。原始碼可能無法編譯,或者編譯後無法正常工作。Linux 發行版的開發者已經修正這些問題,使其正常運行。

另一個重要的事情是套件管理系統。在 Linux 的早期,每次使用的軟體都要從原始碼構建。在這種情況下,不僅安裝過程繁瑣,而且更新或刪除也很困難。
這促成了 RPM 和 deb 等套件的誕生。

請參閱下表。主要發行版包括使用 RPM 的「Red Hat 系發行版」和使用 deb 的「Debian 系發行版」。在日本商業中通常使用這兩者之一。還有在歐洲常用的 SUSE Linux。

套件格式 發行版 套件管理工具
RPM Red Hat 系(RHEL、Fedora、CentOS、CentOS Stream、Oracle Linux、Amazon Linux) RPM、yum、dnf
deb Debian 系(Debian、Ubuntu) apt、dpkg

創建 RHEL 相容發行版

現在,讓我們回顧 Linux 發行版並解釋 RHEL 相容發行版。順便說一句,由於 Linux 發行版包含開源軟體,你認為可以直接複製它嗎?

至少對於 RHEL,這是不可能的。一個原因是從法律角度看,例如標誌等的商標權。另一個原因是從合同角度看。我們不會詳細解釋原因,但這是被 RED HAT 企業合同所禁止的。

RHEL 相容發行版是與 RHEL 和應用程式二進位相容的 Linux 發行版(應用程式二進位相容性將在後面討論)。基本上以重建為主要重點,通常按以下順序創建。

如何創建 RHEL 相容發行版

上圖中有各種「發行版特定更改」。CentOS 的更改數量被限制在最低限度,例如從 /etc/redhat-release 更改為 /etc/centos-release。相比之下,Oracle Linux 在保持相容性的同時增加了重大更改。

CentOS 在 RHEL 相容發行版中頗有名氣。然而,宣布 CentOS 將終止並轉變為 CentOS Stream,這是 Fedora 和 RHEL 之間的中間位置。

目前,有影響力的 RHEL 相容發行版包括以下幾個。由於 AlmaLinux 和 Rocky Linux 都是在 2021 年發布的,人們對其未來趨勢表現出興趣。

  • Oracle Linux
  • AlmaLinux
  • Rocky Linux
  • MIRACLE LINUX

此外,還有 Amazon Linux,這是一個接近 RHEL 的發行版。Amazon Linux 2 接近 RHEL 7,但由於它源自 Fedora,與上述 RHEL 相容發行版略有不同。此外,Amazon Linux 2022 將每兩年發布一次並支持五年,因此似乎與 RHEL 的方向有所不同。

什麼是 Oracle Linux?

我們現在進入正題。Oracle Linux 是由 Oracle 公司開發的 RHEL 相容發行版。主要功能如下所述。我們將從這些功能中解釋重要項目。

  • 與 RHEL 100% 應用程式二進位相容
  • 在 Exadata 等企業領域多年的使用經驗
  • 即使在生產環境中也免費
  • 與 RHEL 等同的 10 年支持期限。另有付費的擴展支持
  • 相比 RED HAT 企業合同更易於使用的付費支持合同
  • 除了 RHEL 相容內核外,還提供基於較新內核的 Unbreakable Enterprise Kernel
  • Ksplice 無需重啟的修補適應性

與 RHEL 100% 應用程式二進位相容

Oracle 宣布 Oracle Linux 與 RHEL 和應用程式二進位相容。應用程式二進位相容意味著在一個環境中創建的典型程式二進位檔案可以在其他環境中直接運行。應用程式二進位相容有時被稱為 ABI 相容(Application Binary Interface Compatible)。

這裡重要的是「典型程式」。一些在作業系統上運行的程式在「內核空間」中運行,例如內核、設備驅動程式或檔案系統,而其他則在「用戶空間」中運行,例如 HTTP 伺服器或資料庫伺服器。

ABI 相容適用於在「用戶空間」中運行的程式。因此,它並不適用於 Linux 發行版中包含的所有程式或為 Linux 提供的程式。

不具應用程式二進位相容的典型程式包括記憶體駐留防毒軟體和硬體供應商提供的設備驅動程式。

提供 Unbreakable Enterprise Kernel

Oracle Linux 中有兩種類型的內核。預設情況下,兩者都會安裝並啟用 UEK。兩者都與 RHEL 和應用程式二進位相容。

  • 僅通過重建 RHEL 內核的 RHEL 相容內核(RHCK:Red Hat Compatible Kernel)
  • 基於更上游內核的 Unbreakable Enterprise Kernel(UEK)

下圖顯示了 RHCK 和 UEK 之間的關係。Oracle Linux 8 RHCK 基於 Linux 主線內核 4.8。
另一方面,UEK 基於 5.4。換句話說,UEK 在更先進的內核基礎上添加了 Oracle 的獨特定制。

RHCK 與 UEK 之間的關係

實際上,如果您查看內核套件名稱,就可以知道基礎內核。

套件名稱
UEK kernel-uek-5.4.17-2136.300.7
RHCK kernel-4.18.0-348

以下網站介紹了 Oracle Linux 版本以及 RHCK 與 UEK 之間的關係。

Oracle Linux 和 Unbreakable Enterprise Kernel (UEK) 版本

當您閱讀上述網頁時,可以看到以下內容:

  • UEK 有發行編號,例如 Release 5 或 Release 6
  • 同一發行編號的 UEK 可以與不同主要版本的 Oracle Linux 一起使用

下表是一個簡要總結。UEK6 可以與 Oracle Linux 7 或 8 一起使用。然而,由於構建環境不同,二進位檔案也不同。

內核類型 RHCK UEK
Oracle Linux 7 kernel-3.10 UEK3〜UEK6
Oracle Linux 8 kernel-4.18 UEK6

應該使用 RHCK 還是 UEK?

您可能想知道應該使用 RHCK 還是 UEK。兩者都具有應用程式二進位相容性,因此您可以使用任一種。然而,在使用 Oracle Database 或 Oracle Linux KVM 時,最好使用針對 Oracle Database 定制的 UEK。

以下情況可以考慮使用 RHCK:

  • 當您使用商業應用程式且供應商僅支持 RHCK
  • 當您使用實體伺服器且供應商提供的設備驅動程式僅適用於 RHCK
  • 當您特別想使用 RHCK

* 在後半部分繼續。