Linuxカーネル6.13がリリースされました。新機能は以下の通りです。
Linuxカーネル6.13は、レイジープリエンプション、XFS/Ext4におけるアトミック書き込み、ARM64仮想化の改善、ネットワークデバイスAPIの強化などを導入しました。
リーナス・トーバルズは、軽快なアップデートと共に新しいLinuxカーネル6.13の公式リリースを発表しました。「先週は何もひどいことや予期しないことが起こらなかったので、最終的な6.13リリースをタグ付けして公開しました。」さて、これがもたらす主要な更新と機能について説明しましょう。
カーネル6.13で最も話題にされている強化の一つは、従来の自発的プリエンプションと完全プリエンプションモードの間の巧妙な妥協であるレイジープリエンプションの導入です。
自発的なプリエンプションは、パフォーマンスの向上のためにいくらかの応答性を犠牲にし、完全なプリエンプションは潜在的なパフォーマンスコストを伴うほぼ瞬時のタスク切り替えを提供しますが、レイジープリエンプションは、完全なプリエンプションのオーバーヘッドなしに自発的モードよりも多くのプリエンプションの機会を提供することを目指しています。
このリリースのもう一つの貴重な強化は、XFS、Ext4のダイレクトI/O、および特定のmd RAIDモードにおけるアトミック書き込みのサポートです。複数のセクターを安全に単一のアトミック操作に結合できるハードウェアに支えられることで、これらのファイルシステムはデータをより効率的かつ信頼性高く更新できます。
Linuxカーネル6.13は、特にNAPIサスペンション,<&47;strong>を通じてネットワークパフォーマンスの改善を示しており、トラフィックが軽いときにシステムが効率的に保たれ、ネットワーク需要が高まったときにオーバーヘッドを軽減する方法を自動的に切り替えるメソッドを導入しています。
ネットワーキングチームは、送信ハードウェアシェーピング(TX H/Wシェーピング)を構成するための柔軟な新しいデバイスAPIを評価するでしょう。組み込みのイントロスペクション機能により、開発者はハードウェアに対して利用可能なオプションを照会し、異なるトラフィックプロファイルに対してパケットペーシング、帯域幅の使用、またはサービス品質を最適化するためにシェーピングポリシーを微調整できます。
セキュリティの面では、ガードページは触れられるたびに致命的なシグナルを引き起こすことで不要または偶発的なメモリアクセスをキャッチするための便利な方法でした。しかし、これを実装するには通常、大きなメモリ割り当てのオーバーヘッドが必要でした。
この課題は、軽量ガードページを使用してカーネル6.13で解決され、新しいMADV_GUARD_INSTALL
フラグを介してmadvise()
システムコールに導入されました。
io_uringは、そのデビュー以来注目を集めている非同期I/Oインターフェースであり、今回のサイクルでは以下のような複数の改良が行われます。
- リングサイズの変更<&47;strong>: アプリは現在、小さなリングバッファから始め、需要が増えた場合にシームレスに拡張できます。
- 部分バッファクローン<&47;strong>: 開発者は、バッファテーブル全体をクローンする代わりに、必要なセクションのみを複製することを選択できます。
- ハイブリッドI/Oポーリング: アクティブポーリングの前に短いスリープ期間を導入することでCPUの無駄を減らす方法。
ARMの分野では、Linux 6.13が2つの際立った追加機能をもたらします。
- ARM機密コンピュートアーキテクチャ(CCA): ARMベースのシステムは、CCAの下で保護されたVM内でLinuxを実行できるようになり、ゲストの隔離を強化し、より広範な攻撃に対して防御します。
- ユーザースペースシャドースタック<&47;strong>: ARMの文書では、これをガーディッドコントロールスタック(GCS)と呼ぶことが多く、この機能はハードウェア保護されたスタック上でリターンアドレスを保護します。これは、リターン指向プログラミング(ROP)攻撃を防ぎ、自動コールスタックトラッキングを提供することでプロファイリングとデバッグを簡素化するように設計されています。
最後に、カーネルの内部ファイル操作は、新しい参照カウントメカニズムの恩恵を受けるようになりました。ベンチマークによると、大量のスレッドを扱うシステムでは3〜5%のパフォーマンス向上が見込まれ、ファイルを常に開閉し操作する環境においては歓迎すべき改善です。
もちろん、すべての新しいカーネルリリースと同様に、内部には無数の他の変更が含まれています。
- ページ処理をより効率的にするためのメモリ管理の更新
- オーディオ、ストレージ、ネットワーキングなどにわたるドライバーの強化<&47;strong>
- AMDおよびIntelアーキテクチャの拡張からARM64上のKVMの改善まで、仮想化コンポーネントの改良。
- 新しいプルリクエストと、カーネルの全体的な安定性と多様性を向上させるためのさらなるコード調整。
詳細に探求したい場合は、LWNのマージウィンドウレポート(パート1とパート2)を確認するか、トーバルズのgitコミットログのすべてのマージを見てみてください。Linuxカーネル6.13を自分でコンパイルしたい方は、現在kernel.orgからダウンロード可能です。