互換性
Oracle Linuxは、オペレーティング・システムの下で実行されているカーネル・バージョンに依存しない、Red Hat Enterprise Linux (RHEL)との完全なユーザー空間の互換性を維持します。 ユーザー空間の既存のアプリケーションは、Unbreakable Enterprise Kernelリリース6で変更なしに引き続き実行され、RHEL認定アプリケーションには再認定は必要ありません。
Oracle Linuxチームはリリース時の互換性に関する影響を最小限に抑えるため、カーネル・モジュールに対する依存性があるハードウェアおよびソフトウェアを提供するサード・パーティ・ベンダーと緊密に協力しています。 UEK R6のカーネルABIは、初期リリースへの後続のすべての更新で変更されません。 このリリースでは、システムのサード・パーティのカーネル・モジュールの再コンパイルを必要とする、UEK R5を基準とするカーネルABIに変更が加えられています。 UEK R6をインストールする前に、アプリケーションのベンダーにサポート・ステータスを確認してください。
カーネル・ヘッダーでの重要な変更
カーネル・ヘッダーへの変更をアップストリームすると、ソース・コードを変更することなく、サード・パーティのモジュールが異なるカーネル・バージョン間でコンパイルすることを意味する場合があります。 memcg_cache_params
構造がinclude/linux/slab.h
からmm/slab.h
に移動されたことが顕著です。 つまり、カーネル・バージョン間でコンパイルする場合は、コードを考慮に入れて変更を考慮する必要があります。
この問題を解決するには、コードがUEK R5とUEK R6の両方でコンパイルできるように、ソース・コードでヘッダー要件を変更します。 たとえば、次の例のような明細を、2番目の例のように変更します:
#ifdef CONFIG_SLUB #include <linux/slub_def.h> #endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) ) #ifdef CONFIG_SLUB #include <linux/slub_def.h> #endif #endif