Linux カーネルは、Linux オペレーティング システム (OS) のバックボーンであり、コンピューターのハードウェアとそのプロセスの間の基本的なインターフェイスです。
先週、リーナス・トーバルズ氏は、新しいLinuxカーネルバージョン6.8の一般提供開始を発表しました。このリリースは開発に数か月を要し、通常よりも多くのビルドが必要だったため、リリースが遅れました。今回のリリースには、Raspberry Pi 5に搭載されているBroadcom BCM2712プロセッサのサポート、AMDのACPIベースのWi-Fi RFI(WBRF)帯域緩和、新しいIntel Xe DRMグラフィックスドライバ、CephFSにおけるfscryptのサポートなど、いくつかの注目すべき機能が含まれています。
最も重要な点の1つは、RustがLoongArchアーキテクチャを初期段階でサポートしたことと、ネットワークPHYドライバを開発できるようになったことです。Linux 6.7ほど大規模なリリースではありませんが、Linux 6.8では数多くの変更と改善が実装されています。
Linux6.8の主な新機能
Linux 6.8 のこの新しいバージョンでは、Zswap サブシステムが改良され、 RAM が不足している状況で、使用されない可能性が高いアクセスされていない「コールド」メモリ ページを強制的にオフロードする機能が追加されました。Zswap は、追い出されたページをスワップ パーティションにキャッシュし、可能な限り圧縮して RAM に格納することで動作します。圧縮されていないページをディスクに書き込むのではなく、RAM に格納します。さらに、Zswap には新しいモードが導入され、書き込み試行が失敗した場合に実際のスワップ パーティションへの書き込みを無効にし、スワップ パーティション上の Zswap プールに既に存在するページのオフロードも防止します。
タスクスケジューラに関しては、SCHED_DEADLINEサーバ機構が統合されました。これは、CPUが高優先度(リアルタイム)タスクによって占有されている場合に、通常のタスクによるCPUリソースの利用率が低下するという問題を解決するものです。従来、カーネルはリアルタイム制限機構を使用しており、CPUの5%を低優先度タスクに割り当て、残りの95%をリアルタイムタスクに割り当てていました。
Linux 6.8には、 Intel ArcファミリーのビデオカードやTiger Lake以降のプロセッサに搭載されている統合グラフィックスなど、Intel Xeアーキテクチャに基づくGPU向けに設計されたXe DRMドライバが搭載されました。このXeドライバは、旧プラットフォームをサポートするコードとは独立しており、新しいチップの最適な動作に重点を置いています。再設計されたアーキテクチャを採用することで、特定のGPUに依存しないDRMサブシステムとi915ドライバの汎用コンポーネントをより効果的に活用しています。
Nouveauドライバは、 NVIDIA TuringおよびAmpereベースのGPUにおいて、デフォルトでGSPファームウェア機能を使用するように構成されています。つまり、GPUの初期化および制御操作は、コンピュータと直接やり取りする操作をプログラムするのではなく、別のGSPマイクロコントローラによって実行されます。
一方、AMDGPUドライバは、ACPI WBRFとVPE DPMの組み込み、 PCIeチャネル処理の変更、同期キューにおける64ビットシーケンス番号の使用、AMD固有のカラーマネジメントメカニズムの導入、スリープモードに関連する問題の解決などにより、サポートを強化しています。
さらに、Nintendo Switch Online(NSO)対応のゲームコントローラーのサポートが追加され、 Nintendo Switch向けに改良された旧型のSNES、Genesis、N64コントローラーも含まれるようになりました。Adafruit Seesawゲームパッド用のコントローラーも追加され、xpadコントローラーではLenovo Legion Goコントローラーとの互換性が有効化されました。
また、マウントされたファイルシステムを持つブロックデバイスへの直接書き込みをブロックする新しいモードが導入された点にも注目すべきです。このモードが有効になっている場合、rootユーザーはブロックデバイス自体を操作してファイルシステムに変更を加えることができなくなります。このモードはデフォルトでは無効になっており、有効にするにはアセンブリ時にBLK_DEV_WRITE_MOUNTEDパラメータを使用して指定する必要があることに注意してください。
その他の注目すべき変更点は以下のとおりです。
- Raspberry Pi 7.1 ボードで使用される Broadcom VideoCore 5 GPU の初期ドライバー実装を追加しました。
- Imagination Technologies の Rogue マイクロアーキテクチャに基づく PowerVR 6 シリーズ GPU 用のドライバーを追加しました。
- Intel Lunar Lake マイクロアーキテクチャに基づいてチップに統合された Thunderbolt/USB4 コントローラーのサポートが追加されました。
- AMD は、新しい Zen 5 マイクロアーキテクチャに基づいた将来のプロセッサ シリーズのサポートに関連する変更を加えました。
- listmount() および statmount() システム コールが追加され、マウントされたファイル システムに関する詳細情報をユーザー空間から取得できるようになりました。
- XFS ファイル システムでは、ファイル システムをアンマウントせずに、fsck ユーティリティを使用して特定された問題をオンラインで確認し、修正できるようにするための作業が続けられています。
- Ext4 は、メモリのページより小さいブロックに対して dioread_nolock 呼び出しを実装し、不必要なロックを排除することでパフォーマンスを向上させました。
- Btrfs は、空きブロック キャッシュを無効にする「nospace_cache」マウント フラグのサポートを追加しました。
- AppArmor はルール検証のために SHA-256 アルゴリズムに切り替え、以前の SHA-1 ハッシュを置き換えました。
- Glibc 2.38 C に含まれていた strlcpy() 関数はカーネルから削除されました。この関数は、バッファ オーバーフロー保護機能を備えた strncpy() の代替関数です。
- KVM は、ゲスト環境で機密コンピューティングを組織するためのメモリ管理機能を提供する guest_memfd (ゲスト メモリ ファースト) サブシステムのサポートを追加しました。
最後に、これについてさらに詳しく知りたい場合は、以下のリンクから詳細をご覧いただけます。