Linux kernvrystelling 5.19

Na twee maande se ontwikkeling het Linus Torvalds die vrystelling van die Linux-kern 5.19 aangebied. Van die mees noemenswaardige veranderinge: ondersteuning vir die LoongArch verwerker argitektuur, integrasie van "BIG TCP" kolle, on-demand modus in fscache, kode verwydering om die a.out formaat te ondersteun, die vermoë om ZSTD te gebruik vir firmware kompressie, 'n koppelvlak vir bestuur geheue-uitsetting uit gebruikersruimte, verhoog die betroubaarheid en werkverrigting van die pseudo-ewekansige getalgenerator, ondersteuning vir Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) en ARM SME (Scalable Matrix Extension) uitbreidings.

In die aankondiging het Linus gesê dat die volgende kernvrystelling heel waarskynlik 6.0 genommer sal wees, aangesien die 5.x-tak genoeg vrystellings opgehoop het om die eerste nommer in die weergawenommer te verander. Die nommerverandering word om estetiese redes uitgevoer en is 'n formele stap wat ongemak verlig as gevolg van die ophoping van 'n groot aantal kwessies in die reeks.

Linus het ook genoem dat hy 'n Apple-skootrekenaar gebaseer op ARM64-argitektuur (Apple Silicon) met 'n Linux-omgewing gebaseer op die Asahi Linux-verspreiding gebruik het om die vrystelling te skep. Dit is nie Linus se primêre werkstasie nie, maar hy het die platform gebruik om die geskiktheid daarvan vir kernwerk te toets en om te verseker dat hy kernvrystellings kan produseer terwyl hy met 'n liggewig skootrekenaar byderhand reis. Voorheen, baie jare gelede, het Linus ondervinding gehad met die gebruik van Apple-toerusting vir ontwikkeling – hy het eenkeer 'n rekenaar gebruik wat op die ppc970-verwerker gebaseer is en 'n Macbook Air-skootrekenaar.

Die nuwe weergawe bevat 16401 2190 regstellings van 16206 2127 ontwikkelaars (in die vorige weergawe was daar 90 13847 regstellings van 1149456 349177 ontwikkelaars), die pleistergrootte is 39 MB (die veranderinge het 5.19 21 lêers geraak, 11 4 3 reëls kode is bygevoeg, XNUMX XNUMX is uitgevee). Ongeveer XNUMX% van alle veranderinge wat in XNUMX aangebring is, hou verband met toestelbestuurders, ongeveer XNUMX% van veranderinge hou verband met die opdatering van kode spesifiek vir hardeware-argitekture, XNUMX% hou verband met die netwerkstapel, XNUMX% hou verband met lêerstelsels en XNUMX% hou verband met interne kernsubstelsels.

Sleutel innovasies in kern 5.19:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Die EROFS (Enhanced Read-Only File System) lêerstelsel, bedoel vir gebruik op leesalleen partisies, is omgeskakel om die fscache-substelsel te gebruik, wat datakas verskaf. Die verandering het die werkverrigting aansienlik verbeter van stelsels waarin 'n groot aantal houers vanaf 'n EROFS-gebaseerde beeld bekendgestel word.
    • 'n Op-aanvraag leesmodus is by die fscache-substelsel gevoeg, wat gebruik word om EROFS te optimaliseer. Die nuwe modus laat jou toe om leeskas te organiseer vanaf FS-beelde wat in die plaaslike stelsel geleë is. In teenstelling met die aanvanklik beskikbare werkingsmodus, wat gefokus is op die kas in die plaaslike lêerstelsel van data wat deur netwerklêerstelsels oorgedra word, delegeer die "op-aanvraag"-modus die funksies om data te herwin en dit na die kas te skryf na 'n aparte agtergrondproses wat in gebruikersruimte loop.
    • XFS bied die vermoë om miljarde uitgebreide eienskappe in 'n i-node te stoor. Die maksimum aantal omvangs vir een lêer is verhoog van 4 miljard tot 247. 'n Modus is geïmplementeer om verskeie uitgebreide lêerkenmerke gelyktydig op te dateer.
    • Die Btrfs-lêerstelsel het geoptimaliseerde werk met slotte, wat 'n verhoging van ongeveer 7% in werkverrigting moontlik gemaak het wanneer direk in die nou-modus geskryf word. Die werkverrigting van bedrywighede in NOCOW-modus (sonder kopieer-op-skryf) word met ongeveer 3% verhoog. Die las op die bladsykas wanneer die "stuur"-opdrag uitgevoer word, is verminder. Die minimum grootte van subbladsye is verminder van 64K na 4K (subbladsye kleiner as kernbladsye kan gebruik word). 'n Oorgang is gemaak van die gebruik van 'n radiksboom na die XArrays-algoritme.
    • 'n Modus is by die NFS-bediener gevoeg om die behoud van die sluittoestand uit te brei wat gestel is deur 'n kliënt wat opgehou het om op versoeke te reageer. Die nuwe modus laat jou toe om die skoonmaak van die slot vir tot 'n dag te vertraag, tensy 'n ander kliënt 'n mededingende slot versoek. In normale modus word die blokkering uitgevee 90 sekondes nadat die kliënt ophou reageer.
    • Die gebeurtenisopsporing-substelsel in die fanotify FS implementeer die FAN_MARK_EVICTABLE-vlag, waarmee jy die vaspen van teiken-i-nodusse in die kas kan deaktiveer, byvoorbeeld om sub-takke te ignoreer sonder om hul dele in die kas vas te pen.
    • Die bestuurder vir die FAT32-lêerstelsel het ondersteuning bygevoeg vir die verkryging van inligting oor die tyd van lêerskepping deur die statx-stelseloproep met die implementering van 'n meer doeltreffende en funksionele weergawe van stat(), wat uitgebreide inligting oor die lêer terugstuur.
    • Beduidende optimalisering is aan die exFAT-drywer gemaak om gelyktydige skoonmaak van 'n groep sektore toe te laat wanneer die 'dirsync'-modus aktief is, in plaas van opeenvolgende sektor-vir-sektor skoonmaak. Deur die aantal blokversoeke na optimalisering te verminder, het die prestasie van die skep van 'n groot aantal dopgehou op die SD-kaart met meer as 73-85% toegeneem, afhangende van die groepgrootte.
    • Die kern bevat die eerste regstellende opdatering van die ntfs3-bestuurder. Sedert ntfs3 verlede Oktober by die 5.15-kern ingesluit is, is die drywer nie opgedateer nie en het kommunikasie met die ontwikkelaars verlore gegaan, maar die ontwikkelaars het nou hervat om veranderinge te publiseer. Die voorgestelde pleisters het foute wat gelei het tot geheuelekkasies en ineenstortings uitgeskakel, probleme met xfstests-uitvoering opgelos, ongebruikte kode skoongemaak en tikfoute reggestel.
    • Vir OverlayFS is die vermoë om gebruikers-ID's van gemonteerde lêerstelsels te karteer, geïmplementeer, wat gebruik word om die lêers van 'n spesifieke gebruiker op 'n gemonteerde vreemde partisie met 'n ander gebruiker op die huidige stelsel te pas.
  • Geheue en stelseldienste
    • Bygevoeg aanvanklike ondersteuning vir die LoongArch-instruksiestel-argitektuur wat in die Loongson 3 5000-verwerkers gebruik word, wat die nuwe RISC ISA implementeer, soortgelyk aan MIPS en RISC-V. Die LoongArch-argitektuur is beskikbaar in drie geure: gestroopte 32-bis (LA32R), gewone 32-bis (LA32S) en 64-bis (LA64).
    • Kode verwyder om die a.out-uitvoerbare lêerformaat te ondersteun, wat in vrystelling 5.1 opgeskort is. Die a.out-formaat is lankal afgekeur op Linux-stelsels, en generering van a.out-lêers word nie deur moderne nutsgoed in verstek Linux-konfigurasies ondersteun nie. Die laaier vir a.out-lêers kan geheel en al in gebruikersruimte geïmplementeer word.
    • Ondersteuning vir x86-spesifieke opstartopsies is gestaak: nosp, nosmap, nosmep, noexec en noclflush).
    • Ondersteuning vir die verouderde CPU h8300-argitektuur (Renesas H8/300), wat lankal sonder ondersteuning gelaat is, is gestaak.
    • Uitgebreide vermoëns wat verband hou met reaksie op die opsporing van gesplete slotte (“split locks”) wat plaasvind wanneer toegang tot ongelynde data in die geheue verkry word as gevolg van die feit dat wanneer 'n atoominstruksie uitgevoer word, die data twee SVE-kaslyne kruis. Sulke blokkasies lei tot 'n aansienlike afname in prestasie. As die kern voorheen by verstek 'n waarskuwing sou uitreik met inligting oor die proses wat die blokkering veroorsaak het, sal die problematiese proses nou verder vertraag word om die werkverrigting van die res van die stelsel te behou.
    • Bygevoeg ondersteuning vir die IFS (In-Field Scan) meganisme wat in Intel verwerkers geïmplementeer is, wat jou toelaat om laevlak CPU diagnostiese toetse uit te voer wat probleme kan identifiseer wat nie deur standaard gereedskap opgespoor word nie gebaseer op foutkorreksiekodes (ECC) of pariteitbisse . Die toetse wat uitgevoer word, is in die vorm van aflaaibare firmware, wat soortgelyk aan mikrokode-opdaterings ontwerp is. Toetsresultate is beskikbaar via sysfs.
    • Bygevoeg die vermoë om 'n bootconfig-lêer in die kern in te sluit, wat dit moontlik maak om, benewens opdragreëlopsies, die parameters van die kern deur 'n instellingslêer te bepaal. Inbedding word uitgevoer met behulp van die samestelling opsie 'CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»'. Voorheen is bootconfig bepaal deur aan die initrd-beeld te heg. Integrasie in die kern laat bootconfig toe om in konfigurasies sonder 'n initrd gebruik te word.
    • Die vermoë om firmware af te laai wat saamgepers is met die Zstandard-algoritme is geïmplementeer. 'n Stel beheerlêers /sys/class/firmware/* is by sysfs gevoeg, wat jou in staat stel om firmware-laai vanaf gebruikersspasie te begin.
    • Die io_uring asynchrone I/O-koppelvlak bied 'n nuwe vlag, IORING_RECVSEND_POLL_FIRST, wat, wanneer dit gestel is, eers 'n netwerkbewerking sal stuur om verwerk te word met behulp van polling, wat hulpbronne kan bespaar in situasies waar die verwerking van die bewerking met 'n mate van vertraging aanvaarbaar is. io_uring het ook ondersteuning vir die socket()-stelseloproep bygevoeg, nuwe vlae voorgestel om die bestuur van lêerbeskrywers te vereenvoudig, 'n "multi-shot"-modus bygevoeg vir die aanvaarding van verskeie verbindings gelyktydig in die accept()-oproep, en bedrywighede bygevoeg vir die aanstuur van NVMe opdragte direk na die toestel.
    • Die Xtensa-argitektuur bied ondersteuning vir die KCSAN (Kernel Concurrency Sanitizer) ontfoutingsinstrument, wat ontwerp is om rastoestande binne die kern dinamies op te spoor. Ook bygevoeg ondersteuning vir slaapmodus en medeverwerkers.
    • Vir die m68k-argitektuur (Motorola 68000) is 'n virtuele masjien (platformsimulator) gebaseer op die Android Goldfish-emulator geïmplementeer.
    • Vir die AArch64-argitektuur is ondersteuning vir Armv9-A SME (Scalable Matrix Extension) uitbreidings geïmplementeer.
    • Die eBPF-substelsel laat die stoor van getikte wysers in kaartstrukture toe, en voeg ook ondersteuning vir dinamiese wysers by.
    • 'n Nuwe proaktiewe geheue-herwinningsmeganisme word voorgestel wat gebruikersspasiebeheer ondersteun deur die memory.reclaim-lêer te gebruik. Die skryf van 'n nommer na die gespesifiseerde lêer sal probeer om die ooreenstemmende aantal grepe uit die stel wat met die cgroup geassosieer word, te verwyder.
    • Verbeterde akkuraatheid van geheuegebruik wanneer data in die ruilpartisie saamgepers word deur die zswap-meganisme te gebruik.
    • Vir die RISC-V-argitektuur word ondersteuning verskaf vir die uitvoer van 32-bis-uitvoerbare op 64-bis-stelsels, 'n modus word bygevoeg om beperkende eienskappe aan geheuebladsye te bind (byvoorbeeld om caching te deaktiveer), en die kexec_file_load()-funksie word geïmplementeer .
    • Die implementering van ondersteuning vir 32-bis Armv4T- en Armv5-stelsels is aangepas vir gebruik in universele multi-platform-kernbou wat geskik is vir verskillende ARM-stelsels.
  • Virtualisering en sekuriteit
    • Die EFI-substelsel implementeer die vermoë om geheime inligting vertroulik na gasstelsels oor te dra sonder om dit aan die gasheerstelsel bekend te maak. Die data word verskaf deur die sekuriteit/coco-gids in securityfs.
    • Toesluitbeskermingsmodus, wat wortelgebruikerstoegang tot die kern beperk en UEFI Secure Boot-omleidingspaaie blokkeer, het 'n skuiwergat uitgeskakel wat toegelaat het dat beskerming omseil word deur die kernontfouter te manipuleer.
    • Ingesluit is kolle wat daarop gemik is om die betroubaarheid en werkverrigting van die pseudo-ewekansige getalgenerator te verbeter.
    • By die bou van Clang 15 word ondersteuning vir die meganisme vir ewekansige kernstrukture geïmplementeer.
    • Die Landlock-meganisme, wat jou toelaat om die interaksie van 'n groep prosesse met die eksterne omgewing te beperk, bied ondersteuning vir reëls wat jou toelaat om die uitvoering van lêerhernoembewerkings te beheer.
    • Die IMA (Integrity Measurement Architecture)-substelsel, wat ontwerp is om die integriteit van bedryfstelselkomponente te verifieer deur digitale handtekeninge en hashes te gebruik, is oorgeskakel na die gebruik van die fs-verity-module vir lêerverifikasie.
    • Die logika van aksies wanneer onbevoorregte toegang tot die eBPF-substelsel gedeaktiveer word, is verander - voorheen is alle opdragte wat met die bpf()-stelseloproep geassosieer word gedeaktiveer, en vanaf weergawe 5.19 word toegang tot opdragte wat nie tot die skep van voorwerpe lei nie, gelaat. . Hierdie gedrag vereis 'n bevoorregte proses om 'n BPF-program te laai, maar dan kan onbevoorregte prosesse met die program in wisselwerking tree.
    • Bygevoeg ondersteuning vir die AMD SEV-SNP (Secure Nested Paging) uitbreiding, wat veilige werk bied met geneste geheue bladsy tabelle en beskerm teen "ondeSERVed" en "ERVity" aanvalle op AMD EPYC verwerkers, wat dit moontlik maak om die AMD SEV (Secure Encrypted Virtualization) te omseil ) beskermingsmeganisme.
    • Bygevoeg ondersteuning vir die Intel TDX (Trusted Domain Extensions)-meganisme, wat jou toelaat om derdeparty-pogings om toegang tot die geïnkripteer geheue van virtuele masjiene te blokkeer.
    • Die virtio-blk-bestuurder, wat gebruik word om bloktoestelle na te boots, het ondersteuning vir I/O bygevoeg deur gebruik te maak van polling, wat, volgens toetse, latensie met ongeveer 10% verminder het.
  • Netwerk substelsel
    • Die pakket bevat 'n reeks GROOT TCP-pleisters wat jou toelaat om die maksimum pakkiegrootte van 'n TCP-pakkie na 4GB te verhoog om die werking van hoëspoed interne datasentrumnetwerke te optimaliseer. 'n Soortgelyke toename in pakkiegrootte met 'n 16-bis kopveldgrootte word bereik deur die implementering van "jumbo" pakkies, waarvan die grootte in die IP-kopskrif op 0 gestel is, en die werklike grootte word in 'n aparte 32-bis versend veld in 'n aparte aangehegte kopskrif. In prestasietoetsing het die stel van die pakkiegrootte op 185 KB deurset met 50% verhoog en data-oordragvertraging aansienlik verminder.
    • Werk het voortgegaan om nutsgoed in die netwerkstapel te integreer om die redes vir die weglating van pakkies (redekodes) op te spoor. Die redekode word gestuur wanneer die geheue wat met die pakkie geassosieer word, vrygestel word en maak voorsiening vir situasies soos pakkie weggooi weens kopfoute, rp_filter spoofing opsporing, ongeldige kontrolesom, uit geheue, IPSec XFRM reëls geaktiveer, ongeldige volgnommer TCP, ens.
    • Bygevoeg ondersteuning vir die terugval van MPTCP (MultiPath TCP) verbindings om gewone TCP te gebruik, in situasies waar sekere MPTCP kenmerke nie gebruik kan word nie. MPTCP is 'n uitbreiding van die TCP-protokol vir die organisering van die werking van 'n TCP-verbinding met die aflewering van pakkies gelyktydig langs verskeie roetes deur verskillende netwerkkoppelvlakke wat met verskillende IP-adresse geassosieer word. Bygevoeg API om MPTCP-strome vanaf gebruikersruimte te beheer.
  • Оборудование
    • Bygevoeg meer as 420 400 reëls kode wat verband hou met die amdgpu-bestuurder, waarvan ongeveer 22.5 21 reëls outomaties gegenereerde koplêers is vir ASIC-registerdata in die AMD GPU-bestuurder, en nog 4 21 reëls bied aanvanklike implementering van ondersteuning vir die AMD SoC13. Die totale bestuurdergrootte vir AMD GPU's het 3 miljoen reëls kode oorskry. Benewens SoC7000, bevat die AMD-bestuurder ondersteuning vir SMU XNUMX.x (Stelselbestuurseenheid), opgedateerde ondersteuning vir USB-C en GPUVM, en is bereid om die volgende generasies RDNAXNUMX (RX XNUMX) en CDNA (AMD Instinct) te ondersteun. platforms.
    • Die i915-bestuurder (Intel) het uitgebreide vermoëns wat met kragbestuur verband hou. Bygevoeg identifiseerders vir Intel DG2 (Arc Alchemist) GPU's wat op skootrekenaars gebruik word, verskaf aanvanklike ondersteuning vir die Intel Raptor Lake-P (RPL-P) platform, bygevoeg inligting oor Arctic Sound-M grafiese kaarte), geïmplementeer ABI vir rekenaarenjins, bygevoeg vir DG2-kaarte ondersteun die Tile4-formaat; vir stelsels gebaseer op die Haswell-mikroargitektuur, word DisplayPort HDR-ondersteuning geïmplementeer.
    • Die Nouveau-bestuurder het oorgeskakel na die gebruik van die drm_gem_plane_helper_prepare_fb-hanteerder; statiese geheuetoewysing is toegepas op sommige strukture en veranderlikes. Wat die gebruik van kernmodules oopbron deur NVIDIA in Nouveau betref, kom die werk tot dusver daarop neer om foute te identifiseer en uit te skakel. In die toekoms word beplan om die gepubliseerde firmware gebruik te word om bestuurderprestasie te verbeter.
    • Het 'n drywer bygevoeg vir die NVMe-beheerder wat in Apple-rekenaars gebruik word, gebaseer op die M1-skyfie.

Terselfdertyd het die Latyns-Amerikaanse Vrye Sagteware-stigting 'n weergawe gevorm van die heeltemal gratis kern 5.19 - Linux-libre 5.19-gnu, skoongemaak van elemente van firmware en drywers wat nie-vrye komponente of dele van kode bevat, waarvan die omvang is beperk deur die vervaardiger. Die nuwe weergawe maak die drywers skoon vir pureLiFi X/XL/XC en TI AMx3 Wkup-M3 IPC. Opgedateerde blob-skoonmaakkode in Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu-bestuurders en substelsels. Verwerking van Qualcomm AArch64 devicetree-lêers is geïmplementeer. Bygevoeg ondersteuning vir die nuwe Sound Open Firmware komponent naamskema. Het opgehou om die OTM Ambassador-bestuurder, wat uit die kern verwyder is, skoon te maak. Bestuur van blob-skoonmaak in HDCP en Mellanox Core is geskuif na aparte kconfig-merkers.

Bron: opennet.ru

Voeg 'n opmerking