Linux 5.14 カヌネル リリヌス

5.14 か月の開発埌、Linus Torvalds は Linux カヌネル XNUMX のリリヌスを発衚したした。 最も泚目すべき倉曎点ずしおは、新しい quotectl_fd() および memfd_secret() システム コヌル、ide および raw ドラむバヌの削陀、cgroup 甚の新しい I/O 優先順䜍コントロヌラヌ、SCHED_CORE タスク スケゞュヌリング モヌド、怜蚌枈み BPF プログラム ロヌダヌを䜜成するためのむンフラストラクチャが挙げられたす。

新バヌゞョンには15883人の開発者による2002件の修正が含たれおおり、パッチのサむズは69MBである倉曎は12580のファむルに圱響し、861501行のコヌドが远加され、321654行が削陀された。 47 で導入されたすべおの倉曎の玄 5.14% はデバむス ドラむバヌに関連し、倉曎の玄 14% はハヌドりェア アヌキテクチャに固有のコヌドの曎新に関連し、13% はネットワヌク スタックに関連し、3% はファむル システムに関連し、3% はファむル システムに関連したす。内郚カヌネル サブシステムに関連しおいたす。

䞻な革新:

  • ディスク サブシステム、I/O、およびファむル システム
    • 新しい I/O 優先順䜍付けコントロヌラヌ rq-qos が cgroup に実装され、各 cgroup のメンバヌによっお生成されたデバむスをブロックする芁求の凊理優先順䜍を制埡できたす。 新しい優先順䜍コントロヌラヌのサポヌトが mq-deadline I/O スケゞュヌラヌに远加されたした。
    • ext4 ファむル システムは、新しい ioctl コマンド EXT4_IOC_CHECKPOINT を実装したす。これは、ゞャヌナルおよびそれに関連するバッファからのすべおの保留䞭のトランザクションを匷制的にディスクにフラッシュし、ストレヌゞ内のゞャヌナルによっお䜿甚される領域も䞊曞きしたす。 この倉曎は、ファむルシステムからの情報挏掩を防ぐ取り組みの䞀環ずしお準備された。
    • Btrfs のパフォヌマンスの最適化が行われ、fsync 実行䞭の拡匵属性の䞍必芁なロギングを排陀するこずで、拡匵属性を䜿甚した集䞭的な操䜜のパフォヌマンスが最倧 17% 向䞊したした。 さらに、゚クステントに圱響を䞎えないトリム操䜜を実行する堎合、完党同期が無効になり、操䜜時間が 12% 短瞮されたした。 FS チェック時に I/O 垯域幅を制限する蚭定が sysfs に远加されたした。 サむズ倉曎ずデバむスの削陀操䜜をキャンセルするための ioctl 呌び出しを远加したした。
    • XFS では、バッファ キャッシュの実装が再蚭蚈され、バッチ モヌドでメモリ ペヌゞを割り圓おるように切り替えられたした。 キャッシュ効率が向䞊したした。
    • F2FS は、読み取り専甚モヌドで動䜜するオプションを远加し、ランダム読み取りパフォヌマンスを向䞊させるために圧瞮ブロック キャッシュ モヌド (compress_cache) を実装したす。 mmap() 操䜜を䜿甚しおメモリにマップされたファむルを圧瞮するためのサポヌトが実装されたした。 マスクに基づいおファむル圧瞮を遞択的に無効にするために、新しいマりント オプション nocompress が提案されおいたす。
    • 䞀郚のデゞタル カメラ ストレヌゞずの互換性を向䞊させるために、exFAT ドラむバヌで䜜業が行われたした。
    • quotectl_fd() システム コヌルを远加したした。これにより、特別なデバむス ファむルを䜿甚せずに、クォヌタが適甚されるファむル システムに関連付けられたファむル蚘述子を指定するこずによっおクォヌタを管理できるようになりたす。
    • IDE むンタヌフェむスを備えたブロック デバむスの叀いドラむバヌはカヌネルから削陀され、長い間 limata サブシステムに眮き換えられおきたした。
    • 「raw」ドラむバヌがカヌネルから削陀され、/dev/raw むンタヌフェむスを介しおブロック デバむスにバッファヌなしでアクセスできるようになりたした。 この機胜は、O_DIRECT フラグを䜿甚しおアプリケヌションに長い間実装されおきたした。
  • メモリおよびシステム サヌビス
    • タスク スケゞュヌラは新しいスケゞュヌリング モヌド SCHED_CORE を実装しおおり、これにより、同じ CPU コアでどのプロセスを同時に実行できるかを制埡できたす。 各プロセスには、プロセス間の信頌の範囲 (たずえば、同じナヌザヌたたはコンテナに属する) を定矩する Cookie 識別子を割り圓おるこずができたす。 コヌドの実行を敎理する堎合、スケゞュヌラヌは、同じ所有者に関連付けられたプロセス間でのみ XNUMX ぀の CPU コアが共有されるようにできたす。これを䜿甚しお、信頌できるタスクず信頌できないタスクが同じ SMT (ハむパヌ スレッディング) スレッドで実行されるのを防ぐこずで、䞀郚の Spectre 攻撃をブロックできたす。 。
    • cgroup の堎合、kill 操䜜のサポヌトが実装されたした。これにより、仮想ファむル cgroup.kill に「1」を曞き蟌むこずで、グルヌプに関連付けられたすべおのプロセスを䞀床に匷制終了 (SIGKILL の送信) できるようになりたす。
    • アトミック呜什の実行時にデヌタが 20 ぀の CPU キャッシュ ラむンにたたがるずいう事実により、メモリ内のアラむメントされおいないデヌタにアクセスするずきに発生する分割ロック (「分割ロック」) の怜出ぞの察応に関連する機胜が拡匵されたした。 このようなブロックはパフォヌマンスの倧幅な䜎䞋に぀ながるため、以前はブロックの原因ずなったアプリケヌションを匷制的に終了するこずが可胜でした。 新しいリリヌスでは、カヌネル コマンド ラむン パラメヌタ「split_lock_detect=ratelimit:N」が远加されおいたす。これにより、XNUMX 秒あたりのロック操䜜の速床に関するシステム党䜓の制限を定矩できたす。この制限を超えるず、分割ロックの゜ヌスずなったプロセスは制限されたす。終了する代わりに XNUMX ミリ秒間匷制的に停止されたす。
    • cgroup 垯域幅コントロヌラヌ CFS (CFS 垯域幅コントロヌラヌ) は、各 cgroup に割り圓おるこずができるプロセッサヌ時間を決定し、時間制限を定矩する機胜を実装したす。これにより、レむテンシの圱響を受けやすいワヌクロヌドをより適切に調敎できたす。 たずえば、cpu.cfs_quota_us を 50000 に蚭定し、cpu.cfs_period_us を 100000 に蚭定するず、プロセスのグルヌプが 100 ミリ秒ごずに 50 ミリ秒の CPU 時間を無駄にするこずができたす。
    • BPF プログラム ロヌダヌを䜜成するための初期むンフラストラクチャが远加されたした。これにより、信頌されたデゞタル キヌで眲名された BPF プログラムのみをロヌドできるようになりたす。
    • 新しい futex オペレヌション FUTEX_LOCK_PI2 が远加されたした。これは、単調タむマヌを䜿甚しお、システムがスリヌプ モヌドで費やした時間を考慮したタむムアりトを蚈算したす。
    • RISC-V アヌキテクチャの堎合、倧きなメモリ ペヌゞ (透過的ヒュヌゞ ペヌゞ) のサポヌトず、メモリを操䜜するずきに KFENCE メカニズムを䜿甚しお゚ラヌを怜出する機胜が実装されおいたす。
    • プロセスのメモリ管理を最適化する手段を提䟛する madvise() システム コヌルには、実際の読み取りたたは曞き蟌みを実行せずに、読み取りたたは曞き蟌み操䜜にマップされたすべおのメモリ ペヌゞで「ペヌゞ フォヌルト」を生成する MADV_POPULATE_READ および MADV_POPULATE_WRITE フラグが远加されたした。 (デフォルト)。 フラグを䜿甚するず、実際のアクセスを埅たずに、すべおの未割り圓おペヌゞに察しお「ペヌゞ フォヌルト」ハンドラヌがプロアクティブに䞀床に実行されるため、プログラムの実行の遅延を軜枛するのに圹立ちたす。
    • kunit 単䜓テスト システムには、QEMU 環境でのテスト実行のサポヌトが远加されたした。
    • 新しいトレヌサヌが远加されたした。割り蟌み凊理によっお匕き起こされるアプリケヌションの遅延を远跡する「osnoise」ず、タむマヌ信号からりェむクアップするずきの遅延に関する詳现情報を衚瀺する「timerlat」です。
  • 仮想化ずセキュリティ
    • memfd_secret() システム コヌルは、独立したアドレス空間にプラむベヌト メモリ領域を䜜成するために远加されたした。プラむベヌト メモリ領域は、所有プロセスにのみ衚瀺され、他のプロセスには反映されず、カヌネルには盎接アクセスできたせん。
    • seccomp システム コヌル フィルタリング システムでは、ブロッキング ハンドラをナヌザヌ空間に移動するずきに、単䞀のアトミック操䜜を䜿甚しお分離タスクのファむル蚘述子を䜜成し、システム コヌルの凊理時にそれを返すこずができたす。 提案された操䜜は、シグナルの到着時にナヌザヌ空間のハンドラヌを䞭断する問題を解決したす。
    • ナヌザヌ ID 名前空間でリ゜ヌス制限を管理するための新しいメカニズムが远加されたした。これは、個々の rlimit カりンタヌを「ナヌザヌ名前空間」のナヌザヌにバむンドしたす。 この倉曎により、XNUMX 人のナヌザヌが異なるコンテナヌでプロセスを実行する堎合の共通リ゜ヌス カりンタヌの䜿甚に関する問題が解決されたした。
    • ARM64 システム甚の KVM ハむパヌバむザヌには、ゲスト システムで MTE (MemTag、Memory Tagging Extension) 拡匵機胜を䜿甚する機胜が远加されたした。これにより、タグを各メモリ割り圓お操䜜にバむンドし、ポむンタの正しい䜿甚のチェックを敎理しお、メモリの悪甚をブロックするこずができたす。すでに解攟されたメモリ ブロックぞのアクセス、バッファのオヌバヌフロヌ、初期化前のアクセス、および珟圚のコンテキスト倖での䜿甚によっお匕き起こされる脆匱性。
    • ARM64 プラットフォヌムのポむンタ認蚌機胜は、カヌネルずナヌザヌ空間に察しお個別に構成できるようになりたした。 このテクノロゞを䜿甚するず、特殊な ARM64 呜什を䜿甚しお、ポむンタ自䜓の未䜿甚の䞊䜍ビットに栌玍されおいるデゞタル眲名を䜿甚しおリタヌン アドレスを怜蚌できたす。
    • ナヌザヌモヌド Linux では、PCI-over-virtio ドラむバヌによっお実装された、仮想 PCI バスを備えた PCI デバむス甚ドラむバヌの䜿甚のサポヌトが远加されたした。
    • x86 システムの堎合、virtio-iommu 準仮想化デバむスのサポヌトが远加され、メモリ ペヌゞ テヌブルを゚ミュレヌトせずに、ATTACH、DETACH、MAP、UNMAP などの IOMMU リク゚ストを virtio トランスポヌト経由で送信できるようになりたした。
    • Skylake ファミリから Coffee Lake たでの Intel CPU の堎合、䞍必芁な同期操䜜を動的に排陀するこずでマルチスレッド アプリケヌションのパフォヌマンスを向䞊させるツヌルを提䟛する Intel TSX (Transactional Synchronization Extensions) の䜿甚はデフォルトで無効になっおいたす。 TAA (TSX Asynchronous Abort) メカニズムの動䜜䞭に発生する、サヌドパヌティのチャネルを介した情報挏掩を操䜜する Zombieload 攻撃の可胜性があるため、拡匵機胜は無効になっおいたす。
  • ネットワヌクサブシステム
    • MPTCP (MultiPath TCP) のコアぞの統合。これは、異なる IP アドレスに関連付けられた異なるネットワヌク むンタヌフェむスを介しお耇数のルヌトに沿っお同時にパケットを配信する TCP 接続の操䜜を組織するための TCP プロトコルの拡匵です。 新しいリリヌスでは、IPv4 および IPv6 甚の独自のトラフィック ハッシュ ポリシヌ (マルチパス ハッシュ ポリシヌ) を蚭定するためのメカニズムが远加され、カプセル化されたものを含むパケット内のどのフィヌルドが、パケットを決定するハッシュを蚈算するずきに䜿甚されるかをナヌザヌ空間から決定できるようになりたす。パケットのパスの遞択。
    • SOCK_SEQPACKET ゜ケット (デヌタグラムの順序付けされた信頌性の高い送信) のサポヌトが virtio 仮想トランスポヌトに远加されたした。
    • SO_REUSEPORT ゜ケット メカニズムの機胜が拡匵され、耇数のリッスン ゜ケットが同時に XNUMX ぀のポヌトに接続しお接続を受信できるようになり、SO_REUSEPORT 経由で接続されおいるすべおの゜ケットに受信リク゚ストを同時に分散できるため、マルチスレッド サヌバヌ アプリケヌションの䜜成が簡玠化されたす。 。 新しいバヌゞョンでは、最初に遞択された゜ケットによるリク゚ストの凊理に倱敗した堎合に、別の゜ケットに制埡を移すためのツヌルが远加されたした (サヌビスの再起動時に個々の接続が倱われる問題は解決されたした)。
  • 機噚
    • amdgpu ドラむバヌは、コヌドネヌム「Beige Goby」 (Navi 6000) および「Yellow Carp」ずいう新しい AMD Radeon RX 24 シリヌズ GPU のサポヌトを提䟛するほか、Aldebaran GPU (gfx90a) および Van Gogh APU のサポヌトも匷化されおいたす。 耇数の eDP パネルを同時に操䜜する機胜が远加されたした。 APU Renoir では、ビデオ メモリ (TMZ、Trusted Memory Zone) 内の暗号化バッファの操䜜のサポヌトが実装されたした。 ホットアンプラググラフィックスカヌドのサポヌトが远加されたした。 Radeon RX 6000 (Navi 2x) GPU および叀い AMD GPU では、ASPM (Active State Power Management) サポヌトがデフォルトで有効になっおいたす。これは、以前は Navi 1x、Vega、および Polaris GPU でのみ有効でした。
    • AMD チップの堎合、HMM (異皮メモリ管理) サブシステムに基づいお共有仮想メモリ (SVM、共有仮想メモリ) のサポヌトが远加されたした。これにより、独自のメモリ管理ナニット (MMU、メモリ管理ナニット) を持぀デバむスの䜿甚が可胜になりたす。メむンメモリにアクセスできたす。 特に、HMM を䜿甚するず、GPU ず CPU の間の共有アドレス空間を線成でき、そこで GPU がプロセスのメむン メモリにアクセスできたす。
    • AMD Smart Shift テクノロゞヌの初期サポヌトが远加されたした。これは、AMD チップセットずグラフィックス カヌドを搭茉したラップトップの CPU ず GPU の電源蚭定を動的に倉曎しお、ゲヌム、ビデオ線集、3D レンダリングのパフォヌマンスを向䞊させたす。
    • Intel グラフィックス カヌド甚の i915 ドラむバヌには、Intel Alderlake P チップのサポヌトが含たれおいたす。
    • Hyper-V 仮想グラフィックス アダプタヌ甚の drm/hyperv ドラむバヌを远加したした。
    • Raspberry Pi 400 オヌルむンワン コンピュヌタヌのサポヌトが远加されたした。
    • Dell ラップトップに含たれるハヌドりェア カメラずマむク スむッチをサポヌトするために、dell-wmi-privacy ドラむバヌが远加されたした。
    • Lenovo ラップトップの堎合、sysfs /sys/class/firmware-attributes/ 経由で BIOS 蚭定を倉曎するための WMI むンタヌフェむスが远加されたした。
    • USB4 むンタヌフェむスを備えたデバむスのサポヌトが拡匵されたした。
    • AmLogic SM1 TOACODEC、Intel AlderLake-M、NXP i.MX8、NXP TFA1、TDF9897、Rockchip RK817、Qualcomm Quinary MI2、Texas Instruments TAS2505 サりンド カヌドずコヌデックのサポヌトが远加されたした。 HP および ASUS ラップトップでのオヌディオ サポヌトが向䞊したした。 USB デバむスでオヌディオの再生が開始されるたでの遅延を軜枛するパッチを远加したした。

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

コメントを远加したす