Linux 6.14

Linux 6.14

Na twee maande van ontwikkeling, Linus Torvalds voorgelê Linux-kern 6.14-vrystelling. Van die mees noemenswaardige veranderinge: die ntsync-bestuurder met Windows NT-sinchronisasie-primitiewe, aanpassing van die balansering van leesbewerkings in Btrfs RAID1, ondersteuning vir herskakel in XFS in intydse modus, die moontlikheid van ongekasbare gebufferde I/O, dmem cgroup vir die beperking van GPU-geheue, wat io_uring in FUSE moontlik maak, in skryf, in FS-ondersteuning. Toestelkarteerder, versnelling van simboliese skakels, beheer oor die vermoë om skrifte uit te voer, ondersteuning vir skyfies Qualcomm Snapdragon 8 Elite, bestuurder vir AMD NPU.

Die nuwe weergawe bevat 12115 1984 regstellings van 39 10170 ontwikkelaars, die pleistergrootte is 531586 MB (die veranderinge het 235999 14172 lêers geraak, 2086 46 reëls kode is bygevoeg, 41 6.14 reëls is uitgevee). Die laaste weergawe het 13 regstellings van 14 ontwikkelaars gehad, die pleistergrootte was 7 MB. 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.

Die belangrikste innovasies:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Op die Btrfs-lêerstelsel verskyn ondersteuning vir nuwe metodes om leesbewerkings te balanseer tussen aandrywers wat in 'n RAID1-skikking ingesluit is. Benewens die voorheen bestaande vragverspreiding gebaseer op prosesidentifiseerders (pid), bied die nuwe weergawe drie nuwe balanseringsmodusse: "rotasie" (eenvormige vragverspreiding oor alle aandrywers, die modus is by verstek geaktiveer); "Latency" (verspreiding met inagneming van vertragings, kan nuttig wees in geval van mislukkings of onstabiele werking van aandrywers); devid (handbeheer). Om die balanseringsmodus te verander bygevoeg koppelvlak /sys/fs/btrfs/ /lees_beleid. Ander veranderinge in Btrfs sluit in: implementering ioctl FS_IOC_READ_VERITY_METADATA.
    • Bygevoeg 'n Nie-kasbare gebufferde I/O-modus waarin data uit die bladsykas verwyder word onmiddellik nadat lees- of skryfbewerkings voltooi is. Die verandering kan nuttig wees wanneer baie vinnige bergingstoestelle gebruik word, waarvoor kasbewerkings in RAM oorbodig is. Vir sulke toestelle skakel die nuwe modus onnodige geheueverbruik deur die bladsykas uit sonder om die gebruik van 'n ingewikkelde Direct I/O API te gebruik.
    • In fsnotify, 'n meganisme om veranderinge in die FS op te spoor, bygevoeg 'n nuwe FS_PRE_ACCESS-gebeurtenis wat op die stadium gegenereer is voordat toegang tot die lêerinhoud verkry is. Die gebeurtenis word in sinchroniese modus verwerk, dit wil sê die kern stuur die gebeurtenis en wag vir 'n antwoord om ontvang te word. As 'n antwoord ontvang word, word die bewerking uitgevoer, en as 'n mislukking plaasvind, stuur die stelseloproep 'n foutkode na gebruikersspasie terug. Deur FS_PRE_ACCESS te gebruik, kan 'n proses in gebruikersspasie byvoorbeeld reël dat 'n lêer gevul word sodra data gereed is in stadige berging.
    • Die FUSE-substelsel, wat jou toelaat om implementerings van lêerstelsels in gebruikersruimte te skep, is bygevoeg ondersteun kommunikasie tussen die kern en die gebruikerruimte-hanteerder deur die io_uring I/O-meganisme te gebruik. Die verandering verbeter FUSE-werkverrigting deur konteksskakelaars tussen die kern- en gebruikersruimte te verminder.
    • By XFS-lêerstelsel gevoeg geleentheid met behulp van omgekeerde kartering (rmap, omgekeerde kartering) in bedryfsmodus met voorspelbare vertragings ("intydse toestel"). Omgekeerde kartering laat jou toe om te bepaal watter lêer 'n gespesifiseerde blok op 'n stoortoestel gebruik word om te stoor. Deur rmap in XFS vir intydse modus te gebruik, is ondersteuning vir die herskakelbewerking geïmplementeer, wat jou toelaat om kopieë van lêers te skep deur lêermetadata te kloneer en 'n skakel na bestaande data te skep sonder om dit werklik te kopieer.
    • In VFS geïmplementeer kas van die grootte van simboliese skakels, wat dit moontlik gemaak het om die leesskakelbewerking met 1.5% te bespoedig (in die toets met /initrd.img in ext4). Caching is ingesluit in ext4- en tmpfs-lêerstelsels.
    • Ondersteuning is by die NFSv4.2-implementering gevoeg lêer kenmerk delegering, wat jou toelaat om lêerkenmerke soos wysigingstyd (mtime) aan die NFS-kliëntkant te bestuur, sonder dat dit nodig is om veranderinge aan die bediener te spoel. NFS het ook verbeterde ondersteuning vir die "LOCALIO", wat jou toelaat om te bepaal of die kliënt en NFS-bediener op dieselfde gasheer is, om toepaslike optimaliserings moontlik te maak, soos die kliënt wat Direct I/O gebruik.
    • Verhoog prestasie van leesbewerkings in NETFS, CIFS en AFS (Andrew File System) lêerstelsels.
    • In Squashfs ingesluit modus van direkte laai van blokke in die bladsykas (SQUASHFS_FILE_DIRECT), wat jou toelaat om sonder 'n aparte leesbladsy-kas klaar te kom. Die verandering het toegelaat om die hoeveelheid geheue wat verbruik word, te verminder wanneer Squashfs uitgevoer word.
    • In die statx() stelsel roep geïmplementeer STATX_DIO_READ_ALIGN vlag, om die vereiste belyning vir leesbewerkings vanaf 'n lêer te bepaal.
    • Op die Bcachefs-lêerstelsel opgedateer и gestabiliseer skyfstruktuurformaat. Enige verdere veranderinge aan die formaat sal as opsioneel geklassifiseer word en sal in die vorm van opsionele toevoegings geïmplementeer word. Die spoed om die integriteit van die lêerstelsel na te gaan is aansienlik verhoog. Boonop het Bcachefs leesalleenprestasie verbeter; Vaste probleme wat lei tot geheuetoegang nadat dit vrygestel is (gebruik na gratis); Probleme met herskakelwysers in fsck is opgelos; Vaste transaksie herbegin verwerking.
    • Teruggekeer md-lineêre module wat ontwerp is om blok toestelle te kombineer. Hierdie module is voorheen as verouderd verklaar en uit die 6.8-kern verwyder, maar soos dit geblyk het, was dit in aanvraag en is dit dus nou herstel.
    • Lêerstelsels F2FS en SQUASHFS is oorgeskakel na gebruik tomes van bladsye van geheue (bladsy folio's).
    • In die bestuurder null_blk die "rotasie"-kenmerk is geïmplementeer, gestel via configfs en stel jou in staat om werk te simuleer met 'n toestel wat gebaseer is op roterende skywe om toetsing van kernfunksies te vereenvoudig.
    • In die Device Mapper-stelsel en in die dm-mirror, dm-io, dm-table, dm-linear, dm-stripe en dm-raid1 modules geïmplementeer Atoom skryf ondersteuning.
  • Geheue en stelseldienste
    • Voltooi bestuurder kern integrasie ntsync, wat die /dev/ntsync-karaktertoestel en 'n stel sinchronisasie-primitiewe wat in die Windows NT-kern gebruik word, implementeer. Die implementering van sulke primitiewe op kernvlak kan die werkverrigting van Windows-speletjies wat met Wine bekendgestel is, aansienlik verbeter. Die prestasiewinste word behaal deur die bokoste wat verband hou met die gebruik van RPC in gebruikersruimte uit te skakel. Die skepping van 'n aparte drywer vir die Linux-kern word verklaar deur die moeilikheid om die NT-sinchronisasie-API korrek te implementeer bo-op bestaande primitiewe in die kern.
    • Bygevoeg nuwe cgroup kontroleerder DMEM vir afsonderlike rekeningkunde van geheue areas van toestelle soos GPU's. DMEM laat jou toe om afsonderlike cgroups vir verskillende GPU-take te skep sodat hulle kan loop sonder om mekaar te beïnvloed. Die nuwe kenmerk los die probleem op van gedwonge beëindiging van GPU-bedrywighede wanneer beskikbare geheue uitgeput is, deur rekening te hou met gereflekteerde GPU-geheue en SVE-geheue wat deur SVE-bestuurders in individuele cgroepe gebruik word.
    • Optimalisasies is gemaak om die TLB (Translation Lookaside Buffer) kasspoelbewerking te skaal, wat gebruik word om die vertaling van virtuele adresse na fisiese adresse te bespoedig. Die bygevoegde optimalisering bestaan ​​uit die vertraag van die opdatering van sommige datastrukture tydens kontekswisseling, wat prestasie kan verbeter wanneer sommige toetse geslaag word.
    • Verhoog meganisme prestasie MGLRU (Multi-Generational LRU), wat gebruik word om te bepaal watter geheue bladsye in gebruik is en watter kan uitgeruil word na die ruil partisie.
    • Vervolg veranderinge van 'n tak beweeg Roes-vir-Linux, wat verband hou met die gebruik van Rust as 'n tweede taal vir die ontwikkeling van drywers en kernmodules (Roes-ondersteuning is nie by verstek aktief nie, en lei nie tot die insluiting van Rust as 'n vereiste bouafhanklikheid vir die kern nie). Dit is moontlik om die makro te gebruik "aflei (CoercePointee)", wat die gebruik van slim wysers met eienskap voorwerpe toelaat. In die kern ingesluit Roes wikkel vir PCI, platforms, Maak firmware oop, karakter toestelle en sommige I/O funksies. Greg Kroah-Hartman, verantwoordelik vir die instandhouding van die stabiele tak van die Linux-kern, beskryf die huidige staat is "amper gereed om 'n regte bestuurder in Rust te skryf."
    • In bou skrifte voorgestelde Nuwe kode vir die generering van ontfoutsimboolweergawes vir laaibare modules, wat nou inligting van DWARF-geformateerde ontfoutingsrekords gebruik eerder as om die bronkode direk te ontleed. Die verandering laat weergawes van ontfoutingsimbole toe vir modules wat in die Rust-taal geskryf is. Die ou implementering word ook in die kern gelaat, en die kragopwekker word op die vlak van samestellingsopsies gekies.
    • Vir PowerPC-argitektuur geïmplementeer ondersteuning vir die lui-voorkoopmodus (PREEMPT_LAZY, lui-voorkoming), wat ooreenstem met die volle voorkoopmodus vir intydse take (RR/EIEU/DEADLINE), maar vertraag die voorkoms van gereelde take (SCHED_NORMAL) tot die regmerkielimiet.
    • Na die perfekte prestasie-profiel-substelsel bygevoeg ondersteuning vir energieverbruiktellers vir AMD-verwerkers. Bygevoeg vermoë om op stelsels met tot 2048 SVE-kerns te werk.
    • Verskaf die vermoë om die pid_max sysctl parameter met proses ID naamruimtes te gebruik. Die pid_max-parameter is bedoel om die maksimum waarde van prosesidentifiseerders (PID's) te beperk en kan nou gebruik word om die maksimum moontlike aantal prosesse wat in 'n gespesifiseerde naamruimte loop, te beperk. Parameterverwerking word hiërargies gedoen, dit wil sê beperkings in eksterne naamruimtes is van toepassing op geneste naamruimtes.
    • Wanneer dit gebruik word om 'n stelseloproepproses te begin uitlê Die /proc-lêerstelsel sal nou die naam van die lopende lêer vertoon eerder as die lêerbeskrywernommer.
    • Die mountinfo-nutsding is by die kernbronkode gevoeg (in die voorbeeldgids), wat die gebruik van die statmount()- en listmount()-stelseloproepe demonstreer.
    • In die BPF-substelsel voorgestelde nuwe funksies bpf_local_irq_save() en bpf_local_irq_restore() om onderbrekings tydelik op die plaaslike SVE te deaktiveer. Funksies kan gebruik word om strukture te implementeer waarvan die verwerking nie deur onderbrekings opgeskort word nie.
    • In 'n stelseloproep madvise() wanneer die MADV_DONTNEED- en MADV_FREE-vlae gebruik word beveilig Bevry van geheuebladsytabelle wat verband hou met die adresreeks wat vrygestel word, aangesien leë geheuebladsye in sommige situasies nogal baie geheue kan opneem.
    • Vir die OpenRISC-argitektuur, ondersteuning vir die herbeginbare volgordemeganisme (rseq, herlaaibare reekse), ontwerp vir vinnige atoomuitvoering van bewerkings wat, as dit deur 'n ander draad onderbreek word, skoongemaak en weer probeer word.
    • Die kode is herorganiseer met die implementering van die CRC32- en CRC-T10DIF-algoritmes, wat nie meer met die kripto-substelsel sny nie en direk vanaf die biblioteekkoppelvlak opgeroep word. Die verandering het ons in staat gestel om die kode te vereenvoudig en die doeltreffendheid daarvan te verbeter.
    • Na die asynchrone toevoer/afvoerstelsel io_uring bygevoeg 'n Koppelvlak om bykomende integriteit-metadata deur te gee wanneer lees- en skryfbewerkings uitgevoer word.
  • Virtualisering en sekuriteit
    • In stelsel oproep uitlê bygevoeg vlag AT_EXECVE_CHECK, wat toelaat kontrole uitvoer die toelaatbaarheid om 'n lêer uit te voer sonder om dit werklik te begin, maar met inagneming van sekuriteitsbeleide, toegangsregte en aktiewe LSM-modules. Vir gebruik in kombinasie met AT_EXECVE_CHECK, word veiligebit-vlae SECBIT_EXEC_RESTRICT_FILE en SECBIT_EXEC_DENY_INTERACTIVE voorgestel, wat gebruik kan word om die uitvoering van lêers met skrifte in geïnterpreteerde programmeertale te beperk. Die SECBIT_EXEC_RESTRICT_FILE vlag gee opdrag aan koppelaars en tolke om die AT_EXECVE_CHECK opsie te gebruik om te kontroleer of uitvoering geldig is, en die SECBIT_EXEC_DENY_INTERACTIVE vlag verhoed dat interaktiewe opdragte verwerk word. Die hoofgedagte van die verandering is die vermoë om sekuriteitsbeleide toe te pas, nie net op tradisionele uitvoerbare lêers nie, maar ook op tekslêers met skrifte wat gelaai kan word deur die tolk te begin (d.w.s. 'n verbod op uitvoering kan nie net geïmplementeer word wanneer "./script.sh" uitgevoer word nie, maar ook wanneer dit uitgevoer word in die vorm "sh script.sh").
    • Op x86-stelsels word ondersteuning vir beskermde tydtellers vir gasstelsels geïmplementeer, wat nie toelaat dat die gasstelselklok van die gasheeromgewing verander word nie. Die geleentheid word geïmplementeer op grond van die meganisme AMD SEV (Secure Encrypted Virtualization), wat in virtualisasiestelsels gebruik word om virtuele masjiene te beskerm teen inmenging deur die hipervisor of gasheerstelseladministrateur.
    • Na die SELinux verpligte toegangsbeheerstelsel bygevoeg ondersteun xperm-reëls, wat toelaat dat SELinux-beleide gebind word aan spesifieke ioctl()-oproepe of netskakelboodskappe.
    • Om kernmodules digitaal te onderteken in plaas van die verstek SHA1 betrokke SHA512 algoritme.
    • In VirtualBox-gasbestuurders ingesluit ondersteuning vir ARM64-argitektuur.
    • In KVM hypervisor voortgesit werk oor die gebruik van die Intel TDX (Trusted Domain Extensions)-meganisme om die geheue van gasstelsels te enkripteer.
    • In virtio_blk bygevoeg ondersteuning vir foutherstelmodus.
  • Netwerk substelsel
    • In die implementering van die protokol RxRPC verskyn vermoë om groot UDP-rame te gebruik om deurset te verhoog.
    • Bygevoeg algoritme ondersteuning vir TCP RAK-TLP pakkieverlies te bepaal.
    • Bygevoeg 'n nuwe sysctl-parameter tcp_tw_reuse_delay, wat in samewerking met die netwerknaamruimte werk en jou toelaat om die vertraging te bepaal wat ingestel is voordat die stelsel die netwerkpoortnommer kan hergebruik nadat die TCP-sok gesluit is.
    • Bygevoeg die vermoë om 'n presisietydverskaffer (PTP) te kies vir die generering van tydstempels op die PHY- en MAC-vlakke.
    • Vir IPsec geïmplementeer ondersteuning vir die meganisme van samevoeging en fragmentasie van ingekapselde IP-pakkies – IP-TFS/AGGFRAG (IP-verkeersvloeisekuriteit/aggregasie- en fragmentasiemodus vir die inkapseling van sekuriteitsloonvrag).
    • Na die netwerksokstelsel bygevoeg ondersteun die oordrag van prioriteitsinligting (SO_PRIORITY) in die vorm van beheerboodskappe (cmsg - beheerboodskappe). Vir netwerksokke bygevoeg die SO_RCVPRIORITY-opsie, wat die oordrag van sok-prioriteitinligting na die recvmsg()-funksie moontlik maak.
  • Оборудование
    • Bygevoeg bestuurder amdxdna vir argitektuur-gebaseerde NPU (Neural Processing Unit) versnellers geïntegreer in AMD CPU's XDNA, ontwerp om bedrywighede wat verband hou met masjienleer te bespoedig. XDNA-argitektuur-gebaseerde NPU's is beskikbaar in die 7040- en 8040-reeks AMD Ryzen-verwerkers, AMD Alveo V70-versnellers en AMD Versal SoC's.
    • In i915 bestuurder bygevoeg identifiseerders van nuwe GPU's, 'n HDMI-inisialisasie-fouthanteerder is geïmplementeer, en die betroubaarheid van die terugstel van GPU-enjins op Haswell en ouer stelsels is verbeter.
    • Vervolg werk aan die drm-bestuurder (Direkte Rendering Manager) Xe vir GPU's gebaseer op die Intel Xe-argitektuur, wat gebruik word in Intel Arc-familievideokaarte en geïntegreerde grafika, begin met Tiger Lake-verwerkers.
    • Die Nouveau-bestuurder ondersteun nou die oordrag van GSP-RM-logbuffers via debugfs.
    • Die AMDGPU-bestuurder implementeer ondersteuning vir die DRM-paniekmeganisme, wat 'n soort "blou skerm van dood" vertoon wanneer ongelukke plaasvind. Voortgesette voorbereiding vir ondersteuning van die komende Radeon RX 9000-reeks grafiese kaarte gebaseer op die RDNA4-argitektuur. Opgedateerde ondersteuning vir DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS en ISP.
    • Bygevoeg ondersteuning vir die Qualcomm SM6150 (QCS615) platform by die msm (GPU Qualcomm Adreno) DRM bestuurder.
    • Bygevoeg ondersteuning vir SoC MediaTek MT8188 met GPU Mali-G57 om die DRM-bestuurder te ontvries.
    • Bygevoeg ondersteuning vir Broadcom BCM4 SoC (Raspberry Pi 2712) by vc5 DRM bestuurder.
    • In vfio bestuurder nvgrace-gpu bygevoeg ondersteun NVIDIA Grace Blackwell 200-skyfies.
    • Die samestelling ingesluit Bestuurder vir Intel THC (Touch Host Controller) beheerders, wat gebruik word om met raakskerms en raakvlakke op sommige skootrekenaars te werk. Bygevoeg ondersteuning vir Wacom-toestelle met PCI-koppelvlak. Bygevoeg ondersteuning vir QH Electronics-speletjiebeheerders.
    • Bygevoeg ondersteun ARM-borde, SoC's en toestelle: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, SA Blaize 1600D, SA Blaize 7D R-Car V65H ES4, Renesas RZ/G3.0E. SoC-ondersteuning bygevoeg SpacemiT K1 gebaseer op RISC-V argitektuur.
    • In ALSA klank substelsel vir MIDI 2.0 uitgebrei API rawmidi en sequencer. ASRC (Asynchronous Sample Rate Conversion)-ondersteuning is by die API gevoeg vir die aflaai van kompressiebewerkings na die klankkaartkant.
    • Bygevoeg ondersteuning vir klankstelsels van Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4de Gen 16i16, 18i16 en 18i20 toestelle. Bygevoeg ondersteuning vir SteelSeries Arctis 9 draadlose koptelefoon.

Bron: linux.org.ru

Voeg 'n opmerking