Linux 5.6 カヌネル リリヌス

XNUMX か月の開発を経お、Linus Torvalds 氏は 玹介された カヌネルリリヌス Linux 5.6。 最も泚目すべき倉曎点ずしおは、WireGuard VPN むンタヌフェむスの統合、USB4 のサポヌト、時間の名前空間、BPF を䜿甚した TCP 茻茳ハンドラヌの䜜成機胜、マルチパス TCP の初期サポヌト、2038 幎問題のカヌネルの陀去、「bootconfig」メカニズムが挙げられたす。 、ゟヌンFS。

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

メむン むノベヌション:

  • ネットワヌクサブシステム
    • 远加した VPNむンタヌフェヌスの実装 ワむダガヌド最新の暗号化方匏 (ChaCha20、Poly1305、Curve25519、BLAKE2s) に基づいお実装されおおり、䜿いやすく、耇雑さがなく、倚くの倧芏暡な実装で実蚌されおおり、非垞に高いパフォヌマンスを提䟛したす (OpenVPN よりも 3,9 倍高速です)スルヌプットの。 WireGuard は、暗号化キヌ ルヌティングの抂念を䜿甚したす。これには、各ネットワヌク むンタヌフェむスに秘密キヌを添付し、それを䜿甚しお公開キヌをバむンドするこずが含たれたす。 SSH ず同様の方法で接続を確立するために公開キヌが亀換されたす。 WireGuard が動䜜するために必芁な暗号化プリミティブ た キャリヌ・オヌバヌ 図曞通から 亜鉛 暙準の Crypto API の䞀郚ずしお、 含たれた 栞心に 5.5.
    • 開始 MPTCP (MultiPath TCP) をサポヌトするために必芁なコンポヌネントの統合。MPTCP (MultiPath TCP) は、異なる IP アドレスに関連付けられた異なるネットワヌク むンタヌフェむスを介しお耇数のルヌトに沿っお同時にパケットを配信する TCP 接続の操䜜を組織するための TCP プロトコルの拡匵です。 ネットワヌク アプリケヌションの堎合、このような集玄された接続は通垞の TCP 接続のように芋え、すべおのフロヌ分離ロゞックは MPTCP によっお実行されたす。 マルチパス TCP を䜿甚するず、スルヌプットず信頌性の䞡方を向䞊させるこずができたす。 たずえば、MPTCP を䜿甚するず、WiFi ず 4G リンクを同時に䜿甚しおスマヌトフォンでのデヌタ送信を敎理したり、XNUMX ぀の高䟡なリンクではなく耇数の安䟡なリンクを䜿甚しおサヌバヌを接続するこずでコストを削枛したりできたす。
    • 远加した ネットワヌクキュヌ凊理芏則 sch_ets のサポヌト (匷化された送信遞択、IEEE 802.1Qaz)、異なるトラフィック クラス間で垯域幅を分散する機胜を提䟛したす。 特定のトラフィック クラスの負荷が割り圓おられた垯域幅を䞋回っおいる堎合、ETS は他のトラフィック クラスが利甚可胜な (未䜿甚の) 垯域幅を䜿甚するこずを蚱可したす。 Qdisc sch_ets は PRIO 芏埋ずしお構成され、トラフィック クラスを䜿甚しお厳密な共有垯域幅制限を定矩したす。 ETS は専門分野の組み合わせずしお機胜したす プリオ О DRR — トラフィック クラスが厳密に制限されおいる堎合は PRIO が䜿甚されたすが、キュヌにトラフィックがない堎合は DRR のように機胜したす。
    • 新しいタむプの BPF プログラムを远加したした BPF_PROG_TYPE_STRUCT_OPSこれにより、BPF を通じおカヌネル関数ハンドラヌを実装できるようになりたす。 珟圚、この機胜は、BPF プログラムの圢匏で TCP 茻茳制埡アルゎリズムを実装するためにすでに䜿甚されおいたす。 䟋ずしお 提案 アルゎリズム実装を備えた BPF プログラム DCTCP.
    • コアに受け入れられる 倉曎、翻蚳ツヌル ゚スツヌル ioctl() を䜿甚しお ネットリンクむンタヌフェヌス。 新しいむンタヌフェむスにより、拡匵機胜の远加が容易になり、゚ラヌ凊理が改善され、状態が倉化したずきに通知を送信できるようになり、カヌネルずナヌザヌ空間の間の察話が簡玠化され、同期する必芁がある名前付きリストの数が枛りたす。
    • ゚ッゞ ネットワヌク機噚に察する䞭間パケット バッファリングの悪圱響 (バッファ膚匵) を軜枛するこずを目的ずした、FQ-PIE (Flow Queue PIE) ネットワヌク キュヌ管理アルゎリズムの実装が远加されたした。 FQ-PIE は、ケヌブル モデムを備えたシステムで䜿甚するず高い効率を発揮したす。
  • ディスク サブシステム、I/O、およびファむル システム
    • Btrfs ファむルシステムの堎合 远加した DISCARD 操䜜の非同期実装 (物理的に保存する必芁がなくなった解攟されたブロックにマヌクを付ける)。 圓初、DISCARD 操䜜は同期的に実行されおいたしたが、ドラむブが察応するコマンドの完了を埅機しおいるため、パフォヌマンスが䜎䞋する可胜性がありたした。 非同期実装により、ドラむブが DISCARD を完了するのを埅たずに、この操䜜をバックグラりンドで実行できたす。
    • XFS 内 実斜した 32 幎問題の原因ずなった叀い 64 ビット タむム カりンタヌ (time_t タむプは time2038_t に眮き換えられたした) を䜿甚したコヌドをクリヌンアップしたす。 32 ビット プラットフォヌムで発生した゚ラヌずメモリ砎損を修正したした。 コヌドは拡匵属性を䜿甚できるように再加工されたした。
    • ext4 ファむルシステムぞ 入力されたした 読み取りおよび曞き蟌み操䜜䞭の i ノヌド ロックの凊理に関連するパフォヌマンスの最適化。 ダむレクト I/O モヌドでの曞き換えパフォヌマンスが向䞊したした。 問題の蚺断を簡玠化するために、最初ず最埌の゚ラヌ コヌドがスヌパヌブロックに保存されたす。
    • F2FS ファむル システム䞊 実装されたした デヌタを圧瞮圢匏で保存する機胜。 個々のファむルたたはディレクトリに぀いおは、コマンド「chattr +c file」たたは「chattr +c dir;」を䜿甚しお圧瞮を有効にできたす。 ディレクトリ/ファむルをタッチしたす。」 パヌティション党䜓を圧瞮するには、マりント ナヌティリティで「-o compress_extension=ext」オプションを䜿甚したす。
    • カヌネルにはファむル システムが含たれおいたす ゟヌンFSこれにより、ゟヌン化されたストレヌゞ デバむスでの䞋䜍レベルの䜜業が簡玠化されたす。 ゟヌン ドラむブずは、ハヌド磁気ディスクたたは NVMe SSD 䞊のデバむスを意味したす。ストレヌゞ スペヌスは、ブロックたたはセクタのグルヌプを構成するゟヌンに分割されおおり、ブロック グルヌプ党䜓を曎新するデヌタの連続的な远加のみが蚱可されたす。 FS ZoneFS は Western Digital によっお開発され、ドラむブ内の各ゟヌンを個別のファむルに関連付けたす。このファむルを䜿甚しお、セクタヌおよびブロック レベルでの操䜜を行わずに raw モヌドでデヌタを保存できたす。 アプリケヌションが、ioctl を䜿甚しおブロック デバむスに盎接アクセスする代わりに、ファむル API を䜿甚できるようにしたす。
    • NFS では、UDP を介したパヌティションのマりントはデフォルトで無効になっおいたす。 NFS 4.2 仕様で定矩されおいる、サヌバヌ間でファむルを盎接コピヌする機胜のサポヌトが远加されたした。 新しいマりント オプション「softreval」を远加したした。これにより、サヌバヌ障害の堎合にキャッシュされた属性倀を䜿甚できるようになりたす。 たずえば、このオプションを指定するず、サヌバヌが䜿甚できなくなった埌も、NFS パヌティション内のパスに沿っお移動し、キャッシュに保存されおいる情報にアクセスするこずができたす。
    • 実斜した 個々のファむルの敎合性ず認蚌を監芖するために䜿甚される fs-verity メカニズムのパフォヌマンスの最適化。 Merkle ハッシュ ツリヌの䜿甚により、連続読み取り速床が向䞊したした。 キャッシュにデヌタがない堎合 (デヌタのあるペヌゞのプリ゚ンプティブ読み取りが適甚されおいる堎合)、FS_IOC_ENABLE_VERITY のパフォヌマンスが最適化されたした。
  • 仮想化ずセキュリティ
    • 実行䞭に SELinux モゞュヌルを無効にする機胜は非掚奚ずなり、既にアクティブ化された SELinux をアンロヌドするこずは将来的に犁止されたす。 SELinux を無効にするには、カヌネル コマンド ラむンで「selinux=0」パラメヌタを枡す必芁がありたす。
    • 远加した 時間の名前空間 (時間名前空間) のサポヌトにより、システム クロックの状態をコンテナヌ (CLOCK_REALTIME、CLOCK_REALTIME、
      CLOCK_MONOTONIC、CLOCK_BOOTTIME)、コンテナヌ内で独自の時間を䜿甚し、コンテナヌを別のホストに移行するずきは、CLOCK_MONOTONIC ず CLOCK_BOOTTIME の読み取り倀が倉曎されおいないこずを確認したす (スリヌプ モヌドであるこずを考慮するかどうかに関係なく、ロヌド埌の時間を考慮したす) 。

    • /dev/random ブロッキング プヌルは削陀されたした。 /dev/random の動䜜は、プヌル初期化埌の゚ントロピヌ ブロックを防ぐずいう点で /dev/urandom ず䌌おいたす。
    • コア カヌネルには、VirtualBox を実行しおいるゲスト システムがホスト環境 (VirtualBox 共有フォルダヌ) によっお゚クスポヌトされたディレクトリをマりントできるようにするドラむバヌが含たれおいたす。
    • 䞀連のパッチが BPF サブシステムに远加されたした (BPFディスパッチャヌ)、Retpoline メカニズムを䜿甚しお Spectre V2 クラス攻撃から保護する堎合、BPF プログラムに関連するむベントが発生したずきの BPF プログラムの呌び出し効率を高めるこずができたす (たずえば、BPF プログラムの呌び出しを高速化できたす)。ネットワヌクパケットが到着したす。
    • AMD APU に組み蟌たれた TEE (Trusted Execution Environment) をサポヌトするドラむバヌを远加したした。
  • メモリおよびシステム サヌビス
    • BPF では、グロヌバル関数のサポヌトが远加されたした。 開発は、BPF プログラムに含めるこずができる関数のラむブラリのサポヌトを远加する取り組みの䞀環ずしお実行されおいたす。 次のステップは、䜿甚䞭の既存のグロヌバル関数の眮き換えなど、グロヌバル関数のロヌドを可胜にする動的拡匵機胜をサポヌトするこずです。 BPF サブシステムは、バッチ モヌドでの実行をサポヌトする、マップ操䜜のバリアント (氞続デヌタの保存に䜿甚される) のサポヌトも远加したす。
    • によっお远加 「cpu_cooling」デバむスを䜿甚するず、過熱した CPU を短時間アむドル状態にしお冷华できたす。
    • システムコヌルを远加 openat2()これは、ファむル パスの解決を制限するための远加フラグのセットを提䟛したす (マりント ポむント、シンボリック リンク、マゞック リンク (/proc/PID/fd)、「../」コンポヌネントの亀差の犁止)。
    • big.LITTLE アヌキテクチャに基づく異皮システムの堎合、匷力な CPU コアず゚ネルギヌ効率の䜎い CPU コアを XNUMX ぀のチップに組み合わせたもので、リアルタむム タスクの実行時に uclamp_min パラメヌタが蚭定されたす (珟れた カヌネル 5.3 には、負荷を保護するメカニズムがありたす)。 このパラメヌタにより、スケゞュヌラによっおタスクが十分なパフォヌマンスを持぀ CPU コアに確実に配眮されたす。
    • カヌネルが解攟される 2038幎問題。 最埌に残ったハンドラヌを眮き換えたした。これは、゚ポカル タむム カりンタヌに 32 ビット (笊号付き int) 型 time_t を䜿甚しおいたした。これは、1970 幎のレポヌトを考慮するず、2038 幎にオヌバヌフロヌするはずです。
    • 非同期 I/O むンタヌフェむスの継続的な改善 io_uringその䞭で 提䟛された 新しい操䜜のサポヌト: IORING_OP_FALLOCATE (空の領域の予玄)、IORING_OP_OPENAT、
      IORING_OP_OPENAT2、
      IORING_OP_CLOSE (ファむルの開閉)、
      IORING_OP_FILES_UPDATE (クむック アクセス リストぞのファむルの远加ず削陀)、
      IORING_OP_STATX (ファむル情報芁求)、
      IORING_OP_READ、
      IORING_OP_WRITE (IORING_OP_READV および IORING_OP_WRITEV の簡略化された類䌌物)、
      IORING_OP_FADVISE、
      IORING_OP_MADVISE (posix_fadvise および madvise 呌び出しの非同期バリアント)、IORING_OP_SEND、
      IORING_OP_RECV (ネットワヌク デヌタの送受信)、
      IORING_OP_EPOLL_CTL (epoll ファむル蚘述子に察する操䜜を実行したす)。

    • システムコヌルを远加 pidfd_getfd()これにより、プロセスは、開いおいるファむルのファむル蚘述子を別のプロセスから取埗できるようになりたす。
    • 実装枈み 「bootconfig」メカニズム。コマンド ラむン オプションに加えお、蚭定ファむルを通じおカヌネルのパラメヌタを決定できたす。 このようなファむルを initramfs むメヌゞに远加するには、bootconfig ナヌティリティが提案されおいたす。 この機胜は、たずえばブヌト時に kprobe を構成するために䜿甚できたす。
    • 再蚭蚈された 名前のないパむプでのデヌタの曞き蟌みず読み取りを埅機するメカニズム。 この倉曎により、倧芏暡プロゞェクトの䞊行組み立おなどのタスクを高速化できるようになりたした。 ただし、バヌゞョン 4.2.1 で修正された 4.3 リリヌスのバグにより、最適化により GNU make で競合状態が発生する可胜性がありたす。
    • PR_SET_IO_FLUSHER フラグを prctl() に远加したした。このフラグを䜿甚するず、システムのメモリが少ない堎合に制限の察象ずならないメモリフリヌのプロセスをマヌクできたす。
    • Android で䜿甚されおいる ION メモリ分散システムに基づいお、サブシステムが実装されおいたす dma-buf ヒヌプこれにより、ドラむバヌ、アプリケヌション、およびさたざたなサブシステム間でメモリヌ領域を共有するための DMA バッファヌの割り圓おを制埡できたす。
  • ハヌドりェアアヌキテクチャ
    • E0PD 拡匵機胜のサポヌトが远加されたした。これは ARMv8.5 で登堎し、CPU での呜什の投機的実行に関連する攻撃に察する保護を可胜にしたす。 E0PD ベヌスの保護は、KPTI (カヌネル ペヌゞ テヌブル分離) 保護よりもオヌバヌヘッドが䜎くなりたす。
    • ARMv8.5 アヌキテクチャに基づくシステムの堎合、RNG 呜什のサポヌトが远加され、ハヌドりェア擬䌌乱数ゞェネレヌタヌぞのアクセスが提䟛されたす。 カヌネルでは、カヌネルが提䟛する擬䌌乱数ゞェネレヌタヌを初期化するずきに、RNG 呜什を䜿甚しお゚ントロピヌが生成されたす。
    • カヌネルに远加された MPX (メモリ保護拡匵機胜) のサポヌトを削陀 3.19 たた、ポむンタのチェックを敎理しお、メモリ領域の境界が確実に尊重されるようにするこずができたす。 このテクノロゞはコンパむラでは広く䜿甚されず、GCC から削陀されたした。
    • RISC-V アヌキテクチャでは、KASan (カヌネル アドレス サニタむザヌ) デバッグ ツヌルのサポヌトが実装されおおり、メモリを操䜜する際の゚ラヌの特定に圹立ちたす。
  • 機噚
    • 仕様サポヌトの実装 USB 4.0、Thunderbolt 3 プロトコルに基づいおおり、USB 40 および USB 2.0 ずの䞋䜍互換性を維持しながら、最倧 3.2 Gbps のスルヌプットを提䟛したす。 類掚するず Thunderbolt USB 4.0 むンタヌフェむスにより、コネクタ付きの XNUMX 本のケヌブルでさたざたなプロトコルをトンネリングできたす タむプCこれには、PCIe、ディスプレむ ポヌト、USB 3.x だけでなく、ホスト間のネットワヌク リンクを組織するためのプロトコルの゜フトりェア実装も含たれたす。 この実装は、Linux カヌネルにすでに含たれおいる Thunderbolt ドラむバヌを基にしお構築されおおり、USB4 互換のホストおよびデバむスで動䜜するように調敎されおいたす。 この倉曎により、単䞀のコネクタを介しお耇数のデバむスを接続するためのトンネルを䜜成する圹割を担う接続マネヌゞャヌの゜フトりェア実装に Thunderbolt 3 デバむスのサポヌトも远加されたす。
    • amdgpuドラむバヌ内 远加した HDCP 2.x (高垯域幅デゞタル コンテンツ保護) コピヌ保護テクノロゞの初期サポヌト。 Raven 2 ベヌスの AMD Pollock ASIC チップのサポヌトを远加したした。Renoir および Navi ファミリの GPU をリセットする機胜を実装したした。
    • Intel ビデオカヌド甚の DRM ドラむバヌ 远加した Ice Lake および Tiger Lake マむクロアヌキテクチャに基づくチップの DSI VDSC サポヌト、LMEM mmap (デバむス ロヌカル メモリ) が実装され、VBT (Video BIOS Table) 解析が改善され、Coffee Lake チップ甚の HDCP 2.2 サポヌトが実装されたした。
    • amdkfd ドラむバヌ コヌド (フィゞヌ、トンガ、ポラリスなどの個別 GPU 甹) を amdgpu ドラむバヌず統合する䜜業が続けられたした。
    • k10temp ドラむバヌが再加工され、AMD Zen CPU の電圧および電流パラメヌタヌの衚瀺のサポヌトず、Zen および Zen 2 CPU で䜿甚される枩床センサヌからの拡匵情報が远加されたした。
    • ヌヌボヌドラむバヌでは 远加した Turing マむクロアヌキテクチャ (GeForce RTX 2000) に基づく NVIDIA GPU の怜蚌枈みファヌムりェア ロヌド モヌドのサポヌト。これにより、これらのカヌドの 3D アクセラレヌションのサポヌトを有効にするこずができたした (NVIDIA デゞタル眲名付きの公匏ファヌムりェアをダりンロヌドする必芁がありたす)。 TU10x グラフィックス ゚ンゞンのサポヌトが远加されたした。 HD オヌディオの問題は解決されたした。
    • DisplayPort MST (マルチストリヌム トランスポヌト) 経由で送信される堎合のデヌタ圧瞮のサポヌトが远加されたした。
    • 新しいドラむバヌを远加したした。」ath11k» 802.11ax をサポヌトする Qualcomm ワむダレス チップ甚。
      このドラむバヌは mac80211 スタックに基づいおおり、アクセス ポむント、ワヌクステヌション、およびメッシュ ネットワヌク ノヌド モヌドをサポヌトしたす。

    • sysfs を介しお、最新のハヌド ドラむブや SSD で䜿甚される読み取り可胜な枩床センサヌの枬定倀にアクセスできたす。
    • 貢献したした コヌドを取り陀くこずを目的ずした、ALSA サりンド システムぞの倧幅な倉曎。 2038幎問題 (snd_pcm_mmap_status むンタヌフェむスおよび snd_pcm_mmap_control むンタヌフェむスでの 32 ビット time_t タむプの䜿甚を回避したす)。 新しいオヌディオ コヌデックのサポヌトが远加されたした
      クアルコム WCD9340/WCD9341、Realtek RT700、RT711、RT715、RT1308、Ingenic JZ4770。

    • 远加した LCD パネル甚ドラむバヌ Logic PD 28、Jimax8729d MIPI-DSI、igenic JZ4770、Sony acx424AKP、Leadtek LTK500HD1829、Xinpeng XPP055C272、AUO B116XAK01、GiantPlus GPM940B0、
      BOE NV140FHM-N49、
      サトズ SAT050AT40H12R2、
      シャヌプ LS020B1DD01D。

    • 远加した ARM ボヌドおよび Gen1 プラットフォヌムのサポヌト Amazon Echo (OMAP3630 ベヌス)、Samsung Galaxy S III mini (GT-I8190)、Allwinner Emlid Neutis、Libre Computer ALL-H3-IT、PineH64 Model B、Aibretech Amlogic GX PC、
      Armada SolidRun Clearfog GTR、NXPGateworks GW59xx、
      Tolino Shine 3 電子ブック リヌダヌ、
      Embedded Artists COM (i.MX7ULP)、SolidRun Clearfog CX/ITX および HoneyComb (LX2160A)、Google Coral Edge TPU (i.MX8MQ)、
      Rockchip Radxa Dalang キャリア、Radxa Rock Pi N10、VMARC RK3399Pro SOM
      ST Ericsson HREF520、Inforce 6640、SC7180 IDP、Atmel/Microchip AM9X60 (ARM926 SoC、Kizboxmini)、ST stm32mp15、AM3703/AM3715/DM3725、ST Ericsson ab8505、Unisoc SC9863A、Qualcomm SC7180。 Raspberry Pi 4 で䜿甚される PCIe コントロヌラヌのサポヌトが远加されたした。

同時に、ラテンアメリカ・フリヌ・゜フトりェア財団 圢成された
варОаМт 完党に無料のカヌネル 5.6 - Linux-libre 5.6-gnu、メヌカヌによっお範囲が制限されおいる、非フリヌのコンポヌネントたたはコヌドセクションを含むファヌムりェアおよびドラむバヌ芁玠が陀去されたす。 新しいリリヌスでは、AMD TEE、ATH11K、および Mediatek SCP のドラむバヌでの BLOB ロヌドが無効になりたす。 AMD PSP、amdgpu、および nouveau ドラむバヌおよびサブシステムの BLOB クリヌニング コヌドを曎新したした。

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

コメントを远加したす