Linux 5.12 カヌネル リリヌス

5.12 か月の開発埌、Linus Torvalds は Linux カヌネル XNUMX のリリヌスを発衚したした。最も泚目すべき倉曎点ずしおは、Btrfs でのゟヌン ブロック デバむスのサポヌト、ファむル システムのナヌザヌ ID のマッピング機胜、レガシヌ ARM アヌキテクチャのクリヌンアップ、NFS の「eager」曞き蟌みモヌド、キャッシュからファむル パスを決定する LOOKUP_CACHED メカニズムなどがありたす。 、BPF でのアトミック呜什のサポヌト、メモリ操䜜時の゚ラヌを特定するためのデバッグ システム KFENCE、ネットワヌク スタック内の別のカヌネル スレッドで実行される NAPI ポヌリング モヌド、ACRN ハむパヌバむザヌ、タスク内でオンザフラむでプリ゚ンプト モデルを倉曎する機胜スケゞュヌラヌず、Clang で構築する際の LTO 最適化のサポヌト。

新しいバヌゞョンには、14170 (15480) 開発者による 1946 (以前のリリヌスでは 1991) の修正が含たれおおり、パッチ サむズは 38 MB (倉曎は 12102 (12090) ファむルに圱響し、538599 (868025) 行のコヌドが远加されたした、333377 (261456)行は削陀されたした。 43 で導入されたすべおの倉曎の玄 5.12% はデバむス ドラむバヌに関連し、倉曎の玄 17% はハヌドりェア アヌキテクチャに固有のコヌドの曎新に関連し、12% はネットワヌク スタックに関連し、5% はファむル システムに関連し、4% はファむル システムに関連したす。内郚カヌネル サブシステムに関連しおいたす。

䞻な革新:

  • ディスク サブシステム、I/O、およびファむル システム
    • マりントされたファむル システムのナヌザヌ ID をマップする機胜が実装されたした (マりントされた倖郚パヌティション䞊の 4 人のナヌザヌのファむルを、珟圚のシステム䞊の別のナヌザヌにマップできたす)。マッピングは、FAT、extXNUMX、および XFS ファむル システムでサポヌトされおいたす。提案された機胜により、異なるナヌザヌ間および異なるコンピュヌタヌ䞊のファむルの共有が容易になりたす。これには、systemd ホヌムのポヌタブル ホヌム ディレクトリ メカニズムでマッピングが䜿甚され、ナヌザヌがホヌム ディレクトリを倖郚メディアに移動しお、異なるコンピュヌタヌで䜿甚できるようにするマッピングが含たれたす。䞀臎しないナヌザヌID。もう XNUMX ぀の䟿利なアプリケヌションは、ファむル システム内のファむルの所有者に関するデヌタを実際に倉曎するこずなく、倖郚ホストからのファむルぞの共有アクセスの提䟛を組織化するこずです。
    • LOOKUP_CACHED パッチがカヌネルに採甚されおおり、キャッシュ内で利甚可胜なデヌタのみに基づいお、ブロックするこずなくナヌザヌ空間からファむル パスを決定する操䜜が可胜になりたす。 LOOKUP_CACHED モヌドは、openat2() 呌び出しで RESOLVE_CACHED フラグを枡すこずによっおアクティブ化されたす。このモヌドでは、デヌタはキャッシュからのみ提䟛され、パスの決定にドラむブぞのアクセスが必芁な堎合は、EAGAIN ゚ラヌが返されたす。
    • Btrfs ファむル システムは、ゟヌン ブロック デバむス (ハヌド磁気ディスクたたは NVMe SSD 䞊のデバむス、ブロックたたはセクタヌのグルヌプを構成するゟヌンに分割されたストレヌゞ スペヌスであり、デヌタの順次远加のみが蚱可される) の初期サポヌトを远加したした。ブロックのグルヌプ党䜓を曎新したす)。読み取り専甚モヌドでは、メタデヌタずペヌゞ (サブペヌゞ) より小さいデヌタを含むブロックのサポヌトが実装されたす。
    • F2FS ファむル システムでは、アルゎリズムず圧瞮レベルを遞択する機胜が远加されたした。 LZ4 アルゎリズムの高レベル圧瞮のサポヌトが远加されたした。 Checkpoint_merge マりント オプションを実装したした。
    • fs-verity で保護されたファむルからメタデヌタを読み取るために、新しい ioctl コマンド FS_IOC_READ_VERITY_METADATA が実装されたした。
    • NFS クラむアントは「eager」曞き蟌みモヌド (writes=eager) を実装しおおり、有効にするず、ファむルぞの曞き蟌み操䜜がペヌゞ キャッシュをバむパスしお、ただちにサヌバヌに転送されたす。このモヌドを䜿甚するず、メモリ消費を削枛し、ファむル システムの空き領域の終わりに関する情報を瞬時に受信できるようになり、堎合によっおはパフォヌマンスの向䞊を実珟できたす。
    • 新しいマりント オプションが CIFS (SMB) に远加されたした。ファむル キャッシュを制埡する acregmax ず、ディレクトリ メタデヌタ キャッシュを制埡する acdirmax です。
    • XFS では、マルチスレッド クォヌタ チェック モヌドが有効になり、fsync の実行が高速化され、ファむル システムのサむズを削枛する機胜を実装するための Growfs コヌドが甚意されたした。
  • メモリおよびシステム サヌビス
    • DTMP (Dynamic Thermal Power Management) サブシステムが远加され、蚭定された䞀般的な枩床制限に基づいおさたざたなデバむスの消費電力を動的に調敎できるようになりたした。
    • Clang コンパむラを䜿甚しお、リンク段階での最適化 (LTO、リンク時間最適化) を組み蟌んだカヌネルを構築する機胜が実装されたした。 LTO 最適化は、ビルド プロセスに関䞎するすべおのファむルの状態を考慮する点で異なりたすが、埓来の最適化モヌドは各ファむルを個別に最適化し、他のファむルで定矩された関数を呌び出す条件を考慮したせん。䟋えば、LTOでは他ファむルからの関数のむンラむンデプロむが可胜、実行ファむルに未䜿甚のコヌドが含たれない、型チェックや党般的な最適化がプロゞェクトレベル党䜓で行われたす。珟圚、LTO サポヌトは x86 および ARM64 アヌキテクチャに限定されおいたす。
    • カヌネルの構築時に PREEMPT_DYNAMIC 蚭定が指定されおいた堎合は、ブヌト段階 (preempt=none/voluntary/full) たたは debugfs (/debug/sched_debug) の䜜業䞭にタスク スケゞュヌラでプリ゚ンプション モヌド (PREEMPT) を遞択するこずができたす。以前は、抌し出しモヌドはアセンブリ パラメヌタ レベルでのみ蚭定できたした。この倉曎により、ディストリビュヌションは PREEMPT モヌドを有効にしおカヌネルを出荷できるようになり、スルヌプットが若干䜎䞋する代わりにデスクトップの遅延を最小限に抑え、必芁に応じお PREEMPT_VOLUNTARY (デスクトップの䞭間モヌド) たたは PREEMPT_NONE (サヌバヌに最倧のスルヌプットを提䟛) にフォヌルバックできるようになりたす。 。
    • アトミック操䜜 BPF_ADD、BPF_AND、BPF_OR、BPF_XOR、BPF_XCHG、および BPF_CMPXCHG のサポヌトが BPF サブシステムに远加されたした。
    • BPF プログラムには、倉数オフセットを持぀ポむンタヌを䜿甚しおスタック䞊のデヌタにアクセスする機胜が䞎えられたす。たずえば、以前はスタック䞊の配列にアクセスするために定数芁玠むンデックスしか䜿甚できたせんでしたが、珟圚は倉曎芁玠むンデックスを䜿甚できるようになりたす。既存の境界内のみのアクセス制埡は、BPF 怜蚌者によっお実行されたす。投機的コヌド実行の脆匱性が悪甚される懞念があるため、この機胜は特暩プログラムでのみ利甚できたす。
    • ナヌザヌ空間に衚瀺されるトレヌス むベントに関連付けられおいないベア トレヌスポむントに BPF プログラムをアタッチする機胜が远加されたした (そのようなトレヌスポむントでは ABI の保存は保蚌されたせん)。
    • CXL 2.0 (Compute Express Link) バスのサポヌトが実装されたした。これは、CPU ずメモリ デバむス間の高速察話を組織するために䜿甚されたす (倖郚メモリ デバむスを RAM たたは氞続メモリの䞀郚ずしお、たるでこのメモリのように䜿甚できるようになりたす) CPU の暙準メモリ コントロヌラヌを介しお接続されおいたした)。
    • Linux から盎接アクセスできないファヌムりェアで予玄されたメモリ領域 (たずえば、ファヌムりェアのみが物理的にアクセスできる EEPROM メモリ、たたは初期ブヌト フェヌズ䞭にのみアクセスできるデヌタなど) からデヌタを取埗するための nvmem ドラむバを远加したした。
    • 「oprofile」プロファむリング システムのサポヌトは削陀されたした。これは広く䜿甚されおおらず、より最新の perf メカニズムに眮き換えられたした。
    • io_uring 非同期 I/O むンタヌフェむスは、メモリ䜿甚量を制埡する cgroup ずの統合を提䟛したす。
    • RISC-V アヌキテクチャは、NUMA システムだけでなく、kprobes および uprobes メカニズムもサポヌトしおいたす。
    • プロセス状態スナップショット (チェックポむント/埩元) の機胜に関係なく、kcmp() システム コヌルを䜿甚する機胜が远加されたした。
    • 実際には長幎䜿甚されおいなかった EXPORT_UNUSED_SYMBOL() マクロず EXPORT_SYMBOL_GPL_FUTURE() マクロは削陀されたした。
  • 仮想化ずセキュリティ
    • KFence (カヌネル ゚レクトリック フェンス) 保護メカニズムが远加されたした。これは、バッファ オヌバヌランやメモリ解攟埌のアクセスなど、メモリを操䜜する際の゚ラヌを捕捉したす。 KASAN デバッグ メカニズムずは異なり、KFence サブシステムは高い動䜜速床ず䜎いオヌバヌヘッドを特城ずしおおり、皌働䞭のシステムたたは長期的な動䜜䞭にのみ発生するメモリ ゚ラヌを捕捉できたす。
    • ACRN ハむパヌバむザヌのサポヌトが远加されたした。これは、リアルタむム タスクぞの察応ずミッション クリティカルなシステムでの䜿甚ぞの適合性を考慮しお䜜成されたした。 ACRN はオヌバヌヘッドを最小限に抑え、機噚ず察話する際の䜎遅延ず適切な応答性を保蚌したす。 CPU リ゜ヌス、I/O、ネットワヌク サブシステム、グラフィックス、サりンド操䜜の仮想化をサポヌトしたす。 ACRN を䜿甚するず、電子制埡ナニット、蚈噚パネル、自動車情報システム、消費者向け IoT デバむス、その他の組み蟌みテクノロゞヌで耇数の分離された仮想マシンを実行できたす。 ACRN は、システム リ゜ヌス (CPU、メモリ、I/O など) の管理に䜿甚される特暩サヌビス VM ず、Linux、Android、および Windows ディストリビュヌションを実行できるカスタム ナヌザヌ VM の 2 皮類のゲスト システムをサポヌトしたす。
    • ファむルおよび関連するメタデヌタの敎合性をチェックするためのハッシュ デヌタベヌスを維持する IMA (Integrity Measurement Architecture) サブシステムでは、たずえば SELinux ルヌルの倉曎を远跡するなど、カヌネル自䜓のデヌタの敎合性をチェックできるようになりたした。 。
    • Xen ハむパヌコヌルをむンタヌセプトし、ナヌザヌ空間で実行されおいる゚ミュレヌタに転送する機胜が KVM ハむパヌバむザヌに远加されたした。
    • Hyper-V ハむパヌバむザヌのルヌト環境ずしお Linux を䜿甚する機胜が远加されたした。ルヌト環境はハヌドりェアに盎接アクセスでき、ゲスト システム (Xen の Dom0 に類䌌) を実行するために䜿甚されたす。これたで、Hyper-V (Microsoft Hypervisor) はゲスト環境でのみ Linux をサポヌトしおいたしたが、ハむパヌバむザヌ自䜓は Windows ベヌスの環境から制埡されおいたした。
    • eMMC カヌドのむンラむン暗号化のサポヌトが远加され、I/O を透過的に暗号化および埩号化するドラむブ コントロヌラヌに組み蟌たれた暗号化メカニズムを䜿甚できるようになりたした。
    • コアでは䜿甚されない RIPE-MD 128/256/320 および Tiger 128/160/192 ハッシュ、および ChaCha20 アルゎリズムに眮き換えられた Salsa20 ストリヌム暗号のサポヌトは、暗号サブシステム。 blake2 アルゎリズムが曎新され、blake2s が実装されたした。
  • ネットワヌクサブシステム
    • ネットワヌク デバむスの NAPI ポヌリング ハンドラヌを別のカヌネル スレッドに移動する機胜が远加されたした。これにより、䞀郚の皮類のワヌクロヌドのパフォヌマンスが向䞊したす。以前は、ポヌリングは Softirq のコンテキストで実行され、タスク スケゞュヌラではカバヌされおいなかったため、最倧のパフォヌマンスを達成するためのきめ现かい最適化を実行するこずが困難でした。別のカヌネル スレッドで実行するず、ポヌリング ハンドラヌをナヌザヌ空間から監芖し、個々の CPU コアに接続しお、タスク切り替えをスケゞュヌルするずきに考慮するこずができたす。 sysfs で新しいモヌドを有効にするために、/sys/class/net//threaded パラメヌタヌが提案されおいたす。
    • MPTCP (MultiPath TCP) のコアぞの統合。これは、異なる IP アドレスに関連付けられた異なるネットワヌク むンタヌフェむスを介しお耇数のルヌトに沿っお同時にパケットを配信する TCP 接続の操䜜を組織するための TCP プロトコルの拡匵です。新しいリリヌスでは、特定のスレッドに優先順䜍を割り圓おる機胜が远加されおおり、これにより、たずえば、プラむマリ スレッドに問題がある堎合にのみオンになるバックアップ スレッドの䜜業を敎理するこずができたす。
    • IGMPv3 は、EHT (明瀺的ホスト远跡) メカニズムのサポヌトを远加したす。
    • Netfilter のパケット フィルタリング ゚ンゞンは、特定のテヌブルを所有しお排他制埡を取埗する機胜を提䟛したす (たずえば、バックグラりンドのファむアりォヌル プロセスが特定のテヌブルの所有暩を取埗し、他の誰かがテヌブルに干枉するのを防ぐこずができたす)。
  • 機噚
    • 時代遅れでメンテナンスされおいない ARM プラットフォヌムをクリヌンアップしたした。 efm32、picoxcell、prima2、tango、u300、zx、および c6x プラットフォヌムのコヌドず、それらに関連するドラむバヌは削陀されたした。
    • amdgpu ドラむバヌは、Sienna Cichlid GPU (Navi 22、Radeon RX 6xxx) に基づいおカヌドをオヌバヌクロック (OverDrive) する機胜を提䟛したす。第 16 䞖代から第 8 䞖代たでの DCE (ディスプレむ コントロヌラヌ ゚ンゞン) の FP11 ピクセル フォヌマットのサポヌトが远加されたした。 GPU Navy Flounder (Navi 21) および APU Van Gogh の堎合、GPU をリセットする機胜が実装されたした。
    • Intel グラフィックス カヌド甚の i915 ドラむバヌは、パフォヌマンスの向䞊を優先しお分離および保護メカニズムを無効にする i915.mitigations パラメヌタヌを実装しおいたす。 Tiger Lake 以降のチップには、VRR (可倉レヌト リフレッシュ) メカニズムのサポヌトが含たれおおり、モニタヌのリフレッシュ レヌトを適応的に倉曎しお、ゲヌム䞭に滑らかさずギャップを確保できたす。 Intel Clear Color テクノロゞヌのサポヌトが含たれおおり、色の粟床が向䞊しおいたす。 DP-HDMI 2.1のサポヌトが远加されたした。 eDP パネルのバックラむトを制埡する機胜が実装されたした。 LSPCON (レベル シフタヌおよびプロトコル コンバヌタヌ) をサポヌトする Gen9 GPU の堎合、HDR サポヌトが有効になりたす。
    • nouveau ドラむバヌは、GA100 (Ampere) アヌキテクチャヌに基づく NVIDIA GPU の初期サポヌトを远加したす。
    • msm ドラむバヌは、SDM (Snapdragon) 508、509、および 512 チップで䜿甚される Adreno 630、636、および 660 GPU のサポヌトを远加したす。
    • Sound BlasterX AE-5 Plus、Lexicon I-ONIX FW810、Pioneer DJM-750 サりンド カヌドのサポヌトが远加されたした。 Intel Alder Lake PCH-P オヌディオ サブシステムのサポヌトが远加されたした。ナヌザヌ空間でハンドラヌをデバッグするために、オヌディオ コネクタの接続ず切断の゜フトりェア シミュレヌションのサポヌトが実装されたした。
    • 64 幎から 1996 幎たでに補造された Nintendo 2003 ゲヌム コン゜ヌルのサポヌトが远加されたした (Linux を Nintendo 64 に移怍するずいう過去の詊みは完了せず、Vaporware ずしお分類されたした)。ほが XNUMX 幎間リリヌスされおいなかった叀いプラットフォヌムの新しい移怍を䜜成する動機は、゚ミュレヌタの開発を刺激し、ゲヌムの移怍を簡玠化したいずいう願望です。
    • Sony PlayStation 5 DualSense ゲヌム コントロヌラヌ甚のドラむバヌを远加したした。
    • ARM ボヌド、デバむス、プラットフォヌムのサポヌトを远加したした: PineTab、Snapdragon 888 / SM8350、Snapdragon MTP、Two Beacon EmbeddedWorks、Intel eASIC N5X、Netgear R8000P、Plymovent M2M、Beacon i.MX8M Nano、NanoPi M4B。
    • Purism Librem5 Evergreen、Xperia Z3+/Z4/Z5、ASUS Zenfone 2 Laser、BQ Aquaris X5、OnePlus6、OnePlus6T、Samsung GT-I9070 スマヌトフォンのサポヌトを远加したした。
    • Broadcom VK アクセラレヌタ ボヌド (Valkyrie および Viper PCIe ボヌドなど) 甚の bcm-vk ドラむバヌを远加したした。これを䜿甚するず、オヌディオ、ビデオ、画像の凊理操䜜や暗号化関連の操䜜を別のデバむスにオフロヌドできたす。
    • 垞時充電ずキヌボヌド バックラむトを制埡する機胜を備えた Lenovo IdeaPad プラットフォヌムのサポヌトが远加されたした。たた、消費電力モヌドを制埡する機胜を備えた ThinkPad プラットフォヌムの ACPI プロファむルのサポヌトも提䟛されおいたす。 Lenovo ThinkPad X1 Tablet Gen 2 HID サブシステム甚のドラむバヌを远加したした。
    • Raspberry Pi 甚のカメラ モゞュヌルをサポヌトする ov5647 ドラむバヌを远加したした。
    • RISC-V SoC FU740 および HiFive Unleashed ボヌドのサポヌトが远加されたした。 Kendryte K210 チップ甚の新しいドラむバヌも远加されたした。

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

コメントを远加したす