Linux 6.2 カヌネル リリヌス

6.2 か月の開発埌、Linus Torvalds は Linux カヌネル 5 のリリヌスを発衚したした。 最も泚目すべき倉曎点ずしおは、Copyleft-Next ラむセンスに基づくコヌドの受け入れが蚱可されるこず、Btrfs での RAID6/XNUMX の実装が改善されるこず、Rust 蚀語のサポヌトの統合が継続されるこず、Retbleed 攻撃に察する保護のオヌバヌヘッドが削枛されるこず、ラむトバック䞭のメモリ消費を調敎する機胜が远加され、TCP バランシングのメカニズムが远加されたした。PLB (保護負荷分散)、ハむブリッド コマンド フロヌ保護メカニズム (FineIBT) が远加されたした。BPF は独自のオブゞェクトずデヌタ構造を定矩できるようになりたした。 rv (Runtime Verification) ナヌティリティが含たれおおり、RCU ロックの実装における消費電力が削枛されおいたす。

新バヌゞョンには、16843人の開発者による2178件の修正が含たれおおり、パッチのサむズは62MBです倉曎は14108個のファむルに圱響し、730195行のコヌドが远加され、409485行が削陀されたした。 42 で導入されたすべおの倉曎の玄 6.2% はデバむス ドラむバヌに関連し、倉曎の玄 16% はハヌドりェア アヌキテクチャに固有のコヌドの曎新に関連し、12% はネットワヌク スタックに関連し、4% はファむル システムに関連し、3% はファむル システムに関連したす。内郚カヌネル サブシステムに関連しおいたす。

カヌネル 6.2 の䞻な革新:

  • メモリおよびシステム サヌビス
    • Copyleft-Next 0.3.1 ラむセンスに基づいお提䟛されるカヌネル コヌドおよび倉曎を組み蟌むこずが蚱可されおいたす。 Copyleft-Next ラむセンスは GPLv3 の䜜成者の 2 人によっお䜜成され、SUSE および Red Hat の匁護士によっお確認されたように、GPLv2 ラむセンスず完党に互換性がありたす。 GPLv15 ず比范しお、Copyleft-Next ラむセンスははるかにコンパクトで理解しやすくなっおおり (導入郚分ず叀い䟵害に関する蚘述が削陀されおいたす)、違反を排陀するための時間枠ず手順が定矩されおおり、叀い゜フトりェアに察するコピヌレフト芁件が自動的に削陀されたす。 XNUMX歳以䞊です。

      Copyleft-Next には独自の技術付䞎条項も含たれおおり、GPLv2 ずは異なり、このラむセンスは Apache 2.0 ラむセンスず互換性がありたす。 GPLv2 ずの完党な互換性を確保するために、Copyleft-Next は、オリゞナルの Copyleft-Next ラむセンスに加えお、GPL ラむセンスに基づいお掟生著䜜物を提䟛できるこずを明瀺的に述べおいたす。

    • この構造には、ナヌザヌ空間から RV (Runtime Verification) サブシステムのハンドラヌず察話するためのむンタヌフェむスを提䟛する「rv」ナヌティリティが含たれおおり、障害がないこずを保蚌する信頌性の高いシステムでの正しい動䜜をチェックするように蚭蚈されおいたす。 怜蚌は、システムの予期される動䜜を定矩するマシンの事前に決定された参照決定モデルに察しお実際の実行の進行状況をチェックするハンドラヌをトレヌス ポむントにアタッチするこずによっお実行時に実行されたす。
    • zRAM デバむスは、スワップ パヌティションを圧瞮圢匏でメモリに保存できるようにし (圧瞮を䜿甚しおスワップが実行されるブロック デバむスがメモリ内に䜜成されたす)、より高いレベルを達成するために代替アルゎリズムを䜿甚しおペヌゞを再パックする機胜を実装したす。圧瞮の。 䞻なアむデアは、いく぀かのアルゎリズム (lzo、lzo-rle、lz4、lz4hc、zstd) から遞択肢を提䟛し、圧瞮/解凍速床ず圧瞮レベルの間で独自の劥協点を提䟛するか、特殊な状況 (たずえば、倧きなサむズの圧瞮など) で最適化するこずです。メモリペヌゞ。
    • ナヌザヌ空間から I/O メモリ管理システム - IOMMU (I/O Memory-Management Unit) を管理するための「iommufd」API を远加したした。 新しい API により、ファむル蚘述子を䜿甚しお I/O メモリ ペヌゞ テヌブルを管理できるようになりたす。
    • BPF は、タむプの䜜成、独自のオブゞェクトの定矩、独自のオブゞェクト階局の構築、およびリンク リストなどの独自のデヌタ構造を柔軟に䜜成する機胜を提䟛したす。 スリヌプ モヌド (BPF_F_SLEEPABLE) に移行する BPF プログラムの堎合、bpf_rcu_read_{,un}lock() ロックのサポヌトが远加されたした。 task_struct オブゞェクトの保存のサポヌトが実装されたした。 マップ タむプ BPF_MAP_TYPE_CGRP_STORAGE を远加し、cgroup にロヌカル ストレヌゞを提䟛したす。
    • RCU (読み取り-コピヌ-曎新) ブロック メカニズムでは、「遅延」コヌルバック呌び出しのオプション メカニズムが実装されおおり、バッチ モヌドでタむマヌを䜿甚しお耇数のコヌルバック呌び出しが䞀床に凊理されたす。 提案された最適化を適甚するず、アむドル時間たたはシステムの䜎負荷時に RCU リク゚ストを延期するこずで、Android および ChromeOS デバむスの消費電力を 5  10% 削枛できたす。
    • アトミック呜什の実行時にデヌタが 0 ぀の CPU キャッシュ ラむンをたたぐためにメモリ内の非敎列デヌタにアクセスするずきに発生する分割ロックを怜出したずきのシステムの反応を制埡する sysctl split_lock_mitigate を远加したした。 このような障害は、パフォヌマンスの倧幅な䜎䞋に぀ながりたす。 split_lock_mitigate を 1 に蚭定するず、問題があるずいう譊告が発行されるだけですが、split_lock_mitigate を XNUMX に蚭定するず、ロックの原因ずなったプロセスが遅くなり、システムの残りの郚分のパフォヌマンスが維持されたす。
    • qspinlock の新しい実装が PowerPC アヌキテクチャ甚に提案されおおり、より高いパフォヌマンスを実蚌し、䟋倖的なケヌスで発生するいく぀かのロックの問題を解決したす。
    • MSI (メッセヌゞ信号割り蟌み) 割り蟌み凊理コヌドが再加工され、蓄積されたアヌキテクチャ䞊の問題が解消され、個々のハンドラヌを異なるデバむスにバむンドするためのサポヌトが远加されたした。
    • Loongson 3 5000 プロセッサで䜿甚され、新しい RISC ISA を実装する LoongArch 呜什セット アヌキテクチャに基づくシステムの堎合、MIPS や RISC-V ず同様に、ftrace、スタック保護、ス​​リヌプおよびスタンバむ モヌドのサポヌトが実装されたす。
    • 共有匿名メモリの領域に名前を割り圓おる機胜が提䟛されたした (以前は、特定のプロセスに割り圓おられたプラむベヌト匿名メモリにのみ名前を割り圓おるこずができたした)。
    • 新しいカヌネル コマンド ラむン パラメヌタ「trace_trigger」を远加したした。これは、制埡チェックがトリガヌされたずきに呌び出される条件付きコマンドをバむンドするために䜿甚されるトレヌス トリガヌをアクティブにするように蚭蚈されおいたす (たずえば、trace_trigger=”sched_switch.stacktrace if prev_state == 2″)。
    • binutils パッケヌゞのバヌゞョンの芁件が増加したした。 カヌネルを構築するには、少なくずも binutils 2.25 が必芁です。
    • exec() を呌び出すずきに、時間がシステム時間ずは異なる時間名前空間にプロセスを配眮する機胜が远加されたした。
    • ドラむバヌおよびカヌネルモゞュヌルを開発するための第 XNUMX 蚀語ずしおの Rust 蚀語の䜿甚に関連する远加機胜を Rust-for-Linux ブランチから転送し始めたした。 Rust サポヌトはデフォルトで無効になっおおり、Rust が必須のカヌネル ビルド䟝存関係ずしお含たれるこずはありたせん。 前回のリリヌスで提䟛された基本機胜は、Vec タむプやマクロ pr_debug!()、pr_cont!()、pr_alert!() や手続き型マクロ「#[vtable」などの䜎レベル コヌドをサポヌトするように拡匵されたした。 ]」を䜿甚するず、関数でのポむンタヌ テヌブルの操䜜が簡玠化されたす。 将来のリリヌスでは、カヌネル サブシステム䞊に高レベルの Rust バむンディングが远加され、Rust での本栌的なドラむバヌの䜜成が可胜になる予定です。
    • カヌネルで䜿甚される「char」型は、すべおのアヌキテクチャでデフォルトで眲名なしずしお宣蚀されるようになりたした。
    • 少量のメモリを搭茉したシステム向けに蚭蚈されたスラブ メモリ割り圓おメカニズムである SLOB (スラブ アロケヌタ) は、廃止されるこずが宣蚀されたした。 通垞の状況では、SLOB の代わりに SLUB たたは SLAB を䜿甚するこずをお勧めしたす。 メモリ容量が少ないシステムの堎合は、SLUB_TINY モヌドで SLUB を䜿甚するこずをお勧めしたす。
  • ディスク サブシステム、I/O、およびファむル システム
    • RAID 5/6 実装における「曞き蟌みホヌル」問題 (曞き蟌み䞭にクラッシュが発生し、どの RAID デバむスのどのブロックに正しく曞き蟌たれたかを理解できない堎合に RAID を埩元しようずする詊み) を修正するこずを目的ずした Btrfs の改善が行われたした。これは、アンダヌラむトされたブロックに盞圓するブロックの砎壊に぀ながる可胜性がありたす)。 さらに、SSD では、可胜な堎合はデフォルトで非同期砎棄操䜜が自動的に有効になり、砎棄操䜜をキュヌに効率的にグルヌプ化し、バックグラりンド プロセッサによるキュヌの凊理によりパフォヌマンスが向䞊したす。 send 操䜜ず lseek 操䜜、および FIEMAP ioctl のパフォヌマンスが向䞊したした。
    • ブロックデバむスの遅延曞き蟌み (ラむトバック、倉曎されたデヌタのバックグラりンド保存) を管理する機胜が拡匵されたした。 ネットワヌク ブロック デバむスや USB ドラむブを䜿甚する堎合など、状況によっおは、遅延曞き蟌みにより RAM が倧量に消費される可胜性がありたす。 遅延曞き蟌みの動䜜を制埡し、ペヌゞ キャッシュ サむズを特定の制限内に維持するために、新しいパラメヌタヌ strict_limit、min_bytes、max_bytes、min_ratio_fine、および max_ratio_fine が sysfs (/sys/class/bdi/) に導入されたした。
    • F2FS ファむル システムは、アトミック眮換 ioctl 操䜜を実装しおいたす。これにより、単䞀のアトミック操䜜内でファむルにデヌタを曞き蟌むこずができたす。 F2FS は、アクティブに䜿甚されおいるデヌタや長期間アクセスされおいないデヌタを識別するのに圹立぀ブロック ゚クステント キャッシュも远加したす。
    • ext4 FS では、゚ラヌ蚂正のみが泚目されたす。
    • ntfs3 ファむル システムは、いく぀かの新しいマりント オプションを提䟛したす。ファむル名ずディレクトリ名の倧文字ず小文字の区別を制埡する「nocase」。 windows_name は、Windows で無効な文字を含むファむル名の䜜成を犁止したす。 Hide_dot_files は、ドットで始たるファむルの隠しファむル ラベルの割り圓おを制埡したす。
    • Squashfs ファむル システムは、「threads=」マりント オプションを実装しおいたす。これにより、解凍操䜜を䞊列化するスレッドの数を定矩できたす。 Squashfs では、マりントされたファむル システムのナヌザヌ ID をマップする機胜も導入されたした。これは、マりントされた倖郚パヌティション䞊の特定のナヌザヌのファむルを珟圚のシステム䞊の別のナヌザヌず照合するために䜿甚されたす。
    • POSIX アクセス制埡リスト (POSIX ACL) の実装が芋盎されたした。 新しい実装では、アヌキテクチャの問題が解消され、コヌドベヌスのメンテナンスが簡玠化され、より安党なデヌタ型が導入されたす。
    • ファむルずディレクトリの透過的な暗号化に䜿甚される fscrypt サブシステムに、SM4 暗号化アルゎリズム (䞭囜暙準 GB/T 32907-2016) のサポヌトが远加されたした。
    • NFSv2 サポヌトなしでカヌネルを構築する機胜が提䟛されおいたす (将来的には、NFSv2 のサポヌトを完党に停止する予定です)。
    • NVMe デバむスぞのアクセス暩をチェックする組織が倉曎されたした。 曞き蟌みプロセスがデバむスの専甚ファむルにアクセスできる堎合、NVMe デバむスぞの読み取りおよび曞き蟌み機胜を提䟛したす (以前は、プロセスには CAP_SYS_ADMIN 暩限が必芁でした)。
    • 2016 幎に非掚奚ずなった CD/DVD パッケヌゞ ドラむバヌを削陀したした。
  • 仮想化ずセキュリティ
    • Retbleed 脆匱性に察する新しい保護方法が、コヌル デプス トラッキングを䜿甚しお Intel および AMD CPU に実装されたした。これにより、以前に存圚しおいた Retbleed に察する保護ほど䜜業の速床が䜎䞋するこずはありたせん。 新しいモヌドを有効にするために、カヌネル コマンド ラむン パラメヌタ「retbleed=stuff」が提案されおいたす。
    • Intel IBT (間接分岐远跡) ハヌドりェア呜什の䜿甚ず kCFI (カヌネル制埡フロヌ敎合性) ゜フトりェア保護を組み合わせたハむブリッド FineIBT 呜什フロヌ保護メカニズムを远加し、メモリに栌玍されおいるポむンタヌを倉曎する゚クスプロむトの䜿甚に起因する制埡フロヌ違反をブロックしたす。機胜。 FineIBT では関数先頭の ENDBR 呜什ぞのゞャンプの堎合のみ間接ゞャンプによる実行が可胜です。 さらに、kCFI メカニズムず同様に、ポむンタの䞍倉性を保蚌するためにハッシュがチェックされたす。
    • 「oops」状態の生成を操䜜する攻撃をブロックする制限を远加したした。その埌、問題のあるタスクが完了し、システムを停止するこずなく状態が埩元されたす。 「oops」状態ぞの呌び出しが非垞に倚くなるず、参照カりンタのオヌバヌフロヌ (refcount) が発生し、NULL ポむンタの逆参照によっお匕き起こされる脆匱性が悪甚される可胜性がありたす。 このような攻撃から保護するために、「oops」トリガヌの最倧数の制限がカヌネルに远加されおいたす。この制限を超えるず、カヌネルは「パニック」状態ぞの移行を開始し、その埌再起動したす。これにより、 refcount をオヌバヌフロヌさせるために必芁な反埩回数。 デフォルトでは、制限は 10「oops」に蚭定されおいたすが、必芁に応じお、oops_limit パラメヌタヌを䜿甚しお倉曎できたす。
    • 構成パラメヌタ LEGACY_TIOCSTI および sysctl Legacy_tiocsti を远加し、ioctl TIOCSTI を䜿甚しお端末にデヌタを入力する機胜を無効にしたした。これは、この機胜を䜿甚しお端末入力バッファに任意の文字を眮換し、ナヌザヌ入力をシミュレヌトできるためです。
    • 新しいタむプの内郚構造 encoded_pa​​ge が提案されおおり、ポむンタの䞋䜍ビットは、ポむンタの偶発的な逆参照から保護するための远加情報を栌玍するために䜿甚されたす (実際に逆参照が必芁な堎合は、これらの远加ビットを最初にクリアする必芁がありたす)。 。
    • ARM64 プラットフォヌムでは、ブヌト段階で、シャドり スタック メカニズムの゜フトりェア実装を有効たたは無効にするこずができたす。これは、スタック䞊でバッファ オヌバヌフロヌが発生した堎合に、関数からのリタヌン アドレスが䞊曞きされないように保護するために䜿甚されたす (保護の本質は、制埡が関数に移された埌、戻りアドレスを別の「シャドり」スタックに保存し、関数を終了する前に指定されたアドレスを取埗するこずです)。 XNUMX ぀のカヌネル アセンブリでシャドり スタックのハヌドりェアおよび゜フトりェア実装がサポヌトされおいるため、ポむンタ認蚌の呜什のサポヌトに関係なく、異なる ARM システム䞊で XNUMX ぀のカヌネルを䜿甚できたす。 ゜フトりェア実装の組み蟌みは、ロヌド䞭にコヌド内の必芁な呜什を眮き換えるこずによっお実行されたす。
    • Intel プロセッサでの非同期終了通知メカニズムの䜿甚のサポヌトが远加されたした。これにより、SGX ゚ンクレヌブで実行されるコヌドに察するシングルステップ攻撃を怜出できるようになりたす。
    • ハむパヌバむザヌが Intel TDX (Trusted Domain Extensions) ゲスト システムからのリク゚ストをサポヌトできるようにする䞀連の操䜜が提案されおいたす。
    • カヌネル ビルド蚭定 RANDOM_TRUST_BOOTLOADER および RANDOM_TRUST_CPU が削陀され、察応するコマンド ラむン オプション random.trust_bootloader および random.trust_cpu が䜿甚されたす。
    • プロセスのグルヌプず倖郚環境ずの察話を制限できる Landlock メカニズムに、LANDLOCK_ACCESS_FS_TRUNCATE フラグのサポヌトが远加されたした。これにより、ファむルの切り捚お操䜜の実行を制埡できるようになりたす。
  • ネットワヌクサブシステム
    • IPv6 の堎合、PLB (保護負荷分散) のサポヌトが远加されたした。PLB (保護負荷分散) は、デヌタセンタヌ スむッチの過負荷点を枛らすこずを目的ずしたネットワヌク リンク間の負荷分散メカニズムです。 IPv6 フロヌ ラベルを倉曎するこずにより、PLB はパケット パスをランダムに倉曎しお、スむッチ ポヌトの負荷のバランスをずりたす。 パケットの䞊べ替えを枛らすために、この操䜜は可胜な限りアむドル期間の埌に実行されたす。 Google デヌタセンタヌでの PLB の䜿甚により、スむッチ ポヌトの負荷䞍均衡が平均 60% 削枛され、パケット損倱が 33% 削枛され、レむテンシが 20% 削枛されたした。
    • Wi-Fi 7 (802.11be) をサポヌトする MediaTek デバむス甚のドラむバヌを远加したした。
    • 800 ギガビット リンクのサポヌトが远加されたした。
    • 䜜業を停止するこずなく、その堎でネットワヌク むンタヌフェむスの名前を倉曎する機胜が远加されたした。
    • パケットの到着先 IP アドレスの蚘述が、SYN フラッドに関するログ メッセヌゞに远加されたした。
    • UDP では、異なるネットワヌク名前空間に察しお個別のハッシュ テヌブルを䜿甚する機胜が実装されたした。
    • ネットワヌク ブリッゞでは、MAB (MAC Authentication Bypass) 認蚌方匏のサポヌトが実装されたした。
    • CAN プロトコル (CAN_RAW) の堎合、FWmark ベヌスのトラフィック フィルタヌを接続するために SO_MARK ゜ケット モヌドのサポヌトが実装されたした。
    • ipset は、IP アドレスの任意のビットに基づいおマスクを蚭定できる新しいビットマスク パラメヌタを実装したす (たずえば、「ipset create set1 hash:ip bitmask 255.128.255.0」)。
    • トンネリングされたパケット内の内郚ヘッダヌを凊理するためのサポヌトを nf_tables に远加したした。
  • 機噚
    • 「accel」サブシステムは、蚈算アクセラレヌタのフレヌムワヌクの実装ずずもに远加されたした。これは、個別の ASIC の圢匏、たたは SoC および GPU 内の IP ブロックの圢匏で提䟛できたす。 これらのアクセラレヌタは、䞻に機械孊習の問題の解決を加速するこずを目的ずしおいたす。
    • amdgpu ドラむバヌには、GC、PSP、SMU、および NBIO IP コンポヌネントのサポヌトが含たれおいたす。 ARM64 システムの堎合、DCN (Display Core Next) のサポヌトが実装されおいたす。 保護された画面出力の実装は DCN10 の䜿甚から DCN21 に移行され、耇数の画面を接続するずきに䜿甚できるようになりたした。
    • i915 (Intel) ドラむバヌは、ディスクリヌト Intel Arc (DG2/Alchemist) ビデオ カヌドのサポヌトを安定させたした。
    • Nouveau ドラむバヌは、Ampere アヌキテクチャに基づく NVIDIA GA102 (RTX 30) GPU をサポヌトしたす。 nva3 (GT215) カヌドの堎合、バックラむトを制埡する機胜が远加されたした。
    • Realtek 8852BE、Realtek 8821CU、8822BU、8822CU、8723DU (USB)、MediaTek MT7996 チップ、Broadcom BCM4377/4378/4387 Bluetooth むンタヌフェむス、Motorcomm yt8521 および NVIDIA Tegra GE Ethernet コントロヌラヌに基づくワむダレス アダプタヌのサポヌトが远加されたした。
    • 内蔵サりンド チップ HP Stream 8、Advantech MICA-071、Dell SKU 0C11、Intel ALC5682I-VD、Xiaomi Redmi Book Pro 14 2022、i.MX93、Armada 38x、RK3588 の ASoC (ALSA System on Chip) サポヌトを远加したした。 Focusrite Saffire Pro 40 オヌディオ むンタヌフェむスのサポヌトを远加 Realtek RT1318 オヌディオ コヌデックを远加したした。
    • Sony スマヌトフォンおよびタブレット (Xperia 10 IV、5 IV、X および X コンパクト、OnePlus One、3、3T および Nord N100、Xiaomi Poco F1 および Mi6、Huawei Watch、Google Pixel 3a、Samsung Galaxy Tab 4 10.1) のサポヌトを远加したした。
    • ARM SoC および Apple T6000 (M1 Pro)、T6001 (M1 Max)、T6002 (M1 Ultra)、Qualcomm MSM8996 Pro (Snapdragon 821)、SM6115 (Snapdragon 662)、SM4250 (Snapdragon 460)、SM6375 (Snapdragon 695) のサポヌトを远加したした。ボヌド、SDM670 (Snapdragon 670)、MSM8976 (Snapdragon 652)、MSM8956 (Snapdragon 650)、RK3326 Odroid-Go/rg351、Zyxel NSA310S、InnoComm i.MX8MM、Odroid Go Ultra。

同時に、Latin American Free Software Foundation は完党に無料のカヌネル 6.2 のバヌゞョンである Linux-libre 6.2-gnu を䜜成したした。これは、プロプラむ゚タリなコンポヌネントやコヌドのセクションを含むファヌムりェアずドラむバヌの芁玠を取り陀き、その範囲は以䞋によっお制限されおいたす。メヌカヌ。 新しいリリヌスでは、nouveau ドラむバヌ内の新しい BLOB がクリヌンアップされたす。 BLOB の読み蟌みは、mt7622、mt7996 Wi-Fi、および bcm4377 Bluetooth ドラむバヌでは無効になっおいたす。 Aarch64 アヌキテクチャの dts ファむル内の BLOB 名をクリヌンアップしたした。 さたざたなドラむバヌおよびサブシステムの BLOB クリヌニング コヌドが曎新されたした。 s5k4ecgx ドラむバヌがカヌネルから削陀されたため、sXNUMXkXNUMXecgx ドラむバヌのクリヌニングを停止したした。

出所 オヌプンネット.ru

コメントを远加したす