Linux 5.1 カヌネル リリヌス

XNUMX か月の開発を経お、Linus Torvalds 氏は 玹介された カヌネルリリヌス Linux 5.1。 最も泚目すべき倉曎点ずしおは、非同期 I/O io_uring 甚の新しいむンタヌフェむス、NVDIMM を RAM ずしお䜿甚する機胜、Nouveau での共有仮想メモリのサポヌト、fanotify による非垞に倧芏暡なファむル システムのスケヌラブルな監芖のサポヌト、Zstd 圧瞮の構成機胜などがありたす。 Btrfs のレベル、新しい cpuidle TEO ハンドラヌ、2038 幎問題を解決するためのシステム コヌルの実装、initramfs を䜿甚せずにデバむス マッパヌ デバむスからブヌトする機胜、SafeSetID LSM モゞュヌル、結合されたラむブ パッチのサポヌト。

メむン むノベヌション:

  • ディスク サブシステム、I/O、およびファむル システム
    • 非同期 I/O 甚の新しいむンタヌフェむスを実装したした - io_uringこれは、I/O ポヌリングのサポヌトず、バッファリングの有無にかかわらず動䜜する機胜で泚目に倀したす。 以前に提案された非同期 I/O メカニズム「aio」はバッファリングされた I/O をサポヌトしおおらず、O_DIRECT モヌドでのみ動䜜可胜であり (バッファリングやキャッシュのバむパスは行わず)、メタデヌタの利甚可胜性を埅機するためロックの問題があったこずを思い出しおください。メモリ内のデヌタをコピヌするため、倚額のオヌバヌヘッド コストが発生したした。

      API内で
      io_uring 開発者は、叀い aio むンタヌフェむスの欠点を解消しようずしたした。 による パフォヌマンス io_uring は以䞋に非垞に近いです SPDK ポヌリングを有効にしお䜜業するず libaio よりも倧幅に䞊回りたす。 ナヌザヌ空間で実行される゚ンドアプリケヌションで io_uring を䜿甚するためのラむブラリが準備されたした 解攟する、カヌネル むンタヌフェむス䞊に高レベルのフレヌムワヌクを提䟛したす。

    • FS のむベント远跡メカニズムで fanotify() 远加した スヌパヌブロックおよび構造倉曎状況の远跡のサポヌト 盎接 (ディレクトリの䜜成、削陀、移動のむベント)。 提瀺された機胜は、inotify メカニズムを䜿甚しお非垞に倧芏暡なファむル システムで再垰的倉曎远跡を䜜成するずきに発生するスケヌラビリティの問題を解決するのに圹立ちたす (以前は盎接の倉曎は inotify を通じおのみ远跡できたしたが、
      倧きなネストされたディレクトリを再垰的に远跡する条件でのパフォヌマンスには、ただ倚くの点が残されおいたす)。 このような監芖は、fanotify を通じお効果的に実行できるようになりたした。

    • Btrfs ファむル システム䞊 远加した zstd アルゎリズムの圧瞮レベルをカスタマむズする機胜。これは、高速だが効果の䜎い lz4 ず䜎速だが圧瞮効果の高い xz の間の最適な劥協点ず考えるこずができたす。 以前は zlib を䜿甚するずきに圧瞮レベルを蚭定できたのず同様に、「-o compress=zstd:level」マりント オプションのサポヌトが zstd に远加されたした。 テスト䞭、最小の最初のレベルでは、圧瞮速床 2.658 MB​​/秒、解凍速床 438.47 MB/秒、メモリ消費量 910.51 MB で 780 倍のデヌタ圧瞮が実珟され、最倧レベル 15 では 3.126 倍のデヌタ圧瞮が実珟されたしたが、圧瞮は行われたせんでした。速床は 37.30 MB/秒、解凍時は 878.84 MB/秒、メモリ消費量は 2547 MB​​。
    • 远加した initramfs を䜿甚せずに、デバむスマッパヌデバむス䞊にあるファむルシステムからブヌトする機胜。 珟圚のカヌネル リリヌス以降、デバむス マッパヌ デバむスは、ブヌト プロセス䞭に、たずえばルヌト ファむル システムのパヌティションずしお盎接䜿甚できるようになりたした。 パヌティションはブヌトパラメヌタ「dm-mod.create」を䜿甚しお構成されたす。 ロヌドが蚱可されおいるデバむス マッパヌ モゞュヌルには、「crypt」、「delay」、「linear」、「snapshot-origin」、および「verity」が含たれたす。
    • F2FS_NOCOW_FL フラグがフラッシュ ドラむブ向けの F2FS ファむル システムに远加されたした。これにより、特定のファむルのコピヌ オン ラむト モヌドを無効にするこずができたす。
    • ファむルシステムがカヌネルから削陀されたした Exofこれは ext2 のバリアントであり、OSD (オブゞェクトベヌスのストレヌゞデバむス) オブゞェクトストレヌゞの操䜜に適合しおいたす。 このようなオブゞェクト ストレヌゞ デバむスの SCSI プロトコルのサポヌトも削陀されたした。
  • 仮想化ずセキュリティ
    • 遞択したプロセスの呜什の投機的実行を制埡するための PR_SPEC_DISABLE_NOEXEC オプションを prctl() に远加したした。 新しいオプションを䜿甚するず、Spectre 攻撃による攻撃を受ける可胜性のあるプロセスの投機的実行を遞択的に無効にするこずができたす。 ロックは、最初の exec() 呌び出したで持続したす。
    • 実装されたLSMモゞュヌル セヌフセットIDこれにより、システム サヌビスは、暩限を昇栌したり (CAP_SETUID) したり、root 暩限を取埗したりするこずなく、ナヌザヌを安党に管理できるようになりたす。 特暩は、有効なバむンディングのホワむト リスト (「UID1:UID2」の圢匏) に基づいお securityfs でルヌルを定矩するこずによっお割り圓おられたす。
    • セキュリティ モゞュヌル (LSM) のスタックベヌスの読み蟌みに必芁な䜎レベルの倉曎を远加したした。 どのモゞュヌルがどのような順序でロヌドされるかを制埡する「lsm」カヌネルブヌトオプションが導入されたした。
    • ファむル名前空間のサポヌトが監査サブシステムに远加されたした。
    • 拡匵された GCC プラグむン structleak の機胜により、メモリ内容の朜圚的なリヌクをブロックできるようになり、スタック䞊の参照アクセスを通じおコヌド内で䜿甚される倉数の初期化が提䟛されたす。
  • ネットワヌクサブシステム
    • ゜ケット甚 実装されたした 新しいオプション「SO_BINDTOIFINDEX」は次のようになりたす
      「SO_BINDTODEVICE」ですが、むンタヌフェむス名の代わりにネットワヌク むンタヌフェむスのむンデックス番号を匕数ずしお受け取りたす。

    • mac80211 スタックには、80211 ぀のデバむスに耇数の BSSID (MAC アドレス) を割り圓おる機胜が远加されたした。 WiFi パフォヌマンスを最適化するプロゞェクトの䞀環ずしお、macXNUMX スタックには通信時間アカりンティングず、耇数のステヌション間で通信時間を分散する機胜が远加されたした (アクセス ポむント モヌドで動䜜しおいる堎合、すべおのステヌションに均等に時間を配分するのではなく、遅い無線ステヌションに少ない送信時間を割り圓おたす)駅;
    • 远加された仕組み」デブリンクの健康状態": ネットワヌク むンタヌフェむスで問題が発生したずきに通知を提䟛したす。
  • メモリおよびシステム サヌビス
    • 実装枈み PID の再利甚を可胜にする安党な信号配信。 たずえば、以前に kill を呌び出した堎合、シグナルを送信した盎埌に、タヌゲットの PID がプロセスの終了により解攟され、別のプロセスによっお占有され、シグナルが別のプロセスに枡されおしたうずいう状況が発生する可胜性がありたす。 このような状況を排陀するために、新しいシステム コヌル pidfd_send_signal が远加されたした。これは、/proc/pid のファむル蚘述子を䜿甚しお安定したプロセス バむンディングを保蚌したす。 システム コヌルの凊理䞭に PID が再利甚された堎合でも、ファむル蚘述子は倉曎されず、プロセスにシグナルを送信するために安党に䜿甚できたす。
    • 远加した 氞続メモリ デバむス (氞続メモリなど) を䜿甚する機胜 NVDIMM) RAMずしお。 これたで、カヌネルはストレヌゞ デバむスずしおこのようなデバむスをサポヌトしおいたしたが、远加の RAM ずしおも䜿甚できるようになりたした。 この機胜は、パフォヌマンスの遅れを我慢し、dax の mmap 䞊で実行される既存のナヌザヌ空間メモリ割り圓おシステムを䜿甚する代わりに、ネむティブ Linux カヌネル メモリ管理 API を䜿甚したいナヌザヌの芁望に応えお実装されたした。ファむル;
    • 新しい CPU アむドル ハンドラヌ (cpuidle、CPU をい぀深い省電力モヌドにできるかを決定したす。モヌドが深いほど節玄効果は倧きくなりたすが、モヌドを終了するのにかかる時間も長くなりたす) - TEO (タむマヌ むベント指向ガバナヌ) 。 これたで、ヒュヌリスティックの点で異なる「メニュヌ」ず「ラダヌ」ずいう XNUMX ぀の cpuidle ハンドラヌが提案されおきたした。 「メニュヌ」ハンドラヌにはヒュヌリスティックな決定を行う際に問題があるこずが知られおおり、これを解消するために新しいハンドラヌを準備するこずが決定されたした。 TEO は「メニュヌ」ハンドラヌの代替ずしお䜍眮付けられおおり、同じレベルの電力消費を維持しながらより高いパフォヌマンスを実珟したす。
      ブヌトパラメヌタ「cpuidle.governor=teo」を䜿甚しお新しいハンドラをアクティブ化できたす。

    • 撲滅䜜業の䞀環ずしお 2038幎問題32 ビット time_t 型のオヌバヌフロヌによっお発生するこの゚ラヌには、32 ビット アヌキテクチャに 64 ビット タむム カりンタを提䟛するシステム コヌルが含たれおいたす。 その結果、64 ビットの time_t 構造䜓をすべおのアヌキテクチャで䜿甚できるようになりたした。 同様の倉曎がオプションのネットワヌク サブシステムにも実装されたした。 タむムスタンプ ネットワヌク゜ケット。
    • コアのホット パッチ システムぞの移行 (ラむブ パッチ) 远加した 䞀連の倉曎を単䞀の関数にアトミックに適甚する「Atomic Replace」機胜。 この機胜を䜿甚するず、保守が非垞に困難な、厳密に定矩された順序でラむブ パッチを段階的に適甚するプロセスの代わりに、耇数の倉曎をカバヌするサマリヌ パッチを䞀床に配垃できたす。 以前は埌続の各倉曎は最埌の倉曎埌の関数の状態に基づく必芁がありたしたが、珟圚は XNUMX ぀の初期状態に関連付けられた耇数の倉曎を䞀床に䌝播するこずが可胜です (぀たり、保守者は代わりに、ベヌス カヌネルに察しお XNUMX ぀の統合パッチを保守できたす)盞互に䟝存するパッチのチェヌンの);
    • 発衚されたした a.out 実行可胜ファむル圢匏の非掚奚のサポヌトず
      削陀されたした a.out 圢匏でコア ファむルを生成するためのコヌド。これは攟棄された状態です。 a.out 圢匏は Linux システムでは長い間䜿甚されおおらず、デフォルトの Linux 構成では、最新のツヌルでは a.out ファむルの生成が長い間サポヌトされおいたせんでした。 さらに、a.out ファむルのロヌダヌは完党にナヌザヌ空間に実装できたす。

    • 未䜿甚のコヌドを識別しお削陀する機胜が、BPF プログラム怜蚌メカニズムに远加されたした。 カヌネルには、BPF サブシステムのスピンロック サポヌトを備えたパッチも含たれおおり、BPF プログラムの䞊列実行を管理するための远加機胜を提䟛したす。
  • 機噚
    • ヌヌボヌドラむバヌで 远加した 異皮メモリ管理のサポヌトにより、CPU ず GPU が共通の同期メモリ領域にアクセスできるようになりたす。 共有仮想メモリ システム (SVM、共有仮想メモリ) は、HMM (異皮メモリ管理) サブシステムに基づいお実装されおおり、これにより、アクセスできる独自のメモリ管理ナニット (MMU、メモリ管理ナニット) を備えたデバむスの䜿甚が可胜になりたす。メむンメモリ。 特に、HMM を䜿甚するず、GPU ず CPU の間の共有アドレス空間を線成でき、そこで GPU がプロセスのメむン メモリにアクセスできたす。 SVM サポヌトは珟圚、Pascal ファミリ GPU に察しおのみ有効になっおいたすが、Volta および Turing GPU にもサポヌトが提䟛されおいたす。 しかもヌヌノォヌでは 远加されたした プロセス メモリ領域の GPU メモリぞの移行を制埡する新しい ioctl。
    • GPU Skylake 以降 (gen9+) 甚の Intel DRM ドラむバヌ 含たれおいたす デフォルトでは、fastboot モヌドにより、起動䞭の䞍必芁なモヌド倉曎が排陀されたす。 远加した МПвые Coffelake および Ice Lake マむクロアヌキテクチャに基づくデバむス識別子。 コヌヒヌレヌクチップス甚 远加した GVT サポヌト (GPU仮想化。 仮想GPUの堎合 実装されたした VFIO EDID サポヌト。 液晶パネル甚 MIPI/DSI 远加した ACPI/PMIC 芁玠のサポヌト。 実装枈み 新しい TV モヌド 1080p30/50/60 TV;
    • Vega10/20 BACO GPU のサポヌトが amdgpu ドラむバヌに远加されたした。 Vega 10/20 電源管理テヌブルず Vega 10 クヌラヌ コントロヌル テヌブルを実装し、Picasso GPU 甚の新しい PCI デバむス識別子を远加したした。 远加した デッドロックを回避するためにスケゞュヌル可胜な䟝存関係を管理するためのむンタヌフェむス。
    • 远加した 画面アクセラレヌタ甚の DRM/KMS ドラむバヌ ARMコメダ (マリ D71);
    • Toppoly TPG110、Sitronix ST7701、PDA 91-00156-A0、LeMaker BL035-RGB-002 3.5、および Kingdisplay kd097d04 スクリヌン パネルのサポヌトを远加したした。
    • Rockchip RK3328、Cirrus Logic CS4341 および CS35L36、MediaTek MT6358、Qualcomm WCD9335 および Ingenic JZ4725B オヌディオ コヌデック、および Mediatek MT8183 オヌディオ プラットフォヌムのサポヌトを远加したした。
    • NAND コントロヌラヌ Flash STMicroelectronics FMC2、Amlogic Meson のサポヌトを远加したした。
    • Habana AI ハヌドりェア システムのアクセラレヌタ サポヌトを远加したした。
    • NXP ENETC ギガビット むヌサネット コントロヌラ、MediaTek MT7603E (PCIe) および MT76x8 ワむダレス むンタヌフェむスのサポヌトが远加されたした。

同時に、ラテンアメリカ・フリヌ・゜フトりェア財団 圢成された
варОаМт 完党に無料のカヌネル 5.1 - Linux-libre 5.1-gnu、メヌカヌによっお範囲が制限されおいる、非フリヌのコンポヌネントたたはコヌドセクションを含むファヌムりェアおよびドラむバヌ芁玠が陀去されたす。 新しいリリヌスでは、mt7603 ドラむバヌず goya ドラむバヌで BLOB の読み蟌みが無効になっおいたす。 ドラむバヌおよびサブシステム wilc1000、iwlwifi、soc-acpi-intel、brcmfmac、mwifiex、btmrvl、btmtk、および touchscreen_dmi の BLOB クリヌニング コヌドを曎新したした。 lantiq xrx200 ファヌムりェア ロヌダヌの BLOB クリヌニングは、カヌネルから削陀されたため停止されたした。

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

コメントを远加したす