Zurück
2025/04/16
10. Die beiden Oracle Linux Kernel „UEK“ und „RHCK“ verstehen
Oracle Linux hat zwei Kernel: den Red Hat Compatible Kernel (RHCK), der ein mit RHEL kompatibler Kernel ist, und den eigenen Unbreakable Enterprise Kernel (UEK) von Oracle Linux.
Wenn Sie Oracle Linux noch nie verwendet haben, könnten Sie sich Sorgen über den Unbreakable Enterprise Kernel machen. In diesem Artikel erklären wir den Unbreakable Enterprise Kernel sowie seine Kompatibilität und Kriterien für die Entscheidung, wann er verwendet werden sollte.
Red Hat Compatible Kernel und Unbreakable Enterprise Kernel
Zur grundlegenden Einführung geben wir einen Überblick über den Red Hat Compatible Kernel und den Unbreakable Enterprise Kernel.
Was ist der Red Hat Compatible Kernel?
Wie der Name schon sagt, ist der Red Hat Compatible Kernel (RHCK) ein mit RHEL kompatibler Kernel, der einfach eine neu gebaute Version des RHEL-Kernel-Quellcodes ist. Da es sich nur um eine neu gebaute Version handelt, verhält er sich wie RHEL, einschließlich der Fehler, solange die Versionsnummer gleich ist.
Die folgende Tabelle zeigt die RHCK- und glibc-Versionen für jede Hauptversion von Oracle Linux. Um die Kompatibilität innerhalb derselben Hauptversion von Linux zu betonen, ändern sich die Basisversionen wichtiger Komponenten wie Kernel und glibc nicht. Stattdessen wird bei einem Update die Release-Nummer wie unten beschrieben geändert.
Linux-Version | RHCK-Version | glibc-Version |
---|---|---|
Oracle Linux 9 | 5.14.0 | 2.34 |
Oracle Linux 8 | 4.18.0 | 2.28 |
Oracle Linux 7 | 3.10.0 | 2.17 |
Das folgende Diagramm zeigt die RPM-Paketnamen für Kernel und glibc. Wenn ein Update-Paket veröffentlicht wird, bleibt die Basisversion gleich, und die Release wird aktualisiert.
Abbildung 1 Kernel/glibc Version und Release
Was ist der Unbreakable Enterprise Kernel?
Der Unbreakable Enterprise Kernel (UEK) ist ein für Oracle Linux einzigartiger Kernel, der auf einem neueren Kernel als RHCK basiert und mit RHCK kompatibel ist. Das folgende Handbuch bietet eine Referenz für seine Funktionen.
Offizielle Dokumentation: Unbreakable Enterprise Kernel
Der Unbreakable Enterprise Kernel (UEK) ist ein von Oracle entwickelter und durch Oracle Linux-Support unterstützter Linux-Kernel. Sein Fokus liegt auf Leistung, Stabilität und minimalen Backports, indem der Hauptzweig des Quellcodes so nah wie möglich verfolgt wird. UEK ist gut getestet und wird verwendet, um Oracle’s Engineered Systems, Oracle Cloud Infrastructure und große Unternehmenseinsätze für Oracle-Kunden zu betreiben.
Datenbank-Installationsanleitung für Linux
Der Unbreakable Enterprise Kernel ist standardmäßig in Oracle Linux-Kerneln enthalten und aktiviert. Er basiert auf einer aktuellen stabilen Hauptzweig-Entwicklung des Linux-Kernels und enthält Optimierungen, die in Zusammenarbeit mit Oracle-Datenbank-, Oracle-Middleware- und Oracle-Hardware-Engineering-Teams entwickelt wurden, um Stabilität und optimale Leistung für die anspruchsvollsten Unternehmens-Workloads zu gewährleisten.
Die Hauptpunkte sind:
- Der UEK ist ein von Oracle entwickelter und unterstützter Linux-Kernel.
- Standard-Kernel von Oracle Linux
- Basiert auf einer neuen stabilen Version des Hauptzweig-Linux-Kernels
- Entwickelt in Zusammenarbeit mit Exadata- und Oracle-Datenbank-Teams, mit Fokus auf Leistung und Stabilität
- Getestet in groß angelegten Unternehmens-Workload-Umgebungen, einschließlich Exadata und Oracle Cloud Infrastructure
Beziehung zwischen Oracle Linux und Kernel-Version
Die UEK-Versionsnummer ändert sich je nach dem Kernel, auf dem sie basiert, und wird zum Beispiel als UEK6 und UEK7 bezeichnet. Ein wesentlicher Unterschied zu RHCK ist, dass die Hauptversion von Oracle Linux und die UEK-Version nicht festgelegt sind. Die folgende Tabelle zeigt die Entsprechung zwischen UEK und Oracle Linux. Wie aus dieser Tabelle ersichtlich ist, kann Oracle Linux 8 sowohl UEK6 als auch UEK7 verwenden.
UEK-Version | Kernel-Version | Oracle Linux 7 | Oracle Linux 8 | Oracle Linux 9 |
---|---|---|---|---|
UEK7 | 5.15.0 | × | ○ | ○ |
UEK6 | 5.4.17 | ○ | ○ | × |
UEK5 | 4.14.35 | ○ | × | × |
UEK4 | 4.1.12 | ○ | × | × |
Die folgende Tabelle vergleicht die Kernel-Versionen von RHCK und UEK für Oracle Linux. Oracle Linux 9 wurde 2022 veröffentlicht, daher ist der Unterschied zwischen den RHCK- und UEK-Versionen gering. Da Oracle Linux 7 und Oracle Linux 8 jedoch schon seit einiger Zeit veröffentlicht sind, ist der Unterschied zwischen den RHCK- und UEK-Versionen groß.
Linux-Version | RHCK | UEK |
---|---|---|
Oracle Linux 9 | 5.14.0 | 5.15.0 |
Oracle Linux 8 | 4.18.0 | 5.4.17, 5.15.0 |
Oracle Linux 7 | 3.10.0 | 4.1.12, 4.14.35, 5.4.17 |
Linux-Kernel-Versionsbenennungskonvention
Nachdem wir die Linux-Kernel-Versionen behandelt haben, schauen wir uns die Benennungskonvention noch einmal an. Tatsächlich gibt es keine definitive, da sie mehrmals geändert wurde und die Benennungskonventionen zwischen dem ursprünglichen kernel.org und Linux-Distributionen leicht unterschiedlich sind.
Benennungskonventionen bei kernel.org
Zunächst betrachten wir die Benennungskonventionen, die von der offiziellen Linux-Kernel-Website kernel.org verwendet werden. Linux-Kernel werden wie „abc“ benannt und wie folgt bezeichnet. Diese Benennungskonvention ist jedoch nicht absolut.
a: Hauptversionsnummer
b: Nebenversionsnummer
c: Patch-Nummer oder Revisionsnummer
Auch die nächste Version nach 5.19 ist 6.0, aber das liegt nicht daran, dass sich die Funktionen erheblich geändert haben. Es liegt einfach daran, dass es nicht wünschenswert ist, dass die Zahl b zu groß wird, und es ist eine Konvention, a hochzuzählen, wenn b etwa 20 erreicht. Und c sind Patch-Level-Änderungen wie Fehlerbehebungen. Aus diesem Grund ist es jetzt üblich, die Release-Nummer oder Versionsnummer als Kombination von „ab“ oder „abc“ zu bezeichnen.
Im folgenden Diagramm ist die Hauptversion durchgestrichen, weil sie nicht mehr häufig verwendet wird, aber immer noch genutzt wird, wenn man die erste Zahl explizit angeben möchte.
Abbildung 2 Linux-Kernel-Versionsbenennungskonvention
Schauen Sie sich das folgende Diagramm an. Es zeigt die Entwicklungsgeschichte des Linux-Kernels. Die grauen Teile sind die Entwicklungsperiode, und nach einer bestimmten Zeit geht die Entwicklung zur nächsten Version über. Mit anderen Worten, eine bestimmte Linux-Release „abc“ durchläuft einmal alle paar Jahre den Lebenszyklus von „Entwicklung → Support → LTS (Long Time Support)“. Der LTS-Kernel wird einmal im Jahr veröffentlicht und wird etwa fünf Jahre lang unterstützt.
Quelle: https://en.wikipedia.org/wiki/Linux_kernel_version_history
Abbildung 3 Linux-Kernel-Versionsgeschichte 6.x

