11 ポイント 投稿者 GN⁺ 2024-09-16 | 3件のコメント | WhatsAppで共有
  • Linus Torvalds が 6.11 カーネルをリリース
    • 彼のメッセージ: "またしても移動中で、いつもの時間帯ではないけれど、ここウィーンでは日曜の午後で、6.11 が出た。"
  • 今回のリリースの主な変更点には、io_uring の新しい bind() および listen() 操作、ネストされたハーフロックのパッチ、使用中の実行ファイルへの書き込み機能、Rust によるブロックドライバ記述のサポート、ブロックレイヤーでのアトミック書き込み操作のサポート、専用バケットスラブアロケータ、getrandom() の vDSO 実装などが含まれる

アーキテクチャ別の変更点

  • 64 ビット Arm アーキテクチャは、ACPI システムで CPU ホットプラグをサポートするようになった。詳細は このドキュメントコミット を参照
  • X86 カーネルは、AMD の SEV-SNP セキュア暗号化仮想化機能を使ってゲストとして実行できるようになった。Security VM Service Module を利用
  • X86 の "fake EFI メモリマップ" 機能が削除された。この機能はブート時に架空のメモリマップエントリを作成できるが、機密コンピューティング構成とは整合しない
  • x86-64 システム向け AES-GCM 暗号の新しい実装。性能向上は常に歓迎されるが、この貢献はコードとその動作に関する広範なドキュメントでも注目に値する。詳細は このコミット を参照
  • PowerPC 40x プラットフォームのサポートが削除された
  • RISC-V システムにメモリホットプラグのサポートが追加された

コアカーネル

  • io_uring サブシステムは、bind()listen() を実装する操作を提供するようになった
  • nsfs(名前空間)ファイルシステムの新しい ioctl() 操作セットは、PID 名前空間間でのプロセスおよびスレッドグループ ID の変換を行う
  • pidfd ファイルシステムは、pidfd で表現されるプロセスの名前空間ファイルディスクリプタを取得するための新しい ioctl() 呼び出しをサポート
  • ネストされた bottom-half ロックのパッチ がマージされた。これは主にリアルタイムカーネルのレイテンシ改善を目的とするものだが、ほかの利用者にも利点があるはず
  • 現在は x86-64 システムでのみ実装されている新しいシステムコール uretprobe() がある。これは、ユーザー空間プロセスに動的に挿入される uretprobe(関数リターントレースポイント)の処理を最適化するためのもの
  • function-graph tracer に対する単一ユーザー制限が削除された
  • 新しい reserve_mem= コマンドラインパラメータを使って、名前付きメモリ領域を予約できる。これは pstore サブシステムで新しい ramoops.mem_name= パラメータと併用することを想定している

ファイルシステムとブロック I/O

  • statx() システムコールでは、AT_EMPTY_PATH フラグが設定されている場合、パス引数に null ポインタを指定できるようになった
  • open_by_handle_at() システムコールでは、6.11 で、呼び出し元がファイルに対する適切なアクセス権を持つことをカーネルが確認できる状況において、このシステムコールに対する権限チェックがやや緩和された
  • Linux カーネルは従来、システム内のどこかのプロセスで使用中の実行ファイルへの書き込みをブロックしていた。これは実行中プログラムへの不快なサプライズを防ぐためだった。カーネル開発者はこの制限を何年もかけて徐々に取り除いてきた。6.11 以降、カーネルは使用中の実行ファイルへの書き込みをもはや防がない
  • Btrfs ファイルシステムは、rescue= マウントオプションに対していくつかの新しい値(ignoremetacsumsignoresuperflags)を認識する。これは、ユーザー空間ツールによって部分的に変換されたファイルシステム、特にチェックサム変換を行うファイルシステムの復旧を支援するためのもの
  • Btrfs のブロックグループ回収のやり方が改善された。これは、ファイルシステムが満杯ではないにもかかわらず空き領域を利用できない状況を避けるためのもの。新しい動的回収しきい値の動作については このコミット を参照

ハードウェアサポート

  • Qualcomm SM8650 カメラクロックコントローラ
  • SPD5118 準拠の温度センサー、Monolithic Power Systems MP2993 デュアルループデジタルマルチフェーズコントローラなどのハードウェアモニタリング
  • ChromeOS 組み込みコントローラセンサー、ChromeOS EC ベースの充電コントローラなど、そのほかの項目
  • Realtek RTL8192DU USB ワイヤレスネットワークアダプタ、Renesas Ethernet-TSN インターフェース、Vining 800 CAN インターフェースなどのネットワーキング
  • Amlogic C3 PLL クロックコントローラ、Qualcomm SM7150 ディスプレイ/カメラ/ビデオクロックコントローラなどのクロック関連
  • NXP IMX91 ピンコントロールユニット、Nuvoton MA35 ピンおよび GPIO コントローラなどの GPIO とピン制御
  • Lincoln Technologies lcd197 パネル、Ilitek ILI9806E ベースのパネルなどのグラフィックス
  • 産業用 I/O、入力デバイス、メディア、そのほか、PHY、サウンド、USB など幅広い分野に新たなハードウェアサポートが追加された

そのほか

  • システムのデバイスを正しい順序で起動させるための新しい電源シーケンシングサブシステムが登場
  • "sloppy logic analyzer" モジュールは、GPIO ライン一式を低コストのロジックアナライザに変換できる
  • perf ツールに多くの新機能が追加された
  • ファームウェア読み込みのための小さな Rust 抽象化セット がマージされた。Rust で重要なドライバを書くためにまだ必要なものは多いが、その一覧は着実に短くなっている

ネットワーキング

  • 新しい net.tcp_rto_min_us sysctl ノブを使って、TCP ソケットの最小再送タイムアウトを調整できる
  • ethtool ユーティリティは、Net DIM を使うインターフェースの割り込み設定を細かく調整できるようになった

セキュリティ関連

仮想化とコンテナ

  • KVM に AMD の SEV-SNP セキュア暗号化仮想化メカニズムへの初期サポートが追加された
  • ゲスト実行前にゲストメモリを事前に埋めるための新しい KVM ioctl() 呼び出しがある

カーネル内部の変更

  • 6.11 にマージされた最初の変更は、Linus Torvalds が追加した新しい "ランタイム定数" メカニズム
  • iomap サブシステムに関する いくつかのドキュメント化 がようやく行われた
  • カーネルのビルドに必要な GNU Make の最小バージョンが 4.0 に引き上げられた
  • 6.11 では 118 個のエクスポートシンボルが削除され、464 個が追加されて、純増は 346 個。新しい kfunc も 6 個ある

GN⁺ の意見

  • 6.11 カーネルリリースでは、多くのアーキテクチャ別改善とハードウェアサポート拡張が印象的。特に 64 ビット ARM と x86 における CPU ホットプラグ、および AMD の SEV-SNP サポートは、セキュリティと仮想化の面で意義が大きい
  • io_uring と BPF に新機能が追加され、高性能 I/O と eBPF プログラミングに対するカーネルレベルの支援が強化される流れにある。これはシステム性能の最適化、監視、ネットワーキングなどに大きく役立つはず
  • 電源シーケンシングや sloppy ロジックアナライザのような新しいサブシステムとモジュールの登場は、組み込みや IoT 環境での Linux カーネル活用度を高めると期待される
  • ランタイム定数やドキュメント改善など、カーネル内部のコード最適化と開発のしやすさ向上も着実に進んでいる。ただし、依然として文書化が不足している部分は多く、コミュニティレベルの協力がさらに必要に見える
  • 6.11 マージウィンドウ後半は、複数アーキテクチャ向けの性能改善と新しいハードウェアサポートが中心だった。特に x86-64 の AES-GCM 暗号最適化と RISC-V のメモリホットプラグサポートは注目に値する変化
  • KVM に AMD の SEV-SNP への初期サポートが追加されるなど、仮想化セキュリティの面でも進展があった。これはクラウドおよびエッジコンピューティング環境で Linux カーネルの役割がさらに拡大することを示唆している
  • ファームウェア読み込みやヒープスプレー防止のための Rust 抽象化導入は、システムプログラミング言語としての Rust の可能性を示している。今後、カーネル内での Rust コードの比重は徐々に高まると予想される
  • 拡張可能なスケジューラクラスのマージ延期は残念だが、十分なレビューと安定化のためにはやむを得ない選択に見える。スケジューラはシステム性能に直結するだけに、慎重なアプローチが必要

3件のコメント

 
ehlegeth 2024-10-03

「6.10.10にアップデートした後も、時々スリープ状態から復帰しない」
自分だけじゃなかったのか...

 
xcutz 2024-09-16

トーバルズ兄貴にはあと200年は生きてもらわないと

 
GN⁺ 2024-09-16
Hacker Newsの意見
  • 6.10バージョンは複数の主要バグにより問題が多かった
    • amdgpu関連のバグ3件で、映像の破損、システムの停止、クラッシュが発生
    • 6.10.10にアップデートした後も、スリープから断続的に復帰しない
  • Linux 3.11バージョン以降、多くの進歩があった
  • Torvaldsが今でもLinuxカーネルのリリースノートを書いていることに感心する
  • 喜ばしいニュース
    • Rustによるブロックドライバ記述をサポート
    • ブロックレイヤーでアトミック書き込み操作をサポート
  • 6.12バージョンへの期待: sched_ext、PREEMPT_RT
  • 新しいSnapdragon Xサポートについて意見を求める
  • ランタイム定数をどう実装するのか気になる
  • スマートフォン向けGNU/Linuxの時代はいつ来るのか気になる
    • Androidは適していない
    • スマートフォンにデスクトップのように簡単にディストリビューションをインストールできることを望む
  • いまやLinuxノートPCをRAMにサスペンドできるのか気になる
  • UbuntuがOracularベータでこの機能を数日間適用してテストしたと主張する日を待っている