返回

2025/03/19

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 Enterprise Contract所禁止的。

与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

此外,还有接近RHEL的Amazon Linux。Amazon Linux 2接近RHEL 7,但由于它源自Fedora,与上述RHEL兼容发行版略有不同。此外,Amazon Linux 2022将每两年发布一次并支持五年,因此似乎与RHEL的方向有所不同。

什么是Oracle Linux?

现在我们进入正题。Oracle Linux是由Oracle公司开发的一种与RHEL兼容的发行版。主要特点如下所述。我们将从这些特点中解释重要项目。

  • 与RHEL 100%应用程序二进制兼容
  • 在Exadata等企业领域多年的使用
  • 即使在生产环境中也免费
  • 与RHEL相当的10年支持期,付费还可获得延长支持
  • 相比RED HAT Enterprise Contract更易用的付费支持合同
  • 除了与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时

* 在第二部分继续。