Abbildung 4 Linux-Kernel-Versionsgeschichte 5.x

Benennungskonventionen von Linux-Distributionen
Die Benennungskonventionen von Linux-Distributionen und kernel.org sind leicht unterschiedlich. Linux-Distributionskernel werden wie „abc-z“ benannt, aber in Wirklichkeit haben die meisten Distributionen „ab0-z“, wobei c eine Null ist. Dies gilt nicht nur für RHEL, sondern auch für Ubuntu und auch für UEK7 und später.
Das folgende Diagramm zeigt, wie Kernel-Versionen in Linux-Distributionen genannt werden. Es gibt derzeit kein einheitliches Verständnis, und es scheint je nach Kontext und Person zu variieren.
Abbildung 5 Linux-Distributionsnamen
Der Begriff Basisversion ist neu für die Plattform. Er gibt die kernel.org-Version an, auf der sie basiert. Jedoch wird die Zahl c auf Null gesetzt, sodass selbst wenn die Basisversion 5.15.0 ist, die Kernel-Version, auf der sie basiert, nicht unbedingt 5.15.0 ist. Zum Beispiel ist UEK7 eine Version 5.15.0, basiert aber auf 5.15.6.
$ rpm -q --changelog kernel-uek-5.15.0-105.125.6.2.2.el9uek | tail -n 2
- Linux 5.15.6 (Greg Kroah-Hartman)
Beziehung zwischen Hauptzweig, Langzeit, Stabil und rc
Schauen wir uns die Seite des offiziellen Linux-Kernels an, Die Linux-Kernel-Archive. Es gibt mehrere aufgeführte Linux-Kernel-Versionen mit Bezeichnungen wie Hauptzweig, Langzeit, Stabil und rc. Ich erkläre jede einzelne unten.
Abbildung 6 Die Linux-Kernel-Archive

Das folgende Diagramm zeigt einige Kernel-Versionen, die von kernel.org mit hinzugefügten Kommentaren ausgewählt wurden. Der Hauptzweig ist die Hauptentwicklung. Sobald ein rc (Release Candidate) verfügbar ist, wird es zur offiziellen Version, sodass Hauptzweig und Stabil denselben Zustand bezeichnen. Unter den stabilen Versionen werden alle paar Versionen Langzeitversionen und für einen langen Zeitraum unterstützt.
Abbildung 7 Lebenszyklus auf kernel.org
Was ist Backporting?
Hier gibt es ein Wort, das man sich merken sollte: Backporting. Backporting bezieht sich darauf, Funktionen oder Korrekturen, die in einer neueren Version einer Software enthalten sind, auf eine ältere Version der Software anzuwenden.
Zum Beispiel, einen neuen Patch, der in Version 6.0 eingeführt wurde, auf Version 5.0 anzuwenden, wird Backporting genannt. Generell gilt: Je größer der Unterschied zwischen den beiden Versionen, desto größer ist der Unterschied im Code-Basis, was die Anwendung erschwert. Außerdem gibt es Fälle, in denen der betreffende Fehler in der älteren Version nicht existiert, was Backporting überflüssig macht.
Manche fragen sich vielleicht, was das Gegenteil von Backport ist. Zum Beispiel, wenn ein Fehlerbehebung von Softwareversion 5.0 auf die neuere Softwareversion 6.0 angewendet wird. Ich habe recherchiert, aber es gibt keinen gängigen Begriff, und es scheint, dass Backport, Merging, Forward-Porting usw. verwendet werden. Viele scheinen es ohne viel Nachdenken Backport zu nennen.
Der folgende Text ist Teil der Beschreibung von UEK, die zu Beginn eingeführt wurde.
Sein Fokus liegt auf Leistung, Stabilität und minimalen Backports, indem der Hauptzweig-Quellcode so nah wie möglich verfolgt wird.
In Anbetracht dessen, was wir bisher besprochen haben, macht Oracle die folgenden Aussagen:
- Neuere Hauptzweig-Quellcode-Basen haben wahrscheinlich eine bessere Leistung und Stabilität, da sie mehr neue Funktionen und Fehlerbehebungen enthalten.
- Das Starten mit neuerem Hauptzweig-Quellcode bedeutet, dass es weniger Unterschiede im Quellcode gibt, sodass die geringste Menge an Backporting erforderlich ist.
Grundwissen über Linux-Interna
Eine der wichtigsten Dinge, die man über UEK wissen sollte, ist seine Kompatibilität mit dem RHEL-Kernel (RHCK). Um die Kompatibilität zu verstehen, ist Wissen über das Linux-Betriebssystem unerlässlich. Daher erklären wir die Grundlagen der internen Struktur von Linux.
Hauptkomponenten des Linux-Betriebssystems
Das folgende Diagramm zeigt die Hauptkomponenten des Linux-Betriebssystems und ihre Beziehungen. Es ist wichtig, diese Informationen zu behalten, wenn man das Linux-Betriebssystem verstehen möchte.
- Linux-Kernel
Der Kernel ist die Kernkomponente des Linux-Betriebssystems. Er empfängt Anfragen von Anwendungen und führt Prozessmanagement und Speicherverwaltung durch, um Programme auszuführen. Er verwendet auch Gerätetreiber, die Kernel-Module sind, um das Dateisystem zu verwalten und Geräte für I/O zu steuern. Die Rolle des Kernels kann wie folgt zusammengefasst werden. Es ist am besten, ihn als eine Funktion zu verstehen, die auf die Hardware einwirkt.- Verwaltung von Hardware-Ressourcen für CPU, Speicher, Festplatte, Netzwerkkarten usw.
- Prozessmanagement und -steuerung für Anwendungen, die auf Linux laufen
- Kernel-Module
Kernel-Module sind Binärdateien, die die Funktionalität des Kernels erweitern. Sie sind hauptsächlich Gerätetreiber und haben ein Format, das bei Bedarf geladen werden kann. Dies ermöglicht die Unterstützung neuer Hardware durch einfaches Hinzufügen von Treibern und reduziert auch den Speicherverbrauch. - Systembibliotheken
Systembibliotheken (oder einfach Bibliotheken) sind Sammlungen von Funktionen, die häufig von Programmen verwendet werden und die meiste Funktionalität des Betriebssystems bereitstellen. Die bekannteste ist glibc, die Standard-C-Bibliothek, die in Linux verwendet wird. Sie wird glibc genannt, weil sie ursprünglich von GNU als GNU C Library entwickelt wurde.
Abbildung 8. Interne Struktur von Linux
Grundlagen verstehen (Bibliotheksfunktionen und Systemaufrufe)
Die Anwendungen in Abbildung 8 beziehen sich auf verschiedene Programme, einschließlich Befehlen und Dienstprogrammen, die standardmäßig im Betriebssystem enthalten sind. Diese Programme laufen, indem sie Bibliotheksfunktionen und Systemaufrufe aufrufen. Lassen Sie uns den Unterschied zwischen ihnen verstehen.
„Bibliotheken /lib64
“ werden in /usr/lib
installiert. Wenn Sie die Symbolinformationen von glibc mit dem Befehl nm
anzeigen, sehen Sie, dass sie printf()
enthält. Symbolinformationen beziehen sich auf die Funktionen und Variablen, die in der Bibliothek oder dem ausführbaren Programm enthalten sind.
printf()
arbeitet wie in den Argumenten angegeben und gibt bei Bedarf Anweisungen an den Kernel weiter.
$ rpm -qf /lib64/libc.so.6
glibc-2.34-60.0.3.el9.x86_64
$ nm /lib64/libc.so.6 | grep "T printf"
000000000006f430 T printf
000000000006e8f0 T printf_size
000000000006f350 T printf_size_info
„Systemaufrufe“ bieten Funktionen zur Bedienung von Hardware wie Datei-Ein-/Ausgabe, Erstellung neuer Prozesse, Netzwerkkommunikation usw. In Abbildung 8 wird ein Systemaufruf direkt von einer Anwendung aufgerufen. Er kann jedoch auch über eine Systemaufruf-Wrapper-Funktion aufgerufen werden, die in glibc enthalten ist.
Haben Sie bis hierher gelesen? Sie können sehen, dass Bibliotheken wie glibc sehr wichtig sind. Aus diesem Grund ändern RHEL-basierte Distributionen die glibc-Version nicht, bis sich die Hauptversion ändert.
Kernelmodus und Benutzermodus
Beschreibt Kernelmodus und Benutzermodus.
Programme, die auf Hardware-Ressourcen zugreifen, wie der Kernel und Gerätetreiber, laufen in einem speziellen privilegierten Modus namens „Kernelmodus“. Sie laufen in einem einzigen, isolierten Speicherbereich, der die Schutzfunktionen der CPU nutzt, und da sie keine Kontextwechsel erfordern, laufen sie sehr schnell. Der Kernel führt nicht nur jeden Prozess aus, sondern bietet auch geschützten Zugriff auf die Hardware.
Im Gegensatz dazu laufen allgemeine Programme in einem Speicherbereich namens „Benutzermodus“. Programme, die im Benutzermodus laufen, können nicht direkt auf die Hardware zugreifen. Stattdessen greifen sie über Systemaufrufe auf Kernel-Funktionen zu, und der Kernel greift letztendlich auf die Hardware zu.
Zusammenfassung des Grundwissens
Lassen Sie uns die Grundlagen der Linux-Interna, die wir bisher behandelt haben, kurz zusammenfassen.
- Sowohl der Kernel als auch glibc sind wichtige Komponenten von Linux, haben aber unterschiedliche Rollen
- Der Kernel ist für die Steuerung der Hardware verantwortlich.
- Bibliotheken stellen Funktionen bereit, die von allgemeinen Programmen verwendet werden. Die wichtigste Bibliothek ist glibc.
- Um auf die Hardware zuzugreifen, müssen Sie einen Systemaufruf tätigen.
- Programme greifen über Systemaufrufe oder Bibliotheksfunktionen auf die Hardware zu.
Wie Container funktionieren
Als Nächstes erklären wir Container. Sie fragen sich vielleicht „Warum Container?“ nach der Erklärung des Kernels. Das liegt daran, dass das Verständnis, wie Container funktionieren, ein gutes Thema ist, um die Kernel-Kompatibilität zu verstehen.
Container-Struktur
Das folgende Diagramm vergleicht Hypervisor-basierte und Container-basierte Virtualisierung: Eine virtuelle Maschine hat ein Gast-Betriebssystem und einen Kernel, während ein Container nur Anwendungen und Bibliotheken enthält, aber keinen Kernel.
Abbildung 9 Unterschied zwischen Hypervisor-Typ und Container-Typ
Der Grund, warum ein Kernel in einem Container nicht erforderlich ist, liegt darin, dass er den Kernel im Host-Betriebssystem verwendet. Obwohl Container Linux-Funktionen wie cgroups und Namespace verwenden, um Container voneinander zu isolieren, sind sie lediglich Prozesse, die auf dem Host-Betriebssystem laufen. Sehen Sie das folgende Diagramm. Ein Container läuft, wenn er die Bibliotheken und Programme enthält, die zum Ausführen einer Anwendung erforderlich sind.
Abbildung 10 Wie Container funktionieren
Linux-Kernel-Kompatibilität
Hier gibt es etwas Wichtiges.
Es funktioniert, auch wenn das Betriebssystem, auf dem das Container-Image erstellt wurde, eine andere Linux-Version als das Host-Betriebssystem ist.
Zum Beispiel, angenommen, das Host-Betriebssystem, auf dem die Container-Engine läuft, ist Ubuntu Server 22.04 LTS. In diesem Fall funktioniert das Container-Image, auch wenn es mit Oracle Linux 9 erstellt wurde, solange die erforderlichen Bibliotheken und Binärdateien enthalten sind. Obwohl beide Linux sein müssen, können sie auch funktionieren, wenn sich die Linux-Kernel-Versionen leicht unterscheiden.
Dies ist jedoch eine Frage, ob es technisch funktioniert, und hat nichts damit zu tun, ob der Anbieter technischen Support bietet oder nicht.
Abbildung 11 Linux-Kernel-Kompatibilität
Lassen Sie mich etwas detaillierter erklären. Schauen Sie sich Abbildung 12 unten an. Die Schnittstelle zwischen Anwendungen und dem Kernel in Linux-Systemaufrufen wird als Application Binary Interface (ABI) bezeichnet. Der Linux-Kernel wird unter Berücksichtigung der Kompatibilität entwickelt, sodass Systemaufrufe, die von früheren Versionen existieren, mit denselben Spezifikationen aufgerufen werden können. Daher funktionieren Anwendungen gleich, auch wenn sich die Linux-Kernel-Version leicht unterscheidet.
Abbildung 12 Aufrechterhaltung der Kompatibilität durch die Application Binary Interface
Application Binary Interface (ABI)
Die ABI ist eine Schnittstellendefinition, insbesondere der Systemaufrufname, der Datentyp der Argumente, die Anzahl der Argumente, der Datentyp des Rückgabewerts und der Wert usw. Der Linux-Kernel wird so entwickelt, dass diese sich nicht ändern. Wenn die ABI sich nicht ändert, treten beim Aufruf eines Systemaufrufs keine Fehler auf.
Wenn sich jedoch die Kernel-Version unterscheidet, kann die interne Implementierung des Systemaufrufs unterschiedlich sein. Der Systemaufruf ist jedoch eine primitive Anweisung an die Hardware, wie „Daten auf die Festplatte schreiben“ oder „Speicher zuweisen“. Daher wird auch das externe Verhalten gleich gemacht. So wird die Kompatibilität aufrechterhalten.
Abbildung 13 Kompatibilität durch die ABI aufrechterhalten
Inkompatibilitäten, auf die man achten sollte
Andererseits, welche Inkompatibilitäten sollte man beachten? Schauen Sie sich Abbildung 14 unten an. Dies sind Kernel-Module wie Gerätetreiber. Selbst wenn die Kernel-Versionsnummern übereinstimmen, funktionieren sie möglicherweise nicht, wenn die Release-Nummern am Ende unterschiedlich sind. Einige Kernel-Module können geringfügige Unterschiede in den Release-Nummern absorbieren, aber eine Neukompilierung wird empfohlen.
Obwohl es nichts mit dem Kernel zu tun hat, ist eine Sache, auf die man bei der Anwendungskompatibilität achten sollte, die Bibliotheken, die in Sprachen, Frameworks usw. verwendet werden. Bibliotheken werden oft häufig aktualisiert, und es ist üblich, dass es Einschränkungen wie XXX-Bibliothek 2.0 oder höher gibt.
Abbildung 14. Inkompatibilität von Kernel-Modulen
Vergleich von UEK und RHCK
Nachdem wir die Grundlagen behandelt haben, können wir endlich zum Hauptthema des Vergleichs kommen: Kompatibilität und Funktionen.
Kompatibilität mit RHCK
Dies geht um die Kompatibilität zwischen UEK und RHCK. Wenn Sie bis hierher gelesen haben, wissen Sie wahrscheinlich schon Bescheid. UEK ist so entwickelt, dass die ABI-Kompatibilität mit RHCK erhalten bleibt. Daher ist es kompatibel, wenn es sich um eine normale Anwendung handelt, die im Benutzermodus läuft.
Es gibt jedoch ein paar Dinge, die man beachten sollte.
Unterstützung für kommerzielle Softwareprodukte
Der erste Punkt ist, ob das kommerzielle Softwareprodukt unterstützt wird. Selbst wenn ein kommerzielles Softwareprodukt Oracle Linux unterstützt, könnte es RHCK unterstützen, aber nicht UEK. Tatsächlich laufen Anwendungen, die im Benutzermodus laufen, normalerweise problemlos, aber wenn Sie die Support-Richtlinien des Anbieters priorisieren möchten, verwenden Sie RHCK.
Ein Beispiel für kommerzielle Software, die auf Kompatibilität geachtet werden muss, sind Antivirenprodukte. Einige Antivirenprodukte laufen als Kernel-Module, daher müssen Sie in diesem Fall überprüfen, ob sie kompatibel sind.
Es gibt nicht viele japanische Software, aber Sie können die Oracle Linux-Kompatibilität im Oracle Linux ISV-Katalog überprüfen.
Bei Verwendung eines Servers eines bekannten Herstellers
Das Wichtigste zu beachten ist, dass Oracle Linux in der Liste der unterstützten Hardware enthalten ist. Wenn es vom Hersteller nicht unterstützt wird, besteht eine hohe Wahrscheinlichkeit, dass sie Ihnen bei Problemen nicht helfen können.
Darüber hinaus können Server-Maschinen mit spezieller Hardware wie RAID-Controllern und NICs ausgestattet sein, und die Hersteller können ihre eigenen Gerätetreiber bereitstellen. Wenn die Treiber nicht unterstützt werden, können Sie sie möglicherweise nicht verwenden.
Überprüfen Sie die Webseite des Herstellers oder die Oracle Linux Hardware-Zertifizierungsliste für Support-Informationen, die auch Informationen zur Unterstützung von RHCK und UEK enthält.
Unterschiede in den Funktionen
Es ist schwierig, die Unterschiede in den Funktionen zu verallgemeinern, da sie je nach Kernel-Version variieren, aber allgemein gesagt basiert UEK auf einem neueren Hauptzweig-Kernel, sodass er eine bessere Leistung und mehr Funktionen bietet.
Zum Beispiel ist in Oracle Linux 9 die Basisversion von UEK7 5.15.0 und die Basisversion von RHCK 5.14.0. Zu diesem Zeitpunkt gibt es nicht viel Unterschied. Wie jedoch in der folgenden Tabelle gezeigt, ändern sich UEKs auch innerhalb derselben Hauptversion. In ein paar Jahren wird UEK8 für Oracle Linux 9 veröffentlicht, und der Unterschied in den Kernel-Versionen wird größer.
Linux-Version | UEK4 | UEK5 | UEK6 | UEK7 |
---|---|---|---|---|
Oracle Linux 9 | × | × | × | ○ |
Oracle Linux 8 | × | × | ○ | ○ |
Oracle Linux 7 | ○ | ○ | ○ | × |
Bekannte Funktionen, die exklusiv für UEK sind, umfassen ocfs2 und btfs. Es gibt andere, aber für Details siehe „Neue Funktionen und Änderungen“ in den „Unbreakable Enterprise Kernel Release Notes“.
Abbildung 15. Unbreakable Enterprise Kernel Release 7 Release Notes

Zusammenfassung: Wann sollte man UEK oder RHCK verwenden?
Der UEK ist für groß angelegte Oracle-Datenbank- und Oracle Linux KVM-Workloads ausgelegt und basiert auf einem neueren Kernel, was bedeutet, dass er oft eine bessere Leistung und mehr Funktionen bietet.
UEK ist jedoch keine absolute Notwendigkeit. Ich glaube, dass man sie je nach Situation und Zweck verwenden sollte. In den folgenden Fällen 1 und 2 sollten Sie die Verwendung von RHCK in Betracht ziehen. Wichtig ist, den Unterschied zwischen UEK und RHCK zu verstehen und sie angemessen zu verwenden. Ich werde auch eine Tabelle vorstellen, die zusammenfasst, was ich bisher erklärt habe.
- Wenn Sie einen physischen Server verwenden und der Hersteller nur RHCK unterstützt
verwenden Sie RHCK. - Wenn Sie kommerzielle Software verwenden und der Anbieter nur RHCK unterstützt
ist es besser, RHCK zu verwenden. Wenn Sie es jedoch in Ihrem eigenen System verwenden und die Risiken tolerieren können, ist UEK auch eine Option.
Vor- und Nachteile von UEK gegenüber RHCK
Element | Vorteile | Nachteile |
---|---|---|
Funktionen und Leistung | Je nachdem, welche UEK- und RHCK-Versionen Sie vergleichen, hat der UEK wahrscheinlich bessere Funktionen und Leistung, da er einen neueren Hauptzweig-Kernel verwendet und möglicherweise auch Optimierungen für Oracle-Datenbanken hat. | |
Kompatibilität von Anwendungen, die im Benutzermodus laufen | Kompatibel | Bei kommerziellen Paketprodukten kann der Support je nach Support-Richtlinie des Anbieters nicht verfügbar sein. |
Kernel-Module, die im Kernelmodus laufen | Gerätetreiber usw., die als Quellcode bereitgestellt werden, sind wahrscheinlich kompatibel | Antivirensoftware und Gerätetreiber, die im Kernelmodus laufen, sind im Allgemeinen nicht kompatibel. |
Sonstiges | Server von bekannten Herstellern können Oracle Linux (RHCK) unterstützen, aber nicht UEK. |