カヌネルリリヌス Linux 5.7

XNUMX か月の開発を経お、Linus Torvalds 氏は 玹介された カヌネルリリヌス Linux 5.7最も泚目すべき倉曎点ずしおは、exFAT FS の新しい実装、UDP トンネルを䜜成するための bareudp モゞュヌル、ARM64 のポむンタ認蚌に基づく保護、BPF プログラムを LSM ハンドラヌにアタッチする機胜、Curve25519 の新しい実装、「スプリットロック」怜出噚、PREEMPT_RT ずの BPF 互換性、コヌド内の 80 文字の行サむズ制限の削陀、タスク スケゞュヌラでの CPU 枩床むンゞケヌタの考慮、clone() を䜿甚しお別の cgroup でプロセスを生成する機胜、userfaultfd を䜿甚したメモリぞの曞き蟌みからの保護などがありたす。

新しいバヌゞョンには、15033 人の開発者による 1961 件の修正が含たれおいたす。
パッチサむズ - 39 MB (倉曎の圱響を受けるファむル 11590 個、远加されたコヌド 570560 行、
297401 行が削陀されたした)。 41 で提瀺された党䜓の玄 5.7%
倉曎はデバむスドラむバヌに関連しおおり、倉曎の玄 16% は
ハヌドりェア アヌキテクチャに固有のコヌドの曎新に察する態床、13%
ネットワヌク スタックに関連し、4% がファむル システムに、4% が内郚に関連
カヌネルサブシステム。

メむン むノベヌション:

  • ディスク サブシステム、I/O、およびファむル システム
    • exFATドラむバの新しい実装を远加したした。 蚭立された サムスンが開発した珟圚のコヌドベヌス「sdfat」2.x䞊で Android-スマヌトフォン。以前カヌネルに远加されおいたドラむバは、叀いSamsungコヌドバヌゞョン1.2.9に基づいおおり、新しいドラむバに比べおパフォヌマンスが玄10%劣っおいたした。念のため付け加えおおくず、カヌネルにexFATサポヌトを远加できるようになったのは、Microsoftが ПпублОкПвала 公開仕様曞を公開し、exFAT特蚱を無償で利甚できるようにした。 Linux.
    • Btrfsに新しいioctl()コマンドBTRFS_IOC_SNAP_DESTROY_V2が远加されたした。これにより、サブセクションを識別子で削陀できたす。むンラむン゚クステントのクロヌン䜜成が完党にサポヌトされおいたす。再配分キャンセルポむントの数が拡匵され、「balance cancel」コマンド実行時の長い埅機時間が短瞮されたした。゚クステントバックリンクの決定が高速化されたした䟋えば、テストシナリオの実行時間がXNUMX時間から数分に短瞮されたした。ファむル゚クステントツリヌを各inodeにアタッチする機胜が远加されたした。サブセクションぞの曞き蟌み時およびNOCOWの陀倖時に䜿甚されるロックスキヌムが再蚭蚈されたした。範囲に察するfsync実行の効率が向䞊したした。
    • XFSでは、アクティブパヌティションのメタデヌタチェックずfsck実行が改善されたした。Btree構造を再構築するためのラむブラリが提案されおおり、将来的にはxfs_repairの改良ず、パヌティションをアンマりントせずに埩元する機胜の実装に䜿甚される予定です。
    • CIFS は、SMB3 ストレヌゞぞのスワップパヌティションの配眮を詊隓的にサポヌトするようになりたした。SMB3.1.1 仕様で定矩されおいる readdir の POSIX 拡匵が実装されたした。cache=strict が有効でプロトコルバヌゞョン 64 以降を䜿甚しおいる堎合、2.1KB ペヌゞの曞き蟌みパフォヌマンスが向䞊したした。
    • EXT4 FS は bmap ず iopoll から iomap を䜿甚するように倉換されたした。
    • F2FSは、zstdアルゎリズムを甚いたデヌタ圧瞮のオプションサポヌトを実装したした。デフォルトでは、LZ4アルゎリズムが圧瞮に䜿甚されたす。「chattr -c commit」コマンドのサポヌトが远加されたした。マりント時間の衚瀺も提䟛されたす。圧瞮ブロック数に関する情報を取埗するためのioctl F2FS_IOC_GET_COMPRESS_BLOCKSが远加されたした。statx経由の圧瞮デヌタ出力も远加されたした。
    • Cephファむルシステムは、サヌバヌからの応答を埅たずにファむルの䜜成ず削陀リンク解陀をロヌカルで実行できるようになりたした非同期モヌドで動䜜。この倉曎により、䟋えばrsyncナヌティリティの実行時のパフォヌマンスが倧幅に向䞊したす。
    • OVERLAYFS は、トップレベルのファむルシステムずしお virtiofs の䜿甚をサポヌトするようになりたした。
    • 曞き盎し VFS パス トラバヌサル コヌド、再蚭蚈されたシンボリック リンク解析コヌド、および統合されたマりント ポむント トラバヌサル。
    • SCSIサブシステムでは、暩限のないナヌザヌが 蚱可された ZBC コマンドを実行しおいたす。
    • dm_writecache内 実装されたした ブロックの最倧有効期間を指定する max_age パラメヌタに基づいおキャッシュを埐々にクリアする機胜。
    • dm_integrityで 远加した 「砎棄」操䜜のサポヌト。
    • null_blk内 远加した テスト䞭に障害をシミュレヌトするための゚ラヌ眮換のサポヌト。
    • 远加した ブロックデバむスのサむズ倉曎に関する udev 通知を送信する機胜。
  • ネットワヌクサブシステム
    • ネットフィルタには 倉曎これにより、サブネット、ネットワヌク ポヌト、プロトコル、および MAC アドレスの組み合わせをチェックする必芁がある倧芏暡な䞀臎リスト (nftables セット) の凊理が倧幅に高速化されたす。
      最適化 入力されたした nft_set_pipapoPIle PAcket POliciesモゞュヌルに組み蟌み、IPアドレスやネットワヌクポヌトの範囲など、フィルタリングルヌルで䜿甚される任意の範囲のフィヌルド状態ずパケットの内容を照合する問題を解決したすnft_set_rbtreeずnft_set_hashは、区間䞀臎ず盎接的な倀反映を凊理したす。AMD Epyc 256プロセッサを搭茉したシステムで2ビットAVX7402呜什を䜿甚しおpipapoのベクトル化バヌゞョンを実行するず、ポヌトずプロトコルのペアを含む420件のレコヌドを解析する際に30%のパフォヌマンス向䞊が芋られたした。1000件のレコヌドを解析する際にサブネットずポヌト番号のペアを照合する際のパフォヌマンス向䞊は、IPv87で4%、IPv128で6%でした。
    • 远加した bareudp モゞュヌル。MPLS、IP、NSH などのさたざたな L3 プロトコルを UDP トンネルにカプセル化できたす。
    • 異なる IP アドレスに関連付けられた異なるネットワヌク むンタヌフェむスを通じお耇数のルヌトで同時にパケットを配信する TCP 接続の操䜜を敎理するための TCP プロトコルの拡匵機胜である MPTCP (MultiPath TCP) コンポヌネントの継続的な統合。
    • 远加した 802.11 (Wi-Fi) でのむヌサネット フレヌムのカプセル化のためのハヌドりェア アクセラレヌション メカニズムのサポヌト。
    • デバむスをあるネットワヌク名前空間から別のネットワヌク名前空間に移動するず、sysfs 内の察応するファむルのアクセス暩ず所有暩が調敎されたす。
    • 非ルヌトナヌザヌが SO_BINDTODEVICE フラグを䜿甚できるようにしたす。
    • パッチの3番目の郚分が承認され、ethtoolツヌルキットがioctl()からnetlinkむンタヌフェヌスを䜿甚するように倉曎されたした。新しいむンタヌフェヌスは、拡匵機胜の远加を簡玠化し、゚ラヌ凊理を改善し、状態倉化時の通知送信を可胜にし、カヌネルずナヌザヌ空間間のやり取りを簡玠化し、同期される名前付きリストの数を削枛したす。
    • 特殊なハヌドりェア アクセラレヌタを䜿甚しお接続远跡操䜜を実行する機胜を远加したした。
    • ネットフィルタヌ 远加されたした 送信パケット分類子 (出力) を接続するためのフック。これは、以前に存圚した受信パケット (入力) 甚のフックを補完するものです。
  • 仮想化ずセキュリティ
    • ポむンタ認蚌のハヌドりェア実装を远加ポむンタ認蚌は、特殊なARM64 CPU呜什を甚いお、リタヌン指向プログラミングROP手法を甚いた攻撃から保護したす。ROP手法では、攻撃者はコヌドをメモリ䞊に配眮するのではなく、ロヌド枈みのラむブラリに既に存圚するマシン呜什矀を操䜜し、最埌にリタヌン呜什で終了したす。この保護は、デゞタル眲名を甚いおカヌネルレベルでリタヌンアドレスを怜蚌するこずで実珟されたす。眲名はポむンタ自䜓の未䜿甚の䞊䜍ビットに栌玍されたす。゜フトりェア実装ずは異なり、デゞタル眲名の䜜成ず怜蚌は特殊なCPU呜什を甚いお実行されたす。
    • 远加した userfaultfd() システムコヌルを䜿甚しお、メモリ領域ぞの曞き蟌みを防止する機胜。このシステムは、ナヌザヌ空間におけるペヌゞフォヌルト未割り圓おメモリペヌゞぞのアクセスを凊理するように蚭蚈されおいたす。userfaultfd() を䜿甚するこずで、曞き蟌み保護されたペヌゞぞのアクセス違反を远跡し、そのような曞き蟌み詊行に反応するハンドラを呌び出すこずができたす䟋えば、実行䞭のプロセスのラむブスナップショット䞭の倉曎凊理、メモリをディスクにダンプする際の状態の修正、共有メモリの実装、メモリ内の倉曎の远跡など。機胜 同等 mprotect() を SIGSEGV シグナル ハンドラヌず組み合わせお䜿甚​​したすが、動䜜が著しく高速になりたす。
    • SEではLinux ルヌル凊理䞭にメモリ保護チェックを無効にするルヌルに関係なく実行可胜なメモリ領域を䜿甚できるようにするこずを可胜にする「checkreqprot」パラメヌタは非掚奚になりたした。Kernfsシンボリックリンクは、芪ディレクトリのコンテキストを継承できるようになりたした。
    • 構造 含たれおいたす モゞュヌル KRSIこれにより、カヌネル内の任意の LSM フックに BPF プログラムをアタッチできるようになりたす。この倉曎により、LSM モゞュヌルを䜜成できたす (Linux セキュリティモゞュヌルは、監査および匷制アクセス制埡の問題を解決するためのBPFプログラムの圢匏で提䟛されたす。
    • 実斜した RNG呜什を個別に呌び出す代わりにCRNG倀をバッチ凊理するこずで、/dev/randomのパフォヌマンスを最適化したした。RNG呜什を提䟛するARM64システムにおけるgetrandomず/dev/randomのパフォヌマンスが向䞊したした。
    • 楕円曲線実装 Curve25519 亀換された ラむブラリオプションぞ HACL、そのために 䞎えられた 正匏な信頌性怜蚌の数孊的蚌明。
    • 远加した 空きメモリペヌゞを通知するメカニズム。このメカニズムを利甚するこずで、ゲストシステムは䜿甚されなくなったペヌゞをホストシステムに通知し、ホストはそれらのペヌゞを取り戻すこずができたす。
    • vfio/pciの堎合 远加した SR-IOV (シングルルヌト I/O 仮想化) のサポヌト。
  • メモリおよびシステム サヌビス
    • 80文字から100文字 増加 ゜ヌスコヌドの最倧行長制限。開発者は匕き続き80行あたりXNUMX文字以内を掚奚されたすが、これはもはや厳栌な制限ではありたせん。さらに、行長制限を超えた堎合、checkpatchナヌティリティを「--strict」オプション付きで実行した堎合にのみ、アセンブリ䞭に譊告が衚瀺されるようになりたした。この倉曎により、開発者の䜜業の煩わしさを軜枛できたす。 操䜜 スペヌスを䜿甚しおコヌドを揃えるずきに、より自由に感じるこずができるだけでなく、 防ぎたす 過床の改行、 干枉する コヌドの認識ず怜玢。
    • 远加した 専甚のブヌトロヌダヌを䜿甚せずに、64 ビット CPU 䞊で実行されおいる 32 ビット ファヌムりェアから 64 ビット カヌネルをロヌドできる、混合 EFI ブヌト モヌドのサポヌト。
    • 有効 分割ロックを怜出しおデバッグするシステム"スプリットロック「」ず呌ばれる、メモリ内の敎列されおいないデヌタにアクセスするずきに発生するロックは、アトミック呜什の実行䞭にデヌタが CPU キャッシュの 1000 ぀のラむンにたたがるため発生したす。このようなロックはパフォヌマンスの倧幅な䜎䞋に぀ながりたす (デヌタが XNUMX ぀のキャッシュ ラむンに収たるアトミック操䜜よりも XNUMX サむクル遅くなりたす)。ブヌト パラメヌタ「split_lock_detect」に応じお、カヌネルはこのようなロックをオンザフラむで怜出し、譊告を出力したり、ロックの原因ずなったアプリケヌションに SIGBUS 信号を送信したりできたす。
    • タスクスケゞュヌラは枩床センサヌの読み取り倀の監芖を提䟛したす熱圧力を導入し、タスク配眮時に過熱を考慮する機胜を実装したした。提䟛される統蚈情報を䜿甚するこずで、枩床ハンドラヌサヌマルガバナヌは過熱時にCPUの最倧呚波数を調敎できるようになり、タスクスケゞュヌラはタスクの起動スケゞュヌル時に、このような呚波数䜎䞋による蚈算胜力の䜎䞋を考慮するようになりたした以前は、スケゞュヌラは呚波数の倉化に䞀定の遅延を䌎っお反応し、利甚可胜な蚈算リ゜ヌスに関する過倧な仮定に基づいお、ある皋床の時間をかけお決定を䞋しおいたした。
    • タスクスケゞュヌラは 䞍倉指暙 負荷远跡機胜により、CPU呚波数に関わらず、負荷を正確に掚定できるようになりたした。この倉曎により、電圧ずCPU呚波数が動的に倉化する状況におけるタスクの挙動をより正確に予枬できるようになりたす。䟋えば、呚波数が1MHzのずきにCPUリ゜ヌスの3/1000を消費しおいたタスクは、呚波数が2MHzに䜎䞋するずリ゜ヌスの3/500を消費するようになりたす。これは、以前はフル皌働しおいるずいう誀った想定を生み出しおいたした぀たり、スケゞュヌラのタスクは呚波数の䜎䞋によっおのみ増加しおいるように芋え、schedutil cpufreq ガバナヌで誀った刀断を䞋す原因ずなっおいたした。
    • パフォヌマンスモヌドの遞択を担圓するIntel P-stateドラむバヌは、 scheduleutil.
    • カヌネルがリアルタむムモヌドPREEMPT_RTで実行されおいるずきにBPFサブシステムを䜿甚する機胜を実装したした。以前は、PREEMPT_RTが有効になっおいるずBPFは無効になっおいたした。
    • 新しいタむプの BPF プログラム BPF_MODIFY_RETURN を远加したした。これはカヌネル内の関数にアタッチしお、その関数の戻り倀を倉曎するこずができたす。
    • 远加した 機䌚 clone3() システムコヌルを䜿甚しお、芪cgroupずは異なるcgroupにプロセスを䜜成したす。これにより、芪プロセスは新しいプロセスたたはスレッドの生成盎埌に制限を適甚し、アカりンティングを有効化できたす。䟋えば、サヌビスマネヌゞャは新しいサヌビスを別々のcgroupに盎接割り圓おるこずができ、新しいプロセスは「凍結」されたcgroupに配眮された時点で盎ちに停止されたす。
    • Kbuildで 远加した カヌネルビルド時にClang/LLVMツヌルチェヌンに切り替えるための「LLVM=1」環境倉数のサポヌト。binutilsバヌゞョン2.23の芁件を匕き䞊げたした。
    • kunit テスト結果を含む /sys/kernel/debug/kunit/ セクションを debugfs に远加したした。
    • カヌネル ブヌト パラメヌタ pm_debug_messages (類䌌 /sys/power/pm_debug_messages) が远加されたした。これにより、電源管理システムの動䜜に関するデバッグ情報の出力が可胜になりたす (スリヌプ モヌドずスタンバむ モヌドの問題をデバッグするずきに圹立ちたす)。
    • 非同期I/Oむンタヌフェヌスぞ io_uring サポヌトが远加されたした スプラむス О バッファのアトミック遞択.
    • perf による cgroup プロファむリングの改良。以前は、perf は特定の cgroup 内のタスクのプロファむリングしか行えず、珟圚のサンプルがどの cgroup に属しおいるかを知るこずができたせんでした。珟圚、perf は各サンプルの cgroup 情報を取埗し、耇数の cgroup のプロファむリングず゜ヌトを適甚できたす。
      レポヌト内の cgroup。
    • cgroupfs は cgroup を管理するための疑䌌 FS で、拡匵属性 (xattrs) のサポヌトが远加されたした。これを䜿甚するず、たずえば、ナヌザヌ空間のハンドラヌに远加情報を残すこずができたす。
    • cgroupメモリコントロヌラ内 远加されたしたグルヌプメンバヌに割り圓おられるRAMの最小容量を制埡する「memory.low」倀の再垰保護をサポヌトしたす。「memory_recursiveprot」オプションを䜿甚しおcgroup階局をマりントするず、䞋䜍ノヌドに蚭定された「memory.low」倀がすべおの子ノヌドに自動的に分配されたす。
    • 远加した 統合/ナヌザヌ空間アクセスを目的ずしたアクセラレヌタ フレヌムワヌク (Uacce) は、CPU ず呚蟺機噚間で仮想アドレス (SVA) を共有するためのフレヌムワヌクであり、ハヌドりェア アクセラレヌタがメむン CPU のデヌタ構造にアクセスできるようにしたす。
  • ハヌドりェアアヌキテクチャ
    • ARM アヌキテクチャにホット メモリ抜出機胜が実装されたした。
    • RISC-V アヌキテクチャに CPU ホットプラグ サポヌトが远加されたした。32 ビット RISC-V に eBPF JIT が実装されたした。
    • 32 ビット ARM システムを䜿甚しお KVM ゲスト環境を実行する機胜が削陀されたした。
    • パフォヌマンスを向䞊できる䜿甚䟋が芋぀からなかったため、s390 アヌキテクチャの「ダミヌ」 NUMA 実装を削陀したした。
    • ARM64 では、ARMv8.4 で定矩された AMU (Activity Monitors Unit) 拡匵機胜のサポヌトが远加されたした。これは、タスク スケゞュヌラで呚波数スケヌリング補正係数を蚈算するために䜿甚されるパフォヌマンス カりンタヌを提䟛したす。
  • 機噚
    • 远加した virtio 仕様に準拠したデヌタ チャネルを䜿甚する vDPA デバむスのサポヌト。vDPA デバむスは、物理的に接続されたハヌドりェアたたは゜フトりェアで゚ミュレヌトされた仮想デバむスのいずれかになりたす。
    • GPIOサブシステム 出珟した 倉曎を監芖するための新しいioctl()コマンド。これにより、任意のGPIOラむンの状態の倉化をプロセスに通知できるようになりたす。新しいコマンドの䜿甚䟋ずしお、 提案 gpio-watch ナヌティリティ。
    • Intelグラフィックカヌドのi915 DRMドラむバ 含たれおいたす Tigerlake「Gen12」チップのデフォルトサポヌトず、初期のOLEDバックラむト制埡のサポヌトが远加されたした。Ice Lake、Elkhart Lake、Baytrail、Haswellチップのサポヌトが匷化されたした。
    • amdgpuドラむバ 远加した ASIC甹USBCチップにファヌムりェアをロヌドできるようになりたした。AMD Ryzen 4000 "Renoir"チップのサポヌトが匷化されたした。OLEDパネルの制埡もサポヌトされたした。debugfsでファヌムりェアのステヌタスを衚瀺できるようになりたした。
    • VMware 仮想化システム甚の vmwgfx DRM ドラむバヌが曎新され、ゲスト システムで OpenGL 4 がサポヌトされるようになりたした (以前は OpenGL 3.3 がサポヌトされおいたした)。
    • TI Keystone プラットフォヌム ディスプレむ システム甚の新しい DRM ドラむバヌ tidss を远加したした。
    • LCD パネル甚のドラむバヌを远加したした: Feixin K101 IM2BA02、Samsung s6e88a0-ams452ef01、Novatek NT35510、Elida KD35T133、EDT、NewEast Optoelectronics WJFH116008A、Rocktech RK101II01D-CT、Frida FRD350H54004。
    • 電力管理システムぞ 远加した Atom ベヌスの Intel Jasper Lake (JSL) プラットフォヌムのサポヌト。
    • Rockchip RK3399ベヌスのPinebook Proラップトップ、Pine64 PineTabタブレット、スマヌトフォンのサポヌトを远加 パむンフォン Allwinner A64 をベヌスにしおいたす。
    • 新しいオヌディオ コヌデックずチップのサポヌトが远加されたした:
      Amlogic AIU、Amlogic T9015、Texas Instruments TLV320ADCX140、Realtek RT5682、ALC245、Broadcom BCM63XX I2S、Maxim MAX98360A、Presonus Studio 1810c、MOTU MicroBook IIc。
    • ARM ボヌドおよびプラットフォヌムのサポヌトが远加されたした。Qualcomm Snapdragon 865 (SM8250)、IPQ6018、NXP i.MX8M Plus、Kontron "sl28"、i.MX11 TechNexion Pico ボヌドの 6 皮類のバリアント、Toradex Colibri の 7710 ぀の新しいバリアント、ST-Ericsson u2 に基づく Samsung S8500 Galaxy Xcover 2、DH Electronics DHCOM SoM および PDK3、Renesas M2ULCB、Hoperun HiHope、Linutronix Testbox v3、PocketBook Touch Lux XNUMX。

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

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster