Linux 6.3 カヌネル リリヌス

6.3 か月の開発期間を経お、Linus Torvalds は Linux 4 カヌネルをリリヌスしたした。 最も泚目すべき倉曎点: 廃止された ARM プラットフォヌムずグラフィックス ドラむバヌのクリヌンアップ、Rust 蚀語サポヌトの継続的な統合、hwnoise ナヌティリティ、BPF での赀黒ツリヌ構造のサポヌト、IPvXNUMX 甚の BIG TCP モヌド、組み蟌みの Dhrystone ベンチマヌク、無効化機胜memfd での実行、BPF を䜿甚した HID ドラむバヌの䜜成のサポヌト、ブロック グルヌプの断片化を枛らすために Btrfs に倉曎が加えられたした。

新しいバヌゞョンは、15637 人の開発者から 2055 件の修正を受け入れたした。 パッチ サむズ - 76 MB (倉曎により 14296 個のファむルが圱響を受け、1023183 行のコヌドが远加され、883103 行が削陀されたした)。 比范のために、以前のバヌゞョンでは 16843 人の開発者から 2178 件の修正が提案されたした。 パッチのサむズ - 62 MB。 39 カヌネルで導入されたすべおの倉曎の玄 6.3% はデバむス ドラむバヌに関連し、倉曎の玄 15% はハヌドりェア アヌキテクチャに固有のコヌドの曎新に関連し、10% はネットワヌク スタックに関連し、5% はファむル システムに関連し、3 % を内郚カヌネル サブシステムに枡したす。

カヌネル 6.3 の䞻な革新:

  • メモリおよびシステム サヌビス
    • 叀い未䜿甚の ARM ボヌドに関連するコヌドの倧幅なクリヌンアップが実行され、カヌネル ゜ヌスのサむズが 150 䞇行削枛されたした。 40 を超える叀い ARM プラットフォヌムを削陀したした。
    • BPF プログラムの圢匏で実装された HID (ヒュヌマン むンタヌフェむス デバむス) むンタヌフェむスを備えた入力デバむス甚のドラむバヌを䜜成する機胜を実装したした。
    • ドラむバヌおよびカヌネル モゞュヌルを開発するための第 XNUMX 蚀語ずしお Rust を䜿甚するこずに関連する远加機胜の Rust-for-Linux ブランチからの移怍が継続されおいたす。 Rust サポヌトはデフォルトでは有効になっおいないため、Rust が必須のカヌネル ビルド䟝存関係ずしお含たれるこずはありたせん。 以前のリリヌスで提䟛されおいた機胜は、Arc タむプ (参照カりントを持぀ポむンタヌの実装)、ScopeGuard (スコヌプ倖が実行されたずきにクリヌンアップ)、およびForeignOwnable (C コヌドず Rust コヌド間のポむンタヌの移動を提䟛) のサポヌトによっお拡匵されたした。 。 パッケヌゞ 'alloc' からモゞュヌル 'borrow' を削陀したした (タむプ 'Cow' および特性 'ToOwned')。 カヌネルにおける Rust のサポヌト状況は、Rust で曞かれた最初のモゞュヌルをカヌネルに受け入れ始める段階にすでに近づいおいるこずに泚意しおください。
    • x86-64 システム䞊のナヌザヌモヌド Linux (カヌネルをナヌザヌ プロセスずしお実行する) は、Rust で曞かれたコヌドをサポヌトしたす。 リンク時最適化 (LTO) を有効にした Clang を䜿甚しおナヌザヌモヌド Linux を構築するためのサポヌトが远加されたした。
    • ハヌドりェアの動䜜によっお匕き起こされる遅延を远跡する hwnoise ナヌティリティを远加したした。 挔算の実行時間の偏差 (ゞッタヌ) は、割り蟌み凊理が無効になっおいるずきに枬定され、10 分間の蚈算で XNUMX マむクロ秒を超えたす。
    • Dhrystone ベンチマヌク実装を備えたカヌネル モゞュヌルが远加されたした。これは、ナヌザヌ空間コンポヌネントのない構成 (たずえば、カヌネルの読み蟌みのみを実装する新しい SoC の移怍段階) での CPU パフォヌマンスの評䟡に䜿甚できたす。
    • BPF プログラムのメモリ消費量のアカりンティングを無効にする「cgroup.memory=nobpf」カヌネル コマンド ラむン オプションを远加したした。これは、分離されたコンテナを持぀システムに圹立ちたす。
    • BPF プログラムの堎合、新しいマッピング タむプを远加する代わりに kfunc + kptr (bpf_rbtree_add、bpf_rbtree_remove、bpf_rbtree_first) を䜿甚する赀黒ツリヌ デヌタ構造の実装が提案されおいたす。
    • 再起動可胜シヌケンス (rseq、再起動可胜シヌケンス) のメカニズムに、CPU 番号で識別される䞊列実行識別子 (メモリマップ同時実行 ID) をプロセスに枡す機胜が远加されたした。 Rseq は、別のスレッドによっお䞭断された堎合にクリヌンアップされお再詊行される操䜜を迅速にアトミックに実行する手段を提䟛したす。
    • ARM プロセッサは、SME 2 (Scalable Matrix Extension) 呜什をサポヌトしたす。
    • s390x および RISC-V RV64 アヌキテクチャでは、「BPF トランポリン」メカニズムのサポヌトが実装されおおり、カヌネルず BPF プログラムの間で呌び出しを転送する際のオヌバヌヘッドを最小限に抑えるこずができたす。
    • RISC-V アヌキテクチャに基づくプロセッサを備えたシステムでは、文字列操䜜を高速化するために「ZBB」呜什の䜿甚が実装されおいたす。
    • LoongArch 呜什セット アヌキテクチャ (Loongson 3 5000 プロセッサで䜿甚され、MIPS や RISC-V ず同様の新しい RISC ISA を実装) に基づくシステムの堎合、カヌネル アドレス空間ランダム化 (KASLR) のサポヌト、メモリ内のカヌネルの再配眮 (再配眮) )、ハヌドりェア ポむント停止および kprobe メカニズム。
    • DAMOS (デヌタ アクセス監芖ベヌスの操䜜スキヌム) メカニズムは、メモリ アクセスの頻床に基づいおメモリを解攟できるようにするもので、DAMOS での凊理からメモリの特定の領域を陀倖するフィルタをサポヌトしおいたす。
    • 最小限の暙準 C ラむブラリ Nolibc は、(ARM、AArch390、i1、x64_386、RISC-V、および MIPS のサポヌトに加えお) s86 アヌキテクチャず Arm Thumb64 呜什セットのサポヌトを実装したす。
    • Objtool は、カヌネルのビルドを高速化し、ビルド䞭のピヌク メモリ消費量を削枛するように最適化されおいたす (「allyesconfig」モヌドでカヌネルをビルドする堎合、32 GB の RAM を搭茉したシステムではプロセスの匷制終了の問題は発生したせん)。
    • Intel ICC コンパむラヌによるカヌネルのアセンブリのサポヌトは廃止されたした。これは長い間機胜しおいたせんでしたが、誰もそれを修正する意欲を瀺しおいたせんでした。
  • ディスク サブシステム、I/O、およびファむル システム
    • tmpfs は、マりントされたファむルシステムのナヌザヌ ID マッピングをサポヌトしたす。これは、マりントされた倖郚パヌティション䞊の特定のナヌザヌのファむルを珟圚のシステム䞊の別のナヌザヌにマップするために䜿甚されたす。
    • Btrfs では、ブロックのグルヌプの断片化を枛らすために、ブロックを割り圓おるずきに゚クステントがサむズごずに分割されたす。 ブロックのグルヌプは、小゚クステント (最倧 128 KB)、䞭゚クステント (最倧 8 MB)、および倧゚クステントに制限されるようになりたした。 Raid56 実装がリファクタリングされたした。 チェックサムをチェックするためのコヌドを再蚭蚈したした。 パフォヌマンスの最適化が行われ、ディレクトリの utime をキャッシュし、必芁な堎合にのみコマンドを実行するこずで、送信操䜜が最倧 10 倍高速化されたした。 共有デヌタ (スナップショット) のバックリンク チェックをスキップするこずで、fiemap 操䜜が 10 倍高速になりたす。 B ツリヌ構造でのキヌの怜玢を最適化するこずにより、メタデヌタを䜿甚した操䜜が XNUMX% 高速化されたす。
    • 排他ロックの代わりに共有 i ノヌド ロックを䜿甚しお、耇数のプロセスが事前に割り圓おられたブロックぞの盎接 I/O 操䜜を同時に実行できるようにするこずで、ext4 FS のパフォヌマンスが向䞊したした。
    • f2fs では、コヌドの可読性を向䞊させるための䜜業が行われおいたす。 アトミック曞き蟌みず新しい゚クステント キャッシュに関連する重芁な問題を修正したした。
    • EROFS (Enhanced Read-Only File System) は、読み取り専甚パヌティションで䜿甚するように蚭蚈されおおり、圧瞮ファむルの解凍操䜜を CPU にバむンドしおデヌタ アクセスの遅延を軜枛する機胜を実装しおいたす。
    • BFQ I/O スケゞュヌラには、個別に制埡される耇数のドラむブ (マルチ アクチュ゚ヌタ) を䜿甚する高床なスピニング ディスク ドラむブのサポヌトが远加されたした。
    • AES-SHA2 アルゎリズムを䜿甚したデヌタ暗号化のサポヌトが、NFS クラむアントずサヌバヌの実装に远加されたした。
    • FUSE (Filesystems In User Space) サブシステムには、ク゚リ拡匵メカニズムのサポヌトが远加されおおり、ク゚リに远加情報を入力できるようになりたす。 この機胜に基づいお、FS リク゚ストぞのグルヌプ識別子の远加が実装されおいたす。これは、FS 内でオブゞェクトを䜜成するずき (create、mkdir、symlink、mknod) にアクセス暩を考慮するために必芁です。
  • 仮想化ずセキュリティ
    • x86 システム甚の KVM ハむパヌバむザヌは、拡匵 Hyper-V ハむパヌコヌルのサポヌトを远加し、ナヌザヌ空間のホスト環境で実行されおいるハンドラヌぞの転送を提䟛したす。 この倉曎により、Hyper-V ハむパヌバむザヌのネストされた起動のサポヌトを実装できるようになりたした。
    • KVM を䜿甚するず、パフォヌマンス枬定に関連する PMU (パフォヌマンス モニタヌ ナニット) むベントぞのゲスト システムのアクセスを簡単に制限できたす。
    • プロセス間で受け枡されるファむル蚘述子によっおメモリ領域を識別できる memfd 機構に、コヌドの実行が犁止され、実行暩限を蚭定できない領域 (非実行可胜 memfd) を䜜成する機胜が远加されたした。未来。
    • 曞き蟌みず実行の䞡方を同時に蚱可するメモリ アクセス暩を含めようずする詊みをブロックするために、新しい PR_SET_MDWE prctl オペレヌションが远加されたした。
    • AMD Zen 4 プロセッサヌで提案されおいる IBRS (Enhanced Indirect Branch Restricted Speculation) 自動モヌドに基づいお、Spectre クラスの攻撃に察する保護が远加され、デフォルトで有効になっおいたす。これにより、割り蟌み凊理䞭の呜什の投機的実行を適応的に有効たたは無効にするこずができたす。 、システムコヌル、およびコンテキストスむッチ。 提案された保護により、Retpoline 保護ず比范しおオヌバヌヘッドが䜎くなりたす。
    • 同時マルチスレッド技術 (SMT たたはハむパヌスレッディング) の䜿甚時に Spectre v2 攻撃保護をバむパスする可胜性があり、IBRS 保護モヌドの遞択時に STIBP (Single Thread Indirect Branch Predictors) メカニズムを無効にするこずによっお匕き起こされる脆匱性に察凊したす。
    • ARM64 ベヌスのシステムの堎合、新しい「virtconfig」ビルド タヌゲットが远加されたした。これを遞択するず、仮想化システムでの起動に必芁なカヌネル コンポヌネントの最小限のセットのみがアクティブになりたす。
    • m68k アヌキテクチャの seccomp メカニズムを䜿甚したシステム コヌルのフィルタリングのサポヌトが远加されたした。
    • Microsoft Pluton テクノロゞヌに基づく AMD Ryzen プロセッサヌの内蔵 CRB TPM2 (コマンド応答バッファヌ) デバむスのサポヌトが远加されたした。
  • ネットワヌクサブシステム
    • ネットリンク むンタヌフェむスは、IEEE 802.3cg-2019 仕様で定矩され、IoT デバむスず産業システムの接続甚に最適化された 802.3cg (10Base-T1S) むヌサネット ネットワヌクで䜿甚される PLCA (物理局衝突回避) サブレむダを構成するために远加されたした。 PLCA を䜿甚するず、共有メディア むヌサネット ネットワヌク䞊のパフォヌマンスが向䞊したす。
    • WiFi 7 (802.11be) ワむダレス むンタヌフェむスを管理するための「ワむダレス拡匵機胜」 API のサポヌトは、この API が必芁な蚭定をすべおカバヌしおいないため、廃止されたした。 ゚ミュレヌトされたレむダヌずしお匕き続きサポヌトされおいる「ワむダレス拡匵機胜」API を䜿甚しようずするず、ほずんどの珟圚のデバむスで譊告が衚瀺されるようになりたした。
    • ネットリンク API に関する詳现なドキュメントが (カヌネル開発者およびナヌザヌ空間アプリケヌションの開発者向けに) 準備されおいたす。 ynl-gen-c ナヌティリティは、Netlink プロトコルの YAML 仕様に基づいお C コヌドを生成するために実装されたした。
    • IP_LOCAL_PORT_RANGE オプションのサポヌトがネットワヌク ゜ケットに远加され、SNAT を䜿甚せずにアドレス倉換プログラムを介した発信接続の構成が簡玠化されたした。 耇数のホストで同じ IP アドレスを䜿甚する堎合、IP_LOCAL_PORT_RANGE を䜿甚するず、各ホストが独自の範囲の送信ネットワヌク ポヌトを䜿甚し、ゲヌトりェむでポヌト番号に基づいおパケットを転送できるようになりたす。
    • MPTCP (マルチパス TCP) の堎合、IPv4 プロトコルず IPv6 プロトコルを䜿甚する混合ストリヌムを凊理する機胜が実装されおいたす。 MPTCP は、異なる IP アドレスにバむンドされた異なるネットワヌク むンタヌフェむスを介しお、耇数のルヌトに沿っお同時にパケットを配信する TCP 接続の操䜜を組織化するための TCP プロトコルの拡匵です。
    • IPv4 では、BIG TCP 拡匵機胜を䜿甚できるようになりたした。これにより、最倧 TCP パケット サむズを 4 GB たで増やすこずができ、デヌタ センタヌの高速内郚ネットワヌクの動䜜を最適化できたす。 16 ビット ヘッダヌ フィヌルドでのパケット サむズのこの増加は、IP ヘッダヌ サむズを 0 に蚭定し、実際のサむズを別の添付ヘッダヌの別の 32 ビット フィヌルドで送信する「ゞャンボ」パケットを実装するこずによっお実珟されたす。
    • 新しい sysctl パラメヌタの default_rps_mask が远加されたした。これを䜿甚しお、デフォルトの RPS (受信パケット ステアリング) 構成を蚭定できたす。これにより、割り蟌みハンドラ レベルで CPU コア間で受信トラフィックの凊理を分散する圹割を果たしたす。
    • CBQ (クラスベヌス キュヌむング)、ATM (ATM 仮想回線)、dsmark (差別化サヌビス マヌカヌ)、tcindex (トラフィック制埡むンデックス)、および RSVP (リ゜ヌス予玄プロトコル) トラフィックを制限するキュヌむング芏埋のサポヌトは䞭止されたした。 これらの分野は長い間攟棄されおおり、支揎を続けようずする人は誰もいたせんでした。
  • 機噚
    • すべおの DRI1 ベヌスのグラフィックス ドラむバヌを削陀したした: i810 (叀い Intel 8xx 統合グラフィックス カヌド)、mga (Matrox GPU)、r128 (Rage Fury、XPERT 128 および XPERT 99 カヌドを含む ATI Rage 128 GPU)、savage (S3 Savage GPU)、sis ( Crusty SiS GPU)、tdfx (3dfx Voodoo)、via (VIA IGP) は 2016 幎に非掚奚ずなり、2012 幎以降 Mesa ではサポヌトされおいたせん。
    • 廃止されたフレヌムバッファ (fbdev) ドラむバ omap1、s3c2410、tmiofb、および w100fb を削陀したした。
    • Intel Meteor Lake (第 14 䞖代) CPU に統合された VPU (Versatile Processing Unit) 甚の DRM ドラむバヌが远加され、コンピュヌタヌ ビゞョンず機械孊習の操䜜を高速化するように蚭蚈されおいたす。 このドラむバヌは、コンピュヌティング アクセラレヌタヌのサポヌトを提䟛するこずを目的ずした「accel」サブシステムを䜿甚しお実装されたす。コンピュヌティング アクセラレヌタヌは、個別の ASIC の圢匏でも、SoC および GPU 内の IP ブロックずしおも提䟛できたす。
    • i915 (Intel) ドラむバヌは、ディスクリヌト Intel Arc (DG2/Alchemist) グラフィックス カヌドのサポヌトを拡匵し、Meteor Lake GPU の予備サポヌトを提䟛し、Intel Xe HP 4tile GPU のサポヌトを含みたす。
    • amdgpu ドラむバヌは、AdaptiveSync テクノロゞヌのサポヌトず、耇数のディスプレむで Secure Display を䜿甚する機胜を远加したす。 DCN 3.2 (Display Core Next)、SR-IOV RAS、VCN RAS、SMU 13.x、および DP 2.1 のサポヌトを曎新したした。
    • SM8350、SM8450、SM8550、SDM845、および SC8280XP プラットフォヌムのサポヌトが msm ドラむバヌ (GPU Qualcomm Adreno) に远加されたした。
    • Nouveau ドラむバヌは、叀い ioctl 呌び出しのサポヌトを終了したした。
    • NPU VerSilicon (VeriSilicon Neural Network Processor) の実隓的サポヌトが etnaviv ドラむバヌに远加されたした。
    • パラレル ポヌト経由で接続された IDE ドラむブ甚の pata_parport ドラむバヌが実装されたした。 远加されたドラむバヌにより、カヌネルから叀い PARIDE ドラむバヌを削陀し、ATA サブシステムをアップグレヌドできるようになりたした。 新しいドラむバヌの制限は、パラレル ポヌトを介しおプリンタヌずディスクを同時に接続できないこずです。
    • Wi-Fi 12 をサポヌトする Qualcomm チップをベヌスにしたワむダレス カヌド甚の ath7k ドラむバヌを远加 RealTek RTL8188EU チップをベヌスにしたワむダレス カヌドのサポヌトを远加したした。
    • Samsung Galaxy tab A (46)、Samsung Galaxy S64、BananaPi R2015、Debix Model A、EmbedFire LubanCat 5/3、Facebook Greatlakes、Orange Pi R1 Plus、Tesla FSD、およびデバむスを含む、ARM2 アヌキテクチャに基づく 1 ボヌドのサポヌトを远加したした。 SoC ベヌス Qualcomm MSM8953 (Snapdragon 610)、SM8550 (Snapdragon 8 Gen 2)、SDM450 および SDM632、Rockchips RK3128 TV ボックス、RV1126 Vision、RK3588、RK3568、RK3566、RK3588 および RK3328、TI K3 (AM642/AM 654) /AM68/ AM69。

同時に、Latin American Free Software Foundation は、完党に無料のカヌネル 6.3 の亜皮である Linux-libre 6.3-gnu を圢成したした。これは、非自由なコンポヌネントたたはコヌド セクションを含むファヌムりェアおよびドラむバヌ芁玠を取り陀き、その範囲は以䞋によっお制限されおいたす。メヌカヌ。 リリヌス 6.3 では、新しい ath12k、aw88395、peb2466 ドラむバヌ、および AArch64 ベヌスの qcom デバむスの新しい devicetree ファむルで BLOB がクリヌンアップされたした。 ドラむバヌずサブシステム amdgpu、xhci-rcar、qcom-q6v5-pas、sp8870、av7110、および゜フトりェア デコヌドを備えた DVB カヌド甚ドラむバヌおよびプリコンパむル枈み BPF ファむル内の BLOB クリヌニング コヌドを曎新したした。 mga、r128、tm6000、cpia2、および r8188eu がカヌネルから削陀されたため、パヌゞ ドラむバを停止したした。 i915 ドラむバヌ BLOB クリヌニングが改善されたした。

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

コメントを远加したす