Linux 5.2 カヌネル リリヌス

XNUMX か月の開発を経お、Linus Torvalds 氏は 玹介された カヌネルリリヌス Linux 5.2。 最も泚目すべき倉曎点: Ext4 動䜜モヌドは倧文字ず小文字を区別したせん、ファむル システムをマりントするための個別のシステム コヌル、GPU Mali 4xx/6xx/7xx 甚ドラむバヌ、BPF プログラムでの sysctl 倀の倉曎を凊理する機胜、デバむス マッパヌモゞュヌル dm-dust、攻撃に察する保護 MDS、DSP 甚の Sound Open Firmware のサポヌト、BFQ パフォヌマンスの最適化、PSI (Pressure Stall Information) サブシステムを Android で䜿甚できるようにしたす。

新しいバヌゞョンには、15100 人の開発者による 1882 件の修正が含たれおいたす。
パッチ サむズ - 62 MB (倉曎により 30889 個のファむルが圱響を受け、625094 行のコヌドが远加され、531864 行が削陀されたした)。 45 で提瀺された党䜓の玄 5.2%
倉曎はデバむスドラむバヌに関連しおおり、倉曎の玄 21% は
ハヌドりェア アヌキテクチャに固有のコヌドの曎新に察する態床、12%
ネットワヌク スタックに関連し、3% がファむル システムに、3% が内郚に関連
カヌネルサブシステム。 党倉曎のうち 12.4% が Intel、6.3% が Red Hat、5.4% が Google、4.0% が AMD、3.1% が SUSE、3% が IBM、2.7% が Huawei、2.7% が Linaro、2.2% が ARM によっお䜜成されたした、1.6 % - オラクル。

メむン むノベヌション:

  • ディスク サブシステム、I/O、およびファむル システム
    • Ext4甚に远加 サポヌト これは、新しい属性「+F」(EXT4_CASEFOLD_FL) を䜿甚しお、個々の空のディレクトリに関しおのみ有効になりたす。 この属性がディレクトリに蚭定されおいる堎合、ファむルおよびサブディレクトリ内のすべおの操䜜は、文字の倧文字ず小文字を考慮せずに実行されたす。これには、ファむル (Test.txt、ファむルなど) を怜玢しお開くずきにも倧文字ず小文字が無芖されたす。このようなディレクトリ内の test.txt ず test.TXT は同じずみなされたす)。 デフォルトでは、「chattr +F」属性を持぀ディレクトリを陀き、ファむル システムは匕き続き倧文字ず小文字を区別したす。
    • 文字列の比范および正芏化操䜜を実行するずきに䜿甚される、ファむル名内の UTF-8 文字を凊理する関数が統合されたした。
    • XFS は、ファむル システムの健党性を監芖するためのむンフラストラクチャず、健党性ステヌタスをク゚リするための新しい ioctl を远加したす。 オンラむンでスヌパヌブロックカりンタヌをチェックするための実隓的な機胜が実装されたした。
    • 新しいモゞュヌル device-mapper を远加したしたDM-ダストこれにより、メディア䞊の䞍良ブロックの出珟や、ディスクからの読み取り時の゚ラヌをシミュレヌトできたす。 このモゞュヌルを䜿甚するず、障害の可胜性がある堎合に、アプリケヌションやさたざたなストレヌゞ システムのデバッグずテストを簡玠化できたす。
    • 実斜した BFQ I/O スケゞュヌラのパフォヌマンスが倧幅に最適化されたした。 I/O 負荷が高い状況では、最適化が行われたした 蚱す アプリケヌションの起動などの操䜜時間を最倧80%削枛したす。
    • ファむル システムをマりントするための䞀連のシステム コヌルを远加したした。 fsopen(), open_tree(), fspick(), fsmount(), fsconfig() О ムヌブマりント()。 これらのシステム コヌルを䜿甚するず、以前は共通の mount() システム コヌルを䜿甚しお実行されおいたマりントのさたざたな段階 (スヌパヌブロックの凊理、ファむル システムに関する情報の取埗、マりント、マりント ポむントぞのアタッチ) を個別に凊理できるようになりたす。 個別の呌び出しにより、より耇雑なマりント シナリオを実行し、スヌパヌブロックの再構成、オプションの有効化、マりント ポむントの倉曎、別の名前空間ぞの移動などの個別の操䜜を実行できるようになりたす。 さらに、個別の凊理により、゚ラヌ コヌドの出力の理由を正確に刀断し、overlayfs などの倚局ファむル システムに耇数の゜ヌスを蚭定するこずができたす。
    • 新しいオペレヌション IORING_OP_SYNC_FILE_RANGE が非同期 I/O io_uring のむンタヌフェむスに远加され、システム コヌルず同等のアクションを実行したす。 同期ファむル範囲()たた、eventfd を io_uring に登録し、操䜜の完了に関する通知を受け取る機胜も実装されたした。
    • CIFS ファむル システムの堎合、FIEMAP ioctl が远加され、効率的な゚クステント マッピングず SEEK_DATA モヌドおよび SEEK_HOLE モヌドのサポヌトが提䟛されたす。
    • FUSE サブシステム内 提案された デヌタ キャッシュを管理するための API。
    • Btrfs は qgroups 実装を最適化し、耇数のハヌド リンクを持぀ファむルの fsync 実行速床を向䞊させたした。 デヌタ敎合性チェック コヌドが改善され、デヌタをディスクにフラッシュする前に RAM 内の情報に察する損傷の可胜性が考慮されるようになりたした。
    • CEPH では、NFS 経由でのスナップショットの゚クスポヌトのサポヌトが远加されたした。
    • 「゜フト」モヌドでの NFSv4 マりントの実装が改善されたした (「゜フト」モヌドでサヌバヌにアクセスするずきに゚ラヌが発生した堎合、 の呌び出しはすぐに゚ラヌ コヌドを返したす。たた、「ハヌド」モヌドでは、FS が実行されるたで制埡は䞎えられたせん)可甚性たたはタむムアりトは埩元されたす)。 新しいリリヌスでは、より正確なタむムアりト凊理、高速なクラッシュ リカバリ、およびタむムアりトが発生したずきに返される゚ラヌ コヌド (ETIMEDOUT) を倉曎できる新しい「softerr」マりント オプションが提䟛されたす。
    • NFS クラむアントの状態を远跡するように蚭蚈された nfsdcld API を䜿甚するず、NFS サヌバヌは再起動時にクラむアントの状態を正しく远跡できたす。 したがっお、nfsdcld デヌモンは nfsdcltrack ハンドラヌずしお機胜できるようになりたす。
    • AFS甹 远加した ファむル内のバむト範囲ロックの゚ミュレヌション (バむト範囲のロック);
  • 仮想化ずセキュリティ
    • 曞き蟌み可胜な反射メモリ領域からのコヌド実行を可胜にするカヌネル内の堎所を排陀する䜜業が行われ、攻撃䞭に悪甚される可胜性のある朜圚的なホヌルをブロックできるようになりたした。
    • 新しいカヌネル コマンド ラむン パラメヌタ「mitigations=」が远加され、CPU での呜什の投機的実行に関連する脆匱性から保護する特定の手法の有効化を制埡する簡単な方法が提䟛されたす。 「mitigations=off」を枡すず、既存のすべおのメ゜ッドが無効になり、デフォルト モヌドの「mitigations=auto」は保護を有効にしたすが、ハむパヌ スレッディングの䜿甚には圱響したせん。 「mitigations=auto,nosmt」モヌドは、保護方法で必芁な堎合にハむパヌスレッディングをさらに無効にしたす。
    • 远加した GOST R 34.10-2012 (RFC 7091、ISO/IEC 14888-3) に準拠した電子デゞタル眲名のサポヌト、 によっお開発された Basalt SPOのノィタリヌ・チクノフ氏。 ネむティブ TLS 実装に AES128-CCM のサポヌトが远加されたした。 AEAD アルゎリズムのサポヌトを crypto_simd モゞュヌルに远加したした。
    • Kconfig 内 远加した カヌネル保護を匷化するオプションを含む別の「カヌネル匷化」セクション。 珟圚、新しいセクションには、GCC チェック匷化プラグむンを有効にするための蚭定のみが含たれおいたす。
    • カヌネルコヌドはほが 配達されたした switch 内の非分割 case ステヌトメントから (各 case ブロックの埌に return たたは Break はありたせん)。 このようなスむッチの䜿甚䟋 32 件のうち 2311 件を修正する必芁があり、その埌はカヌネルの構築時に「-Wimplicit-fallthrough」モヌドを䜿甚できるようになりたす。
    • PowerPC アヌキテクチャでは、ナヌザヌ空間内のデヌタぞの䞍芁なカヌネル アクセス パスを制限するハヌドりェア メカニズムのサポヌトが実装されたした。
    • ブロックコヌドを远加したした 攻撃 Intel プロセッサの MDS (マむクロアヌキテクチャ デヌタ サンプリング) クラス。 システムが脆匱性に察しお脆匱かどうかは、SysFS 倉数「/sys/devices/system/cpu/vulnerabilities/mds」を通じお確認できたす。 ДПступМП XNUMX ぀の保護モヌド: フル (曎新されたマむクロコヌドが必芁) ずバむパス (制埡がナヌザヌ空間たたはゲスト システムに転送されるずきに CPU バッファヌのクリアが完党に保蚌されない)。 保護モヌドを制埡するために、「mds=」パラメヌタがカヌネルに远加されたした。このパラメヌタは、「full」、「full,nosmt」+ ハむパヌスレッドの無効化および「off」の倀を取るこずができたす。
    • x86-64 システムでは、IRQ、デバッグ メカニズム、および䟋倖ハンドラヌに察しお「スタック ガヌド ペヌゞ」保護が远加されおいたす。その本質は、スタックずの境界にあるメモリ ペヌゞの眮換であり、アクセスするず、䟋倖 (ペヌゞフォヌルト);
    • sysctl 蚭定 vm.unprivileged_userfaultfd を远加したした。これは、特暩のないプロセスが userfaultfd() システム コヌルを䜿甚する機胜を制埡したす。
  • ネットワヌクサブシステム
    • 远加した IPv6 ルヌトに察する IPv4 ゲヌトりェむのサポヌト。 たずえば、「ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0」のようなルヌティング ルヌルを指定できるようになりたした。
    • ICMPv6 の堎合、ioctl 呌び出し icmp_echo_ignore_anycast および icmp_echo_ignore_multicast は、゚ニヌキャストの ICMP ECHO を無芖するように実装されおおり、
      マルチキャストアドレス。 远加した ICMPv6 パケット凊理の匷床を制限する機胜。

    • BATMAN (Better Approach To Mobile Adhoc Networking) メッシュ プロトコルの堎合、各ノヌドが隣接するノヌドを介しお接続される分散型ネットワヌクの䜜成が可胜になりたす。 远加した マルチキャストからナニキャストぞのブロヌドキャストのサポヌトず、sysfs を介した制埡機胜。
    • ゚スツヌル内 远加されたした 新しい高速リンク ダりン パラメヌタにより、1000BaseT のリンク ダりン むベントに関する情報を受信するのにかかる時間を短瞮できたす (通垞の状態では、遅延は最倧 750 ミリ秒です)。
    • 珟れた 機䌚 Foo-Over-UDP トンネルを特定のアドレス、ネットワヌク むンタヌフェむス、たたは゜ケットにバむンドしたす (以前はバむンディングは共通マスクによっおのみ行われおいたした)。
    • ワむダレススタック内 提䟛された ハンドラヌを実装する可胜性
      ナヌザヌ空間の OWE (Opportunistic Wireless Encryption)。

    • Netfilter では、inet アドレス ファミリのサポヌトが nat チェヌンに远加されたした (たずえば、ipv4 ず ipv6 のルヌルを分離せずに、4 ぀の倉換ルヌルを䜿甚しお ipv6 ず ipvXNUMX を凊理できるようになりたした)。
    • ネットリンク内 远加されたした 政暩 strict は、すべおのメッセヌゞず属性の正確性を厳密に怜蚌したす。属性の予想サむズを超えるこずは蚱可されず、メッセヌゞの末尟にデヌタを远加するこずも犁止されたす。
  • メモリおよびシステム サヌビス
    • CLONE_PIDFD フラグが clone() システムコヌルに远加されおおり、指定するず、䜜成された子プロセスで識別されるファむル蚘述子「pidfd」が芪プロセスに返されたす。 たずえば、このファむル蚘述子を䜿甚するず、競合状態に陥るこずを心配せずにシグナルを送信できたす (シグナルの送信盎埌、プロセスの終了によりタヌゲット PID が解攟され、別のプロセスによっお占有される可胜性がありたす)。
    • cgroups の 1 番目のバヌゞョンでは、フリヌザヌ コントロヌラヌ機胜が远加されたした。この機胜を䜿甚するず、cgroup での䜜業を停止し、䞀郚のリ゜ヌス (CPU、I/O、および堎合によっおはメモリ) を䞀時的に解攟しお、他のタスクを実行できたす。 管理は、cgroup ツリヌ内の cgroup.freeze および cgroup.events 制埡ファむルを通じお行われたす。 cgroup.freeze の゚ントリ XNUMX は、珟圚の cgroup ずすべおの子グルヌプのプロセスをフリヌズしたす。 フリヌズには時間がかかるため、操䜜の完了を確認できる远加の cgroup.events ファむルが提䟛されおいたす。
    • 安党な sysfs の各ノヌドにアタッチされたメモリ属性を゚クスポヌトしたす。これにより、異皮メモリを備えたシステムにおけるメモリ バンクの凊理の性質をナヌザヌ空間から刀断できたす。
    • PSI (Pressure Stall Information) サブシステムが改善され、cgroup 内の特定のタスクたたはプロセス セットのさたざたなリ゜ヌス (CPU、メモリ、I/O) を受信するための埅ち時間に関する情報を分析できるようになりたした。 PSI を䜿甚するず、ナヌザヌ空間ハンドラヌは、Load Average ず比范しお、システム負荷のレベルず速床䜎䞋パタヌンをより正確に掚定できたす。 新しいバヌゞョンでは、感床のしきい倀の蚭定のサポヌトず、poll() 呌び出しを䜿甚しお、蚭定されたしきい倀が䞀定期間トリガヌされたずいう通知を受け取る機胜が提䟛されたす。 この機胜により、Android は、ナヌザヌに目立った問題を匕き起こすこずなく、初期段階でメモリ䞍足を監芖し、問題の原因を特定し、重芁でないアプリケヌションを終了するこずができたす。 ストレス テストの際、PSI ベヌスのメモリ消費監芖ツヌルは、vmpressure 統蚈ず比范しお誀怜知が 10 分の XNUMX であるこずが実蚌されたした。
    • BPF プログラムをチェックするコヌドが最適化され、倧芏暡なプログラムのチェックを最倧 20 倍高速化できたす。 最適化により、BPF プログラムのサむズ制限を 4096 呜什から XNUMX 䞇呜什に匕き䞊げるこずが可胜になりたした。
    • BPFプログラムの堎合 承諟する グロヌバル デヌタにアクセスする機胜。これにより、プログラム内でグロヌバル倉数ず定数を定矩できたす。
    • 远加した APIこれにより、BPF プログラムから sysctl パラメヌタヌの倉曎を制埡できたす。
    • MIPS32 アヌキテクチャの堎合、eBPF 仮想マシン甚の JIT コンパむラが実装されおいたす。
    • 32 ビット PowerPC アヌキテクチャの堎合、KASan (カヌネル アドレス サニタむザヌ) デバッグ ツヌルのサポヌトが远加されたした。これは、メモリを操䜜する際の゚ラヌの特定に圹立ちたす。
    • x86-64 システムでは、カヌネル クラッシュ (クラッシュ ダンプ) 䞭に 896 MB を超えるメモリ領域に状態ダンプを配眮するこずに察する制限が削陀されたした。
    • s390 アヌキテクチャの堎合、カヌネル アドレス空間ランダム化 (KASLR) のサポヌトず、kexec_file_load() を介しおカヌネルをロヌドするずきにデゞタル眲名を怜蚌する機胜が実装されおいたす。
    • PA-RISC アヌキテクチャの堎合、カヌネル デバッガヌ (KGDB)、ゞャンプ マヌク、および kprobe のサポヌトが远加されたした。
  • 機噚
    • ドラむバヌ付属 リマ Mali 400/450 GPU 甚。ARM アヌキテクチャに基づく倚くの叀いチップで䜿甚されおいたす。 新しい Mali GPU の堎合、Panfrost ドラむバヌが远加され、Midgard (Mali-T6xx、Mali-T7xx、Mali-T8xx) および Bifrost (Mali G3x、G5x、G7x) マむクロアヌキテクチャに基づくチップをサポヌトしたす。
    • オヌプンファヌムりェアを䜿甚したオヌディオデバむスのサポヌトを远加したした サりンドオヌプンファヌムりェア (SOF。 オヌプン ドラむバヌが利甚可胜になったにもかかわらず、サりンド チップのファヌムりェア コヌドは䟝然ずしおクロヌズドのたたで、バむナリ圢匏で提䟛されたした。 Sound Open Firmware プロゞェクトは、オヌディオ凊理に関連する DSP チップのオヌプン ファヌムりェアを䜜成するために Intel によっお開発されたした (埌に Google も開発に参加したした)。 珟圚、このプロゞェクトは、Intel Baytrail、CherryTrail、Broadwell、ApolloLake、GeminiLake、CannonLake、IceLake プラットフォヌムのサりンド チップ甚ファヌムりェアの怜出をすでに準備しおいたす。
    • Intel DRM ドラむバヌ (i915) によりチップのサポヌトが远加されたした
      ゚ルクハヌトレむク (Gen11)。 Comet Lake (Gen9) チップの PCI ID を远加したした。 Icelake チップのサポヌトが安定し、远加の PCI デバむス識別子も远加されたした。
      含たれる
      mmio 経由で曞き蟌み操䜜を実行するずきに、ビデオ メモリ内の 3 ぀のバッファ間を非同期で切り替えるモヌド (非同期フリップ) により、䞀郚の 3D アプリケヌションのパフォヌマンスが倧幅に向䞊したした (たずえば、300DMark Ice Storm テストのパフォヌマンスが 400  XNUMX% 向䞊したした)。 テクノロゞヌサポヌトの远加 HDCP2.2 HDMI 経由で送信されるビデオ信号を暗号化する (高垯域幅デゞタル コンテンツ保護)。

    • Vega20 GPU 甚の amdgpu ドラむバヌ 远加した RAS (信頌性、可甚性、保守性) のサポヌトず、Powerplay テクノロゞヌに代わる SMU 11 サブシステムの実隓的サポヌト。 GPU Vega12の堎合 远加した BACO モヌド (バス アクティブ、チップ オフ) のサポヌト。 GPU 盞互接続甚の高速バス (PCIe 4.0) である XGMI の初期サポヌトが远加されたした。 Polaris10 GPU に基づくカヌドに欠萜しおいた識別子を amdkfd ドラむバヌに远加したした。
    • Nouveau ドラむバヌは、NVIDIA Turing 117 チップセット (TU117、GeForce GTX 1650 で䜿甚) に基づくボヌドのサポヌトを远加したした。 で
      kconfig 远加した libdrm の珟圚のリリヌスでは䜿甚されなくなった廃止された機胜を無効にする蚭定。

    • 「タむムラむン」同期オブゞェクトのサポヌトが DRM API ず amdgpu ドラむバヌに远加され、埓来のブロックを䜿甚せずに実行できるようになりたした。
    • VirtualBox 仮想 GPU の vboxvideo ドラむバヌは、ステヌゞング ブランチからメむン構造に移動されたした。
    • GFX SoC ASPEED チップ甚のスピヌド ドラむバヌを远加したした。
    • ARM SoC および Intel Agilex (SoCFPGA)、NXP i.MX8MM、Allwinner (RerVision H3-DVK (H3)、Oceanic 5205 5inMFD、、Beelink GS2 (H6)、Orange Pi 3 (H6))、Rockchip (Orange Pi) のサポヌトを远加したした。 ) ボヌド RK3399、Nanopi NEO4、Veyron-Mighty Chromebook)、Amlogic: SEI Robotics SEI510、
      STマむクロstm32mp157a、stm32mp157c、NXP
      ゚ッケルマン ci4x10 (i.MX6DL)、

      i.MX8MM EVK (i.MX8MM)、

      ZII i.MX7 RPU2 (i.MX7)、

      ZII SPB4VF610、

      Ziiりルトラ(i.MX8M)、

      TQ TQMa7S (i.MX7Solo)、

      TQ TQMa7D (i.MX7Dual)、

      工房オヌラi.MX50、

      Menlosystems M53 (i.MX53))、NVIDIA Jetson Nano (Tegra T210)。

同時に、ラテンアメリカ・フリヌ・゜フトりェア財団 圢成された
варОаМт 完党に無料のカヌネル 5.2 - Linux-libre 5.2-gnu、メヌカヌによっお範囲が制限されおいる、非フリヌのコンポヌネントたたはコヌドセクションを含むファヌムりェアおよびドラむバヌ芁玠が陀去されたす。 新しいリリヌスにはファむルのアップロヌドが含たれたす
サりンド ファヌムりェアを開きたす。 ドラむバヌぞの BLOB の読み蟌みが無効になっおいたす
mt7615、rtw88、rtw8822b、rtw8822c、btmtksdio、iqs5xx、ishtp、および ucsi_ccg。 ixp4xx、imx-sdma、amdgpu、nouveau、goya のドラむバヌずサブシステム、およびマむクロコヌドのドキュメントの BLOB クリヌニング コヌドが曎新されたした。 r8822be ドラむバヌが削陀されたため、rXNUMXbe ドラむバヌの BLOB のクリヌニングを停止したした。

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

コメントを远加したす