12.3. カーネルへの注目すべき変更
64k ページサイズのカーネル
4k ページをサポートする RHEL 9 for ARMカーネルに加えて、Red Hat は 64k ページをサポートするオプションのカーネルパッケージ kernel-64k
を提供するようになりました。
64k ページサイズのカーネルは、ARM プラットフォーム上の大規模なデータセットに便利なオプションです。これにより、メモリーや CPU を大量に消費する一部の操作のパフォーマンスが向上します。
64 ビット ARM アーキテクチャーシステムでは、インストール時にページサイズを選択する必要があります。kernel-64k
パッケージを Kickstart
ファイルのパッケージリストに追加すると、Kickstart のみで kernel-64k
をインストールできます。
kernel-64k
のインストールの詳細については、高度な RHEL 9 インストールの実行 を参照してください。
RHEL 9 では、デフォルトで有効になっている cgroup-v2
コントロールグループバージョン 2 (cgroup-v2
) 機能は、制御グループの管理を簡素化する 1 つの階層モデルを実装します。また、プロセスが、一度に 1 つのコントロールグループのメンバーにのみなれるようにします。systemd
との深い統合により、RHEL システムでリソース制御を設定する際のエンドユーザーエクスペリエンスが改善されます。
新機能の開発は、主に cgroup-v2
向けに行われます。これには、cgroup-v1
に欠けている機能がいくつかあります。同様に、cgroup-v1
には、cgroup-v2
に欠けている従来の機能がいくつか含まれています。また、制御インターフェイスも異なります。したがって、cgroup-v1
に直接依存するサードパーティーソフトウェアは、cgroup-v2
では適切に実行されない可能性があります。
cgroup-v1
を使用するには、以下のパラメーターをカーネルコマンドラインに追加する必要があります。
systemd.unified_cgroup_hierarchy=0 systemd.legacy_systemd_cgroup_controller
cgroup-v1
と cgroup-v2
の両方がカーネルで完全に有効になっている。カーネルから見た場合、デフォルトのコントロールグループバージョンはありません。また、システムの起動時にマウントするかどうかは、systemd
により決定します。
サードパーティーのカーネルモジュールに影響を与える可能性のあるカーネル変更
5.9 以前のカーネルバージョンを持つ Linux ディストリビューションは、GPL 以外の機能としての GPL 機能のエクスポートに対応していました。これにより、ユーザーは shim
メカニズムを介して、独自の機能を GPL カーネル機能にリンクできます。今回のリリースで、RHEL カーネルにアップストリームの変更が組み込まれました。これにより、RHEL の機能が強化され、shim
の再バフィングにより GPL が適用されるようになりました。
パートナーおよび独立したソフトウェアベンダー (ISV) は、初期バージョンの RHEL 9 でカーネルモジュールをテストして、GPL への準拠を確認する必要があります。
コアスケジューリングは RHEL 9 でサポートされている
コアスケジューリング機能を使用すると、相互に信頼できないタスクが同じ CPU コアを共有するのを防ぐことができます。同様に、ユーザーは CPU コアを共有できるタスクのグループを定義できます。
以下のグループを指定できます。
- SMT (Cross-Symmetric Multithreading) 攻撃を軽減することでセキュリティーを改善するには、以下の手順を行います。
- コア全体を必要とするタスクを分離するには、以下を行います。たとえば、リアルタイム環境のタスク、または SIMD (Multiple Data) 処理や Single Instruction などの特定のプロセッサー機能に依存するタスクなど。
詳細は コアスケジューリング を参照してください。
kernelopts
環境変数は RHEL 9 で削除された
RHEL 8 では、GRUB2 ブートローダーを使用するシステムのカーネルコマンドラインパラメーターが kernelopts
環境変数で定義されていました。変数は、カーネルブートエントリーごとに /boot/grub2/grubenv
ファイルに保存されました。ただし、kernelopts
を使用してカーネルコマンドラインパラメーターを保存することは堅牢ではありませんでした。そのため、Red Hat は kernelopts
を削除し、カーネルコマンドラインパラメーターは、/boot/loader/entries/<KERNEL_BOOT_ENTRY>.conf
ファイルではなく、ブートローダー仕様 (BLS) スニペットに保存されるようになりました。
Red Hat は、マイナーリリースに対してのみカーネルシンボルを保護します。
Red Hat は、保護されたカーネルシンボルを使用してカーネルモジュールをコンパイルする場合にのみ、カーネルモジュールが Extended Update Support (EUS) リリース内の将来のすべての更新でロードされ続けることを保証します。RHEL 9 のマイナーリリース間では、カーネルアプリケーションバイナリーインターフェイス (ABI) の保証はありません。