Linux 5.9 カヌネル リリヌス

XNUMX か月の開発を経お、Linus Torvalds 氏は 玹介された カヌネルリリヌス Linux 5.9。 最も泚目すべき倉曎点ずしおは、プロプラむ゚タリ モゞュヌルから GPL モゞュヌルぞのシンボルのむンポヌトの制限、FSGSBASE プロセッサ呜什を䜿甚したコンテキスト切り替え操䜜の高速化、Zstd を䜿甚したカヌネル むメヌゞ圧瞮のサポヌト、カヌネル内のスレッドの優先順䜍付けの再調敎、PRP のサポヌトなどが挙げられたす。 (䞊列冗長プロトコル)、デッドラむン スケゞュヌラでの垯域幅を意識したスケゞュヌリング、メモリ ペヌゞのプリ゚ンプティブ パッキング、機胜フラグ CAP_CHECKPOINT_RESTOR、close_range() システム コヌル、dm-crypt パフォヌマンスの向䞊、32 ビット Xen PV ゲストのコヌド削陀、新しいスラブ メモリ管理メカニズム、Btrfs のオプション「レスキュヌ」、ext4 および F2FS でのむンラむン暗号化のサポヌト。

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

メむン むノベヌション:

  • メモリおよびシステム サヌビス
    • 締められた GPL ラむセンスに基づいおモゞュヌルのみに゚クスポヌトされた独自のドラむバヌずカヌネル コンポヌネントをリンクするための GPL レむダヌの䜿甚に察する保護。 TAINT_PROPRIETARY_MODULE フラグは、このフラグを持぀モゞュヌルからシンボルをむンポヌトするすべおのモゞュヌルで継承されるようになりたした。 GPL モゞュヌルが非 GPL モゞュヌルからシンボルをむンポヌトしようずするず、その GPL モゞュヌルは TAINT_PROPRIETARY_MODULE ラベルを継承し、たずえそのモゞュヌルが以前に非 GPL モゞュヌルからシンボルをむンポヌトしおいおも、GPL ラむセンスのモゞュヌルでのみ利甚可胜なカヌネル コンポヌネントにアクセスできなくなりたす。 「gplonly」カテゎリ。 独自のドラむバの動䜜を䞭断する可胜性があるリバヌス ロック (EXPORT_SYMBOL_GPL をむンポヌトしたモゞュヌル内の EXPORT_SYMBOL_GPL のみを゚クスポヌトする) は実装されおいたせん (独自のモゞュヌル フラグのみが継承され、GPL バむンディングは継承されたせん)。
    • 远加した kcompactd ゚ンゞンのサポヌト メモリペヌゞのプリパッキング バックグラりンドで実行しお、カヌネルが䜿甚できる倧きなメモリ ペヌゞの数を増やしたす。 予備的な芋積もりによるず、バックグラりンド パッケヌゞ化は、最小限のオヌバヌヘッドを犠牲にしお、必芁なずきに起動される以前に䜿甚されおいたパッケヌゞング メカニズムず比范しお、倧きなメモリ ペヌゞ (ヒュヌゞ ペヌゞ) を割り圓おる際の遅延を 70  80 倍削枛できたす。 。 kcompactd が提䟛する倖郚断片化の境界を蚭定するために、sysctl vm.compaction_proactiveness が远加されたした。
    • 远加した アルゎリズムを䜿甚したカヌネルむメヌゞ圧瞮のサポヌト Z暙準 (zstd)。
    • プロセッサ呜什のサポヌトが x86 システムに実装されたした FSGSベヌスを䜿甚するず、ナヌザヌ空間から FS/GS レゞスタの内容を読み取ったり、倉曎したりできたす。 カヌネルでは、FSGSBASE を䜿甚しお、GSBASE に察する䞍必芁な MSR 曞き蟌み操䜜を排陀するこずでコンテキスト切り替え操䜜を高速化したす。たた、ナヌザヌ空間では、FS/GS を倉曎するための䞍芁なシステム コヌルを回避したす。
    • 远加した MSR の倉曎は問題を匕き起こす可胜性があるため、「allow_writes」パラメヌタを䜿甚するず、ナヌザヌ空間からプロセッサの MSR レゞスタぞの倉曎を犁止し、これらのレゞスタの内容ぞのアクセスを読み取り操䜜に制限できたす。 デフォルトでは曞き蟌みはただ無効になっおおらず、MSR ぞの倉曎はログに反映されたすが、将来的にはデフォルトのアクセスを読み取り専甚モヌドに切り替える予定です。
    • 非同期I/Oむンタヌフェヌスぞ io_uring カヌネル スレッドを必芁ずしない非同期バッファ読み取り操䜜の完党サポヌトが远加されたした。 将来のリリヌスでは録音のサポヌトが予定されおいたす。
    • I/O スケゞュヌラの期限内 実装された 胜力に基づいた蚈画、 蚱可する ARM ベヌスのシステムなどの非察称システムで正しい決定を䞋す DynamIQ big.LITTLE は、匷力な CPU コアず䜎効率の゚ネルギヌ効率の高い CPU コアを XNUMX ぀のチップに組み合わせおいたす。 特に、新しいモヌドを䜿甚するず、遅い CPU コアにタスクを時間通りに完了するための適切なリ゜ヌスがない堎合のスケゞュヌルの䞍䞀臎を回避できたす。
    • カヌネルの゚ネルギヌ消費モデル (゚ネルギヌ モデル フレヌムワヌク) は次のようになりたす。 説明する CPUの消費電力挙動だけでなく、呚蟺機噚も察象ずしおいたす。
    • close_range() システム コヌルは、プロセスが開いおいるファむル蚘述子の党範囲を䞀床に閉じるこずができるように実装されたした。
    • テキストコン゜ヌルずfbconドラむバヌの実装から コヌドが削陀されたしたこれは、VGA テキスト モヌド ビデオ メモリの量を超えおプログラム的にテキストをスクロヌルバック (CONFIG_VGACON_SOFT_SCROLLBACK) する機胜を提䟛したす。
    • 再蚭蚈された カヌネル内のスレッドに優先順䜍を割り圓おるためのアルゎリズム。 新しいオプションにより、リアルタむム タスクに優先順䜍を割り圓おる際に、すべおのカヌネル サブシステム間での䞀貫性が向䞊したす。
    • sysctlを远加したした sched_uclamp_util_min_rt_default リアルタむム タスクの CPU ブヌスト蚭定を制埡したす (たずえば、バッテリ電源たたはモバむル システムに切り替えた埌、リアルタむム タスクの動䜜をその堎で倉曎しお電力を節玄できたす)。
    • ペヌゞ キャッシュに透過的ヒュヌゞ ペヌゞ テクノロゞのサポヌトを実装するための準備が行われたした。
    • fanotify ゚ンゞンは、新しいフラグ FAN_REPORT_NAME および FAN_REPORT_DIR_FID を実装し、ディレクトリ アむテムおよび非ディレクトリ オブゞェクトの䜜成、削陀、たたは移動むベントが発生したずきに芪名ず䞀意の FID 情報を報告したす。
    • cgroup の堎合 実装された 新しいスラブ メモリ コントロヌラヌは、スラブ アカりンティングをメモリ ペヌゞ レベルからカヌネル オブゞェクト レベルに移動するこずで泚目に倀したす。これにより、cgroup ごずに個別のスラブ キャッシュを割り圓おるのではなく、異なる cgroup でスラブ ペヌゞを共有できるようになりたす。 提案されたアプロヌチにより、スラブの䜿甚効率が向䞊し、スラブに䜿甚されるメモリのサむズが 30  45% 削枛され、カヌネル党䜓のメモリ消費量が倧幅に削枛され、メモリの断片化が軜枛されたす。
    • サりンドサブシステム内 ALSA О USBスタック、 に埓っお 最近採甚された Linux カヌネルでの包括的な甚語の䜿甚に関する掚奚事項、政治的に䞍正確な甚語が削陀されたした。 コヌドから「スレヌブ」、「マスタヌ」、「ブラックリスト」、「ホワむトリスト」ずいう単語が削陀されたした。
  • 仮想化ずセキュリティ
    • Clang コンパむラを䜿甚しおカヌネルをビルドする堎合 出珟した スタックに栌玍されおいるすべおの倉数をれロに自動初期化するように構成 (CONFIG_INIT_STACK_ALL_ZERO) する機胜 (ビルド時に、「-ftrivial-auto-var-init=zero」を指定したす)。
    • seccomp サブシステムでは、ナヌザヌ空間でプロセス制埡モヌドを䜿甚する堎合、 远加した 機䌚 ファむル蚘述子の䜜成に぀ながるシステムコヌルを完党に゚ミュレヌトするために、監芖察象のプロセスにファむル蚘述子を眮き換えたす。 この機胜は、Chrome の分離コンテナ システムやサンドボックス実装で需芁がありたす。
    • xtensa およ​​び csky アヌキテクチャの堎合、seccomp サブシステムを䜿甚しおシステム コヌルを制限するためのサポヌトが远加されたした。 xtensa の堎合、監査メカニズムのサポヌトが远加で実装されたす。
    • 远加した 新しい機胜フラグ CAP_CHECKPOINT_RESTORE により、远加の暩限を譲枡せずに、プロセスの状態の凍結ず埩元に関連する機胜ぞのアクセスを提䟛できるようになりたす。
    • GCC 11 は、必芁なすべおの機胜を提䟛したす。
      デバッグ ツヌル KCSAN (Kernel Concurrency Sanitizer)。カヌネル内の競合状態を動的に怜出するように蚭蚈されおいたす。 したがっお、KCSAN は GCC で構築されたカヌネルで䜿甚できるようになりたした。

    • AMD Zen 以降の CPU モデルの堎合 远加した P2PDMA テクノロゞのサポヌト。これにより、PCI バスに接続された XNUMX ぀のデバむスのメモリ間の盎接デヌタ転送に DMA を䜿甚できるようになりたす。
    • dm-crypt に、ワヌクキュヌを䜿甚せずに暗号化デヌタ凊理を実行するこずで遅延を短瞮できるモヌドが远加されたした。 このモヌドは、次の機胜を正しく動䜜させるためにも必芁です。 ゟヌン化された ブロックデバむス (ブロックのグルヌプ党䜓を曎新する、連続しお曞き蟌む必芁がある領域を持぀デバむス)。 dm-crypt のスルヌプットを向䞊させ、埅ち時間を短瞮するための䜜業が行われたした。
    • Xen ハむパヌバむザヌを実行する準仮想化モヌドで実行される 32 ビット ゲストをサポヌトするコヌドを削陀したした。 このようなシステムのナヌザヌは、ゲスト環境で 64 ビット カヌネルの䜿甚に切り替えるか、準仮想化 (PV) ではなく完党 (HVM) たたは耇合 (PVH) 仮想化モヌドを䜿甚しお環境を実行する必芁がありたす。
  • ディスク サブシステム、I/O、およびファむル システム
    • Btrfs ファむル システム䞊 実装されたした 他のすべおの回埩オプションぞのアクセスを統合する「レスキュヌ」マりント オプション。 「alloc_start」および「subvolrootid」オプションのサポヌトは削陀され、「inode_cache」オプションは非掚奚になりたした。 パフォヌマンスの最適化が行われ、特に fsync() 操䜜の実行が倧幅に高速化されたした。 远加した CRC32c 以倖の代替タむプのチェックサムを䜿甚する機胜。
    • 远加した ext4 および F2FS ファむル システムでむンラむン暗号化 (Inline Encryption) を䜿甚する機胜。これを有効にするために、「inlinecrypt」マりント オプションが提䟛されおいたす。 むンラむン暗号化モヌドでは、ドラむブ コントロヌラヌに組み蟌たれた暗号化メカニズムを䜿甚しお、入出力を透過的に暗号化および埩号化できたす。
    • XFS 内 安党な メモリ クリヌンアップ操䜜の実行時にプロセスをブロックしない完党な非同期モヌドでの inode リセット (フラッシュ)。 ゜フト制限ず i ノヌド制限の譊告が誀っお远跡される原因ずなっおいた長幎のクォヌタ問題が解決されたした。 ext4 ず xfs の DAX サポヌトの統合実装。
    • 内線4 実装されたした ブロック割り圓おビットマップをプリロヌドしたす。 初期化されおいないグルヌプのスキャンを制限するこずず組み合わせるこずで、最適化により、非垞に倧きなパヌティションのマりントに必芁な時間が短瞮されたした。
    • F2FSでは 远加されたした ioctl F2FS_IOC_SEC_TRIM_FILE。これにより、TRIM/discard コマンドを䜿甚しお、ファむル内の指定されたデヌタを物理的にリセットできたす。たずえば、ドラむブにデヌタを残さずにアクセス キヌを削陀できたす。
      F2FSでも 远加されたした 新しいガベヌゞ コレクション モヌド GC_URGENT_LOW。ガベヌゞ コレクタヌを開始する前にアむドル状態であるかどうかの䞀郚のチェックを排陀するこずで、より積極的に機胜したす。

    • bcache では、ゟヌン デバむス キャッシュを有効にする準備ずしお、゚クステントの Bucket_size が 16 ビットから 32 ビットに増加されたした。
    • UFS コントロヌラによっお提䟛される組み蟌みハヌドりェア暗号化に基づくむンラむン暗号化を䜿甚する機胜が SCSI サブシステムに远加されたした (ナニバヌサルフラッシュストレヌゞ).
    • 新しいカヌネル コマンド ラむン パラメヌタ「debugfs」が远加されたした。これにより、同じ名前の擬䌌 FS の可甚性を制埡できるようになりたす。
    • NFSv4.2 クラむアントは、拡匵ファむル属性 (xattr) のサポヌトを提䟛したす。
    • dmダスト内 远加されたした ディスク䞊で識別されたすべおの䞍良ブロックのリストを䞀床に衚瀺するためのむンタヌフェヌス (「dmsetup message dump1 0 listbadblocks」)。
    • md/raid5 の堎合、STRIPE ブロック サむズを構成するために /sys/block/md1/md/ストラむプ_サむズ パラメヌタヌが远加されたした。
    • NVMeストレヌゞデバむスの堎合 远加した ドラむブ ゟヌニング コマンド (ZNS、NVM Express Zoned Namespace) のサポヌト。これにより、ストレヌゞ スペヌスをブロックのグルヌプを構成するゟヌンに分割しお、ドラむブ䞊のデヌタの配眮をより完党に制埡できたす。
  • ネットワヌクサブシステム
    • ネットフィルタヌ内 远加した ルヌティング チェックの前の段階でパケットを拒吊する機胜 (REJECT 匏は、INPUT、FORWARD、および OUTPUT チェヌンだけでなく、icmp および tcp の PREROUTING 段階でも䜿甚できるようになりたした)。
    • nftable 内 远加した 構成倉曎に関連するむベントを監査する機胜。
    • netlink API の nftables 内 远加した 匿名チェヌンのサポヌト。その名前はカヌネルによっお動的に割り圓おられたす。 匿名チェヌンに関連付けられたルヌルを削陀するず、チェヌン自䜓も自動的に削陀されたす。
    • BPF は、デヌタをナヌザヌ空間にコピヌせずに、連想配列 (マップ) の芁玠を走査、フィルタリング、倉曎するむテレヌタのサポヌトを远加したす。 むテレヌタは TCP および UDP ゜ケットに䜿甚でき、BPF プログラムが開いおいる゜ケットのリストを反埩凊理し、そこから必芁な情報を抜出できるようになりたす。
    • 新しいタむプの BPF プログラム BPF_PROG_TYPE_SK_LOOKUP が远加されたした。これは、カヌネルが着信接続に適したリスニング ゜ケットを探すずきに起動されたす。 このような BPF プログラムを䜿甚するず、bind() システム コヌルの制玄を受けるこずなく、接続をどの゜ケットに関連付けるかを決定するハンドラヌを䜜成できたす。 たずえば、単䞀の゜ケットをアドレスたたはポヌトの範囲に関連付けるこずができたす。 さらに、SO_KEEPALIVE フラグのサポヌトが bpf_setsockopt() に远加され、゜ケットの解攟時に呌び出される BPF_CGROUP_INET_SOCK_RELEASE ハンドラヌをむンストヌルする機胜が実装されたした。
    • プロトコルサポヌトの実装 PRP (Parallel Redundancy Protocol) により、ネットワヌク コンポヌネントに障害が発生した堎合に、アプリケヌションに察しお透過的にバックアップ チャネルぞのむヌサネット ベヌスのスむッチングが可胜になりたす。
    • スタック mac80211 远加した アクセス ポむント モヌドでの 2 段階の WPA/WPAXNUMX-PSK チャネル ネゎシ゚ヌションのサポヌト。
    • デフォルトで FQ-PIE (Flow Queue PIE) ネットワヌク キュヌ管理アルゎリズムを䜿甚するように qdisc (キュヌむング芏埋) スケゞュヌラを切り替える機胜が远加されたした。これは、ネットワヌク内の゚ッゞ ネットワヌク機噚に察する䞭間パケット バッファリング (バッファ膚匵) の悪圱響を軜枛するこずを目的ずしおいたす。ケヌブルモデム。
    • 新しい機胜が MPTCP (MultiPath TCP) に远加されたした。これは、異なる IP アドレスに関連付けられた異なるネットワヌク むンタヌフェむスを介しお、耇数のルヌトに沿っお同時にパケットを配信する TCP 接続の操䜜を組織するための TCP プロトコルの拡匵機胜です。 setsockopt の syn Cookie、DATA_FIN、バッファ自動チュヌニング、゜ケット蚺断、および REUSEADDR、REUSEPORT、および V6ONLY フラグのサポヌトが远加されたした。
    • XNUMX ぀のシステム䞊で耇数のルヌティング ドメむンの動䜜を組織化できる仮想ルヌティング テヌブル VRF (Virtual Routing and Forwarding) には、「厳密」モヌドが実装されおいたす。 このモヌドでは、仮想テヌブルは、他の仮想テヌブルで䜿甚されおいないルヌティング テヌブルにのみ関連付けるこずができたす。
    • 無線ドラむバヌはath11kです 远加した 6GHzの呚波数をサポヌトし、 スペクトルスキャン.
  • 機噚
    • 北京倧孊のマむクロプロセッサ センタヌで開発され、2011 幎に Linux カヌネルに組み蟌たれた UniCore アヌキテクチャをサポヌトするコヌドを削陀したした。 このアヌキテクチャは 2014 幎以来メンテナンスされおおらず、GCC ではサポヌトされおいたせん。
    • RISC-Vアヌキテクチャのサポヌトが実装されたした コフ (カヌネル コヌド カバレッゞを分析するための debugfs むンタヌフェむス)、kmemleak (メモリ リヌク怜出システム)、スタック保護、ゞャンプ マヌク、ティックレス操䜜 (タむマヌ信号に䟝存しないマルチタスク)。
    • PowerPC アヌキテクチャでは、スピンロック キュヌのサポヌトが実装され、ロック競合状況でのパフォヌマンスが倧幅に向䞊したした。
    • ARM および ARM64 アヌキテクチャの堎合、プロセッサ呚波数調敎メカニズムはデフォルトで有効になっおいたす scheduleutil (cpufreq ガバナ) は、タスク スケゞュヌラからの情報を盎接䜿甚しお呚波数の倉曎を決定し、cpufreq ドラむバに即座にアクセスしお呚波数を迅速に倉曎し、CPU 動䜜パラメヌタを珟圚の負荷に即座に調敎したす。
    • Intel グラフィックス カヌド甚の i915 DRM ドラむバヌには、マむクロアヌキテクチャに基づくチップのサポヌトが含たれおいたす ロケット湖 個別カヌドの初期サポヌトを远加したした むンテル Xe DG1.
    • Amdgpu ドラむバヌに AMD GPU の初期サポヌトが远加されたした ナビ21 ネむビヌヒラメず ナビ22 シ゚ナ・シクリッド。 Southern Islands GPU (Radeon HD 7000) の UVD/VCE ビデオ ゚ンコヌドおよびデコヌド アクセラレヌション ゚ンゞンのサポヌトが远加されたした。
      衚瀺を 90、180、たたは 270 床回転するプロパティを远加したした。

      興味深いこずに、AMD GPU のドラむバヌ です カヌネル内で最倧のドラむバヌ - 箄 2.71 䞇行のコヌドがあり、これはカヌネルの合蚈サむズ (10 䞇行) の玄 27.81% に盞圓したす。 同時に、GPU レゞスタのデヌタを含む自動生成されたヘッダヌ ファむルによっお 1.79 䞇行が占められ、C コヌドは 366 侇 915 千行になりたす (比范のために、Intel i209 ドラむバヌには 149 侇 XNUMX 千行、Nouveau には XNUMX 侇 XNUMX 千行が含たれおいたす)。

    • ヌヌボヌドラむバヌで 远加した を䜿甚したフレヌムごずの敎合性チェックのサポヌト CRC NVIDIA GPU ディスプレむ ゚ンゞンの (巡回冗長怜査)。 実装は、NVIDIA が提䟛するドキュメントに基づいおいたす。
    • LCD パネル甚のドラむバヌを远加したした: Frida FRD350H54004、KOE TX26D202VM0BWA、CDTech S070PWS19HP-FC21、CDTech S070SWV29HG-DC44、Tianma TM070JVHG33、および Xingbangda XBD599。
    • ALSA オヌディオ サブシステムは以䞋をサポヌトしたす。 むンテル サむレント ストリヌム (再生開始時の遅延を排陀するための倖郚 HDMI デバむス甚の連続電源モヌド) 新しいデバむス マむクのアクティブ化ボタンずミュヌト ボタンの照明を制埡し、コントロヌラヌなどの新しい機噚のサポヌトも远加したした 韍芯7A1000.
    • ARM ボヌド、デバむス、プラットフォヌムのサポヌトを远加: Pine64 PinePhone v1.2、Lenovo IdeaPad Duet 10.1、ASUS Google Nexus 7、Acer Iconia Tab A500、Qualcomm Snapdragon SDM630 (Sony Xperia 10、10 Plus、XA2、XA2 Plus、XA2 で䜿甚) Ultra)、Jetson Xavier NX、Amlogic WeTek Core2、Aspeed EthanolX、NXP i.MX6 ベヌスの 3011 ぀の新しいボヌド、MikroTik RouterBoard 950、Xiaomi Libra、Microsoft Lumia 5、Sony Xperia Z5、MStar、Microchip Sparx3、Intel Keem Bay、Amazon Alpine v2、ルネサス RZ/GXNUMXH。

同時に、ラテンアメリカ・フリヌ・゜フトりェア財団 圢成された
варОаМт 完党に無料のカヌネル 5.9 - Linux-libre 5.9-gnu、メヌカヌによっお範囲が制限されおいる、非フリヌのコンポヌネントたたはコヌドセクションを含むファヌムりェアおよびドラむバヌ芁玠が陀去されたす。 新しいリリヌスでは、WiFi rtw8821c および SoC MediaTek mt8183 のドラむバヌでの BLOB ロヌドが無効になりたす。 Habanalabs、Wilc1000、amdgpu、mt7615、i915 CSR、Mellanox mlxsw (Spectrum3)、r8169 (rtl8125b-2)、および x86 タッチスクリヌン ドラむバヌおよびサブシステムの BLOB クリヌニング コヌドを曎新したした。

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

コメントを远加したす