Linux kernvrystelling 5.17

Na twee maande se ontwikkeling het Linus Torvalds die vrystelling van die Linux-kern 5.17 aangebied. Van die mees noemenswaardige veranderinge: 'n nuwe prestasiebestuurstelsel vir AMD-verwerkers, die vermoë om gebruikers-ID's in lêerstelsels rekursief te karteer, ondersteuning vir draagbare saamgestelde BPF-programme, 'n oorgang van die pseudo-ewekansige getalgenerator na die BLAKE2s-algoritme, 'n RTLA-hulpmiddel vir real-time uitvoering analise, 'n nuwe fscache backend vir kas netwerk lêer stelsels, die vermoë om name te heg aan anonieme mmap bedrywighede.

Die nuwe weergawe bevat 14203 1995 regstellings van 37 11366 ontwikkelaars, die pleistergrootte is 506043 MB (die veranderinge het 250954 44 lêers geraak, 5.17 16 reëls kode is bygevoeg, 15 4 reëls is uitgevee). Ongeveer 4% 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.17:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Implementeer die moontlikheid van geneste kartering van gebruiker-ID's van gemonteerde lêerstelsels, wat gebruik word om lêers van 'n spesifieke gebruiker op 'n gemonteerde vreemde partisie met 'n ander gebruiker op die huidige stelsel te vergelyk. Die bygevoegde kenmerk laat jou toe om kartering rekursief te gebruik bo-op lêerstelsels waarvoor kartering reeds toegepas is.
    • Die fscache-substelsel, wat gebruik word om kas in die plaaslike lêerstelsel te organiseer van data wat deur netwerklêerstelsels oorgedra word, is heeltemal herskryf. Die nuwe implementering word gekenmerk deur 'n aansienlike vereenvoudiging van die kode en die vervanging van komplekse bewerkings van beplanning en opsporing van objektoestande met eenvoudiger meganismes. Ondersteuning vir die nuwe fscache word in die CIFS-lêerstelsel geïmplementeer.
    • Die gebeurtenisopsporingsubstelsel in die fanotify FS implementeer 'n nuwe gebeurtenistipe, FAN_RENAME, wat jou toelaat om onmiddellik die werking van die hernoeming van lêers of gidse te onderskep (voorheen is twee afsonderlike gebeurtenisse FAN_MOVED_FROM en FAN_MOVED_TO gebruik om hernoemings te verwerk).
    • Die Btrfs-lêerstelsel het geoptimaliseerde log- en fsync-bewerkings vir groot dopgehou, geïmplementeer deur slegs indekssleutels te kopieer en die hoeveelheid aangetekende metadata te verminder. Ondersteuning vir indeksering en soek volgens grootte van vrye spasie-rekords is verskaf, wat vertraging met ongeveer 30% verminder het en soektyd verminder het. Toegelaat om defragmentasie-operasies te onderbreek. Die vermoë om toestelle by te voeg wanneer balansering tussen aandrywers is gedeaktiveer, d.w.s. wanneer 'n lêerstelsel met die skip_balance-opsie gemonteer word.
    • 'n Nuwe sintaksis vir die montering van die Ceph-lêerstelsel is voorgestel, wat bestaande probleme oplos wat verband hou met binding aan IP-adresse. Benewens IP-adresse, kan jy nou die cluster identifier (FSID) gebruik om die bediener te identifiseer: mount -t ceph [e-pos beskerm]_name=/[subdir] mnt -o mon_addr=monip1[:poort][/monip2[:poort]]
    • Die Ext4-lêerstelsel het na 'n nuwe monteer-API verskuif wat die monteeropsies-ontleding en superblok-konfigurasiestappe skei. Ons het ondersteuning vir die lazytime en nolazytime mount opsies laat vaar, wat bygevoeg is as 'n tydelike verandering om die oorgang van util-linux om die MS_LAZYTIME vlag te gebruik, te vergemaklik. Bygevoeg ondersteuning vir die opstel en lees van etikette in die FS (ioctl FS_IOC_GETFSLABEL en FS_IOC_SETFSLABEL).
    • NFSv4 het ondersteuning bygevoeg om in hoofletter-onsensitiewe lêerstelsels in lêer- en gidsname te werk. NFSv4.1+ voeg ondersteuning by vir die definisie van saamgestelde sessies (trunking).
  • Geheue en stelseldienste
    • Bygevoeg amd-pstate-bestuurder om dinamiese frekwensiebeheer vir optimale werkverrigting te verskaf. Die drywer ondersteun AMD-SVE's en APU's vanaf die Zen 2-generasie, wat saam met Valve ontwikkel is en is daarop gemik om energiebestuurdoeltreffendheid te verbeter. Vir aanpasbare frekwensieveranderings word die CPPC (Collaborative Processor Performance Control) meganisme gebruik, wat jou toelaat om aanwysers meer akkuraat te verander (nie beperk tot drie prestasievlakke nie) en vinniger op toestandveranderinge te reageer as die voorheen gebruik ACPI-gebaseerde P-toestand drywers (CPUFreq).
    • Die eBPF substelsel bied 'n bpf_loop() hanteerder, wat 'n alternatiewe manier bied om lusse in eBPF programme te organiseer, vinniger en makliker vir verifikasie deur 'n verifieerder.
    • Op kernvlak word die CO-RE (Compile Once - Run Everywhere) meganisme geïmplementeer, wat jou toelaat om die kode van eBPF-programme slegs een keer saam te stel en 'n spesiale universele laaier te gebruik wat die gelaaide program aanpas by die huidige kern- en BTF-tipes (BPF Tipe Formaat).
    • Dit is moontlik om name toe te ken aan areas van privaat anonieme (toegeken via malloc) geheue, wat ontfouting en optimalisering van geheueverbruik in toepassings kan vereenvoudig. Name word toegeken via prctl met die PR_SET_VMA_ANON_NAME vlag en word vertoon in /proc/pid/maps en /proc/pid/smaps in die vorm "[anon: ]".
    • Die taakskeduleerder verskaf dop en vertoon in /proc/PID/sched die tyd wat prosesse spandeer in die gedwonge-ledige toestand, wat byvoorbeeld gebruik word om die las te verminder wanneer die verwerker oorverhit.
    • Bygevoeg gpio-sim-module, ontwerp om GPIO-skyfies vir toetsing te simuleer.
    • Het 'n "latency" subopdrag by die "perf ftrace" opdrag gevoeg om histogramme met latency inligting te genereer.
    • Bygevoeg 'n stel "RTLA" nutsprogramme vir die ontleding van werk in reële tyd. Dit sluit nutsprogramme in soos osnoise (bepaal die invloed van die bedryfstelsel op die uitvoering van 'n taak) en timerlat (verander die vertragings wat met die timer geassosieer word).
    • 'n Tweede reeks kolle is geïntegreer met die implementering van die konsep van bladsyfolio's, wat soos saamgestelde bladsye lyk, maar die semantiek en 'n duideliker organisasie van werk verbeter het. Deur tomes te gebruik, kan u geheuebestuur in sommige kernsubstelsels bespoedig. Die voorgestelde pleisters het die omskakeling van die bladsykas na die gebruik van tomes voltooi en aanvanklike ondersteuning vir tomes in die XFS-lêerstelsel bygevoeg.
    • Bygevoeg "maak mod2noconfig" boumodus, wat 'n konfigurasie genereer wat alle gedeaktiveerde substelsels in die vorm van kernmodules versamel.
    • Die vereistes vir die weergawe van LLVM/Clang wat gebruik kan word om die kern te bou, is verhoog. Bou vereis nou ten minste LLVM 11-vrystelling.
  • Virtualisering en sekuriteit
    • 'n Opgedateerde implementering van die pseudo-ewekansige getalgenerator RDRAND, verantwoordelik vir die werking van die /dev/random en /dev/urandom toestelle, word voorgestel, opmerklik vir die oorgang na die gebruik van die BLAKE2s hash funksie in plaas van SHA1 vir entropie meng bewerkings. Die verandering het die sekuriteit van die pseudo-ewekansige getalgenerator verbeter deur die problematiese SHA1-algoritme uit te skakel en die oorskryf van die RNG-inisialiseringsvektor uit te skakel. Aangesien die BLAKE2s-algoritme beter is as SHA1 in prestasie, het die gebruik daarvan ook 'n positiewe uitwerking op prestasie gehad.
    • Bygevoeg beskerming teen kwesbaarhede in verwerkers wat veroorsaak word deur spekulatiewe uitvoering van instruksies na onvoorwaardelike vorentoe spring-operasies. Die probleem kom voor as gevolg van voorkomende verwerking van instruksies onmiddellik na die takinstruksie in die geheue (SLS, Straight Line Speculation). Om beskerming te aktiveer vereis bou met die huidige toetsvrystelling van GCC 12.
    • Bygevoeg 'n meganisme vir die opsporing van verwysing telling (hertelling, verwysing-telling), wat daarop gemik is om die aantal foute in verwysing telling wat lei tot toegang tot geheue nadat dit vrygestel is, te verminder. Die meganisme is tans beperk tot die netwerksubstelsel, maar in die toekoms kan dit by ander dele van die kern aangepas word.
    • Uitgebreide kontrole van nuwe inskrywings in die prosesgeheuebladsytabel is geïmplementeer, wat dit moontlik maak om sekere tipes skade op te spoor en die stelsel te stop, wat aanvalle in 'n vroeë stadium blokkeer.
    • Bygevoeg die vermoë om kernmodules direk deur die kern self uit te pak, en nie deur 'n hanteerder in gebruikersruimte nie, wat die gebruik van die LoadPin LSM-module moontlik maak om te verseker dat kernmodules vanaf 'n geverifieerde stoortoestel in die geheue gelaai word.
    • Voorsien samestelling met die "-Wcast-funksie-tipe" vlag, wat waarskuwings moontlik maak oor die uitsaaifunksiewysers na 'n onversoenbare tipe.
    • Bygevoeg virtuele gasheerbestuurder pvUSB vir die Xen-hypervisor, wat toegang bied tot USB-toestelle wat na gasstelsels aangestuur word (laat gasstelsels toe om toegang te verkry tot fisiese USB-toestelle wat aan die gasstelsel toegewys is).
    • ’n Module is bygevoeg wat jou in staat stel om via Wi-Fi met die IME (Intel Management Engine)-substelsel te kommunikeer, wat in die meeste moderne moederborde met Intel-verwerkers voorkom en as ’n aparte mikroverwerker geïmplementeer word wat onafhanklik van die SVE werk.
    • Vir die ARM64-argitektuur is ondersteuning geïmplementeer vir die KCSAN (Kernel Concurrency Sanitizer) ontfoutingsinstrument, wat ontwerp is om rastoestande binne die kern dinamies op te spoor.
    • Vir 32-bis ARM-stelsels is die vermoë bygevoeg om die KFENCE-meganisme te gebruik om foute op te spoor wanneer daar met geheue gewerk word.
    • Die KVM-hypervisor voeg ondersteuning by vir AMX (Advanced Matrix Extensions)-instruksies wat in die komende Intel Xeon Scalable-bedienerverwerkers geïmplementeer is.
  • Netwerk substelsel
    • Bygevoeg ondersteuning vir die aflaai van bedrywighede wat verband hou met verkeersbestuur aan die kant van netwerktoestelle.
    • Bygevoeg die vermoë om MCTP (Management Component Transport Protocol) oor seriële toestelle te gebruik. MCTP kan gebruik word om te kommunikeer tussen bestuursbeheerders en hul verwante toestelle (gasheerverwerkers, randapparatuur, ens.).
    • Die TCP-stapel is geoptimaliseer, byvoorbeeld om die werkverrigting van recvmsg-oproepe te verbeter, vertraagde vrystelling van sokbuffers is geïmplementeer.
    • Op die CAP_NET_RAW-gesagsvlak word die instelling van die SO_PRIORITY- en SO_MARK-modusse deur die setsockopt-funksie toegelaat.
    • Vir IPv4 word rou voetstukke toegelaat om aan nie-plaaslike IP-adresse gebind te word deur die IP_FREEBIND- en IP_TRANSPARENT-opsies te gebruik.
    • Sysctl arp_missed_max bygevoeg om die drempel aantal mislukkings tydens die ARP-monitorkontrole op te stel, waarna die netwerkkoppelvlak in 'n gedeaktiveerde toestand geplaas word.
    • Met die vermoë om aparte sysctl min_pmtu en mtu_expires waardes vir netwerk naamruimtes op te stel.
    • Bygevoeg die vermoë om die grootte van buffers vir inkomende en uitgaande pakkies te stel en te bepaal by die ethtool API.
    • Netfilter het ondersteuning bygevoeg vir die filter van transito-pppoe-verkeer in 'n netwerkbrug.
    • Die ksmbd-module, wat 'n lêerbediener met behulp van die SMB3-protokol implementeer, het ondersteuning vir sleuteluitruiling bygevoeg, netwerkpoort 445 vir smbdirect geaktiveer en ondersteuning vir die "smb2 max credit"-parameter bygevoeg.
  • Оборудование
    • Ondersteuning vir skerms vir die vertoon van vertroulike inligting is by die drm (Direct Renderering Manager) substelsel gevoeg en die i915-bestuurder, byvoorbeeld, sommige skootrekenaars is toegerus met skerms met 'n ingeboude vertroulike kykmodus, wat dit moeilik maak om van buite af te sien . Die bygevoegde veranderinge laat jou toe om gespesialiseerde bestuurders vir sulke skerms te koppel en vertroulike blaaimodusse te beheer deur eienskappe in gewone KMS-bestuurders in te stel.
    • Die amdgpu-bestuurder sluit ondersteuning in vir STB (Smart Trace Buffer) ontfoutingstegnologie vir alle AMD GPU's wat dit ondersteun. STB maak dit makliker om mislukkings te ontleed en die bron van probleme te identifiseer deur inligting in 'n spesiale buffer te stoor oor die funksies wat uitgevoer is voor die laaste mislukking.
    • Die i915-bestuurder voeg ondersteuning by vir Intel Raptor Lake S-skyfies en maak by verstek ondersteuning vir die grafiese substelsel van Intel Alder Lake P-skyfies moontlik. Dit is moontlik om die skermagterlig via die VESA DPCD-koppelvlak te beheer.
    • Ondersteuning vir hardeware-blaaiversnelling in die konsole is teruggestuur in die fbcon/fbdev-bestuurders.
    • Voortgesette integrasie van veranderinge om Apple M1-skyfies te ondersteun. Implementeer die vermoë om die simpledrm-bestuurder op stelsels met 'n Apple M1-skyfie te gebruik vir uitvoer deur 'n raambuffer wat deur die firmware verskaf word.
    • Bygevoeg ondersteuning vir ARM SoС, toestelle en borde Snapdragon 7c, 845 en 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183) Acer Chromebook 314), Mediatek MT7986a/b (gebruik in Wi-Fi-roeteerders), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI J320s8, N8P EMX2500TI UMX2600TI U32P1TI UMX6 i. , Aspeed AST6000/AST6001, Engicam i.Core STM14MP16, Allwinner Tanix TXXNUMX, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, tXNUMX/tXNUMX MacBook Pro XNUMX/XNUMX.
    • Bygevoeg ondersteuning vir ARM Cortex-M55 en Cortex-M33 verwerkers.
    • Bygevoeg ondersteuning vir toestelle gebaseer op CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Bygevoeg ondersteuning vir StarFive JH7100 SoC gebaseer op RISC-V argitektuur.
    • Bygevoeg lenovo-yogabook-wmi bestuurder om die sleutelbord agtergrond te beheer en toegang tot verskeie sensors in die Lenovo Yoga Book.
    • Asus_wmi_sensors-bestuurder bygevoeg om toegang te verkry tot sensors wat gebruik word op Asus X370, X470, B450, B550 en X399 moederborde gebaseer op AMD Ryzen verwerkers.
    • Bygevoeg x86-android-tablette bestuurder vir x86-gebaseerde tablet PC's wat saam met die Android-platform gestuur word.
    • Bygevoeg ondersteuning vir TrekStor SurfTab duo W1 raakskerms en elektroniese pen vir Chuwi Hi10 Plus en Pro tablette.
    • Drywers vir SoC Tegra 20/30 het bykomende ondersteuning vir krag- en spanningbestuur. Aktiveer selflaai op ouer 32-bis Tegra SoC-toestelle soos ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 en Pad TF300TG.
    • Bygevoeg drywers vir Siemens industriële rekenaars.
    • Bygevoeg ondersteuning vir Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA en Team Source LCD Display T043015CMHXNUMXXXNUMX paneelskerm TXNUMXCMHXNUMXXXNUMX.
    • Bygevoeg ondersteuning vir klankstelsels en codecs AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel-stelsels wat NAU8825/MAX98390 gebruik, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments CLV320AD. Probleme met Tegra3 HD-klank is opgelos. Bygevoeg HDA ondersteuning vir CS194L35 codecs. Verbeterde ondersteuning vir klankstelsels vir Lenovo- en HP-skootrekenaars, sowel as Gigabyte-moederborde.

Bron: opennet.ru

Voeg 'n opmerking