Linux kernvrystelling 6.0

Na twee maande se ontwikkeling het Linus Torvalds die vrystelling van die Linux 6.0-kern aangebied. Die beduidende verandering in weergawenommer is om estetiese redes en is 'n formele stap om die ongemak te verlig om 'n groot aantal uitgawes in die reeks op te tel (Linus het geskerts dat die rede vir die verandering van die taknommer meer waarskynlik was dat hy se vingers opraak en tone om weergawenommers te tel). Van die mees noemenswaardige veranderinge: ondersteuning vir asynchrone gebufferde skryfwerk in XFS, die ublk-blokbestuurder, optimalisering van die taakskeduleerder, 'n meganisme om die korrekte werking van die kern te verifieer, ondersteuning vir die ARIA-blokkode.

Sleutel innovasies in kern 6.0:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Die XFS-lêerstelsel het ondersteuning bygevoeg vir asynchrone gebufferde skryfwerk deur die io_uring-meganisme te gebruik. Prestasietoetse wat uitgevoer is met behulp van fio-gereedskap (1 draad, 4kB blokgrootte, 600 sekondes, opeenvolgende skryf) toon 'n toename in toevoer/afvoerbewerkings per sekonde (IOPS) van 77k tot 209k, data-oordragspoed van 314MB/s tot 854MB/s, en 'n afname in latensie van 9600ns tot 120ns (80 keer).
    • Die Btrfs-lêerstelsel implementeer 'n tweede weergawe van die protokol vir die "stuur"-opdrag, wat ondersteuning vir bykomende metadata implementeer, data in groter blokke (meer as 64K) stuur en omvangs in saamgeperste vorm oordra. Die prestasie van direkte leesbewerkings is aansienlik verhoog (tot 3 keer) as gevolg van gelyktydige lees van tot 256 sektore. Verminder sluitingskontensie en versnelde metadatakontrolering deur gereserveerde metadata vir uitgestelde elemente te verminder.
    • Nuwe ioctl-bewerkings EXT4_IOC_GETFSUUID en EXT4_IC_SETFSUUID is by die ext4-lêerstelsel gevoeg om die UUID wat in die superblok gestoor is, te herwin of te stel.
    • Die F2FS-lêerstelsel bied 'n lae geheueverbruikmodus, wat werking op toestelle met 'n klein hoeveelheid RAM optimaliseer en jou toelaat om geheueverbruik te verminder ten koste van verminderde werkverrigting.
    • Bygevoeg ondersteuning vir NVMe-stasie-verifikasie.
    • Die NFSv4-bediener implementeer 'n beperking op die aantal aktiewe kliënte, wat gestel is as 1024 geldige kliënte vir elke gigagreep RAM in die stelsel.
    • Die CIFS-kliënt-implementering het werkverrigting in multi-kanaal transmissiemodus verbeter.
    • 'n Nuwe vlag FAN_MARK_IGNORE is by die gebeurtenisopsporingsubstelsel in die fanotify FS gevoeg om spesifieke gebeurtenisse te ignoreer.
    • In die Overlayfs FS, wanneer dit bo-op 'n FS met gebruikers-ID-kartering gemonteer is, word korrekte ondersteuning vir POSIX-voldoenende toegangsbeheerlyste verskaf.
    • Het die ublk-blokbestuurder bygevoeg, wat spesifieke logika na die kant van die agtergrondproses in gebruikersruimte skuif en die io_uring-substelsel gebruik.
  • Geheue en stelseldienste
    • Nuwe kenmerke is by die DAMON (Data Access MONitor) substelsel gevoeg, wat dit nie net moontlik maak om prosestoegang tot RAM vanaf gebruikersspasie te monitor nie, maar ook om geheuebestuur te beïnvloed. In die besonder is 'n nuwe module "LRU_SORT" voorgestel, wat hergroepering van LRU-lyste (Least Recently Used) verskaf om die prioriteit van sekere geheuebladsye te verhoog.
    • Die vermoë om nuwe geheuestreke te skep, is geïmplementeer met behulp van die vermoëns van die CXL (Compute Express Link)-bus, wat gebruik word om hoëspoedinteraksie tussen die SVE en geheuetoestelle te organiseer. Met CXL kan jy nuwe geheuestreke wat deur eksterne geheuetoestelle verskaf word, koppel en dit as bykomende fisiese adresspasiebronne gebruik om die stelsel se ewekansige toegangsgeheue (DDR) of permanente geheue (PMEM) uit te brei.
    • Werkverrigtingprobleme met AMD Zen-verwerkers opgelos wat veroorsaak is deur kode wat 20 jaar gelede bygevoeg is om 'n hardewareprobleem in sommige skyfiestelle te werk ('n bykomende WAG-instruksie is bygevoeg om die verwerker te vertraag sodat die skyfiestel tyd gehad het om in 'n ledige toestand te gaan). Die verandering het gelei tot verminderde werkverrigting onder werkladings wat gereeld wissel tussen ledige en besige toestande. Byvoorbeeld, nadat die oplossing gedeaktiveer is, het die gemiddelde tbench-toetstellings van 32191 MB/s tot 33805 MB/s toegeneem.
    • Kode met heuristiek is van die taakskeduleerder verwyder, wat migrasie van prosesse na die minste gelaaide SVE's verseker, met inagneming van die voorspelde wins in energieverbruik. Die ontwikkelaars het tot die gevolgtrekking gekom dat die heuristiek nie bruikbaar genoeg was nie en dat dit makliker was om dit te verwyder en prosesse te migreer sonder bykomende evaluering wanneer sulke migrasie moontlik tot laer kragverbruik kan lei (byvoorbeeld wanneer die teiken-SVE in 'n laer kragvlak is). Deaktivering van heuristiek het gelei tot 'n vermindering in kragverbruik wanneer intensiewe take uitgevoer word, byvoorbeeld, in die video-dekoderingstoets het kragverbruik met 5.6% afgeneem.
    • Die verspreiding van take oor SVE-kerns op groot stelsels is geoptimaliseer, wat werkverrigting vir sekere tipes werklading verbeter het.
    • Die io_uring asynchrone I/O-koppelvlak bied 'n nuwe vlag, IORING_RECV_MULTISHOT, wat jou toelaat om multi-skoot-modus te gebruik met die recv()-stelseloproep om veelvuldige leesbewerkings tegelyk vanaf dieselfde netwerksok uit te voer. io_uring ondersteun ook netwerkoordrag sonder intermediêre buffering (nul-kopie).
    • Implementeer die vermoë om BPF-programme gekoppel aan uprobe in 'n slaaptoestand te plaas. BPF voeg ook 'n nuwe iterator ksym by om met kernsimbooltabelle te werk.
    • Die verouderde "efivars" koppelvlak in sysfs, bedoel vir toegang tot UEFI selflaai veranderlikes, is verwyder (die efivarfs virtuele FS word nou universeel gebruik om toegang tot EFI data te verkry).
    • Die perf-hulpmiddel het nuwe verslae vir die ontleding van slotkonflikte en die tyd wat die verwerker spandeer om kernkomponente uit te voer.
    • Die CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3-instelling is verwyder, wat toegelaat het dat die kern in die "-O3"-optimeringsmodus gebou kon word. Daar word opgemerk dat eksperimente met optimeringsmodusse uitgevoer kan word deur vlae tydens samestelling deur te gee ("maak KCFLAGS=-O3"), en die byvoeging van 'n instelling by Kconfig vereis herhaalbare prestasieprofiel, wat wys dat lus-ontrol wat in "-O3"-modus gebruik word, gee 'n voordeel in vergelyking met die "-O2" optimeringsvlak.
    • 'n Debugfs-koppelvlak is bygevoeg om inligting oor die werking van individuele "geheuekrimpers" te bekom (hanteerders word genoem wanneer daar onvoldoende geheue is en kerndatastrukture inpak om hul geheueverbruik te verminder).
    • Vir die OpenRISC- en LoongArch-argitekture word ondersteuning vir die PCI-bus geïmplementeer.
    • Vir die RISC-V-argitektuur is die "Zicbom"-uitbreiding geïmplementeer om toestelle met DMA te bestuur wat nie kas-koherent is nie.
  • Virtualisering en sekuriteit
    • 'n RV (Runtime Verification)-verifikasiemeganisme is bygevoeg om die korrekte werking op hoogs betroubare stelsels te verifieer wat geen foute waarborg nie. Verifikasie word tydens looptyd uitgevoer deur hanteerders aan spoorpunte te heg wat die werklike vordering van uitvoering nagaan teen 'n voorafbepaalde verwysing deterministiese model van die masjien wat die verwagte gedrag van die stelsel definieer. Verifikasie met die model tydens looptyd is geposisioneer as 'n meer liggewig en maklik om te implementeer metode om die korrektheid van uitvoering op kritieke stelsels te bevestig, wat klassieke betroubaarheidverifikasiemetodes aanvul. Onder die voordele van RV is die vermoë om streng verifikasie te verskaf sonder 'n aparte implementering van die hele stelsel in 'n modelleringstaal, sowel as buigsame reaksie op onvoorsiene gebeure.
    • Geïntegreerde kernkomponente vir die bestuur van enklawes gebaseer op Intel SGX2 (Software Guard eXtensions) tegnologie, wat toepassings toelaat om kode uit te voer in geïsoleerde geïnkripteer areas van geheue, waartoe die res van die stelsel beperkte toegang het. Intel SGX2-tegnologie word ondersteun in Intel Ice Lake- en Gemini Lake-skyfies, en verskil van Intel SGX1 in bykomende instruksies vir dinamiese geheuebestuur van enklawes.
    • Vir die x86-argitektuur is die vermoë om die saad vir die pseudorandom-getalgenerator deur die selflaailaaier-instellings oor te dra geïmplementeer.
    • Die SafeSetID LSM-module het nou die vermoë om veranderinge wat deur die setgroups()-oproep gemaak is, te bestuur. SafeSetID laat stelseldienste toe om gebruikers veilig te bestuur sonder om voorregte te eskaleer (CAP_SETUID) en sonder om wortelvoorregte te verkry.
    • Bygevoeg ondersteuning vir ARIA blok syfer.
    • Die BPF-gebaseerde sekuriteitsbestuurmodule bied die vermoë om hanteerders aan individuele prosesse en prosesgroepe (cgroups) te koppel.
    • 'n Meganisme met 'n waghond-implementering is bygevoeg om hang van gasstelsels op te spoor gebaseer op die monitering van vCPU-aktiwiteit.
  • Netwerk substelsel
    • Hanteerders vir die generering en kontrolering van SYN-koekies is by die BPF-substelsel gevoeg. Ook bygevoeg is 'n stel funksies (kfunc) vir toegang tot en die verandering van die toestand van verbindings.
    • Die draadlose stapel het ondersteuning bygevoeg vir die MLO (Multi-Link Operation)-meganisme, gedefinieer in die WiFi 7-spesifikasie en laat toestelle toe om gelyktydig data te ontvang en te stuur deur verskillende frekwensiebande en kanale te gebruik, byvoorbeeld om gelyktydig verskeie kommunikasiekanale tussen 'n toegangspunt tot 'n kliënttoestel.
    • Die werkverrigting van die TLS-protokol wat in die kern ingebou is, is verbeter.
    • Het 'n kernopdragreëlopsie "gasheernaam=" bygevoeg om toe te laat dat die gasheernaam vroeg in die selflaaiproses gestel word, voordat gebruikersruimtekomponente begin word.
  • Оборудование
    • Die i915 (Intel) bestuurder bied ondersteuning vir Intel Arc (DG2/Alchemist) A750 en A770 diskrete videokaarte. 'n Aanvanklike implementering van ondersteuning vir Intel Ponte Vecchio (Xe-HPC) en Meteor Lake GPU's is voorgestel. Werk gaan voort om die Intel Raptor Lake-platform te ondersteun.
    • Die amdgpu-bestuurder bied steeds ondersteuning vir die AMD RDNA3 (RX 7000) en CDNA (Instinct) platforms.
    • Die Nouveau-bestuurder het die ondersteuningskode vir NVIDIA nv50 GPU-skermenjins herwerk.
    • Bygevoeg nuwe logicvc DRM bestuurder vir LogiCVC skerms.
    • Die v3d-bestuurder (vir Broadcom Video Core GPU) ondersteun Raspberry Pi 4-borde.
    • Ondersteuning vir Qualcomm Adreno 619 GPU by die msm-bestuurder gevoeg.
    • Ondersteuning vir ARM Mali Valhall GPU by die Panfrost-bestuurder gevoeg.
    • Bygevoeg aanvanklike ondersteuning vir Qualcomm Snapdragon 8cx Gen3 verwerkers wat in Lenovo ThinkPad X13s skootrekenaars gebruik word.
    • Bygevoeg klankbestuurders vir AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake en Mediatek MT8186 platforms.
    • Bygevoeg ondersteuning vir Intel Habana Gaudi 2 masjienleerversnellers.
    • Bygevoeg ondersteuning vir ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Terselfdertyd het die Latyns-Amerikaanse Vrye Sagteware-stigting 'n weergawe gevorm van die heeltemal gratis kern 6.0 - Linux-libre 6.0-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 vrystelling deaktiveer die gebruik van blobs in die CS35L41 HD-klankbestuurder en die UCSI-bestuurder vir STM32G0 mikrobeheerders. DTS-lêers vir Qualcomm- en MediaTek-skyfies is skoongemaak. Die deaktivering van blobs in die MediaTek MT76-bestuurder is herwerk. Opgedateerde blob-skoonmaakkode in AMDGPU, Adreno, Tegra VIC, Netronome NFP en Habanalabs Gaudi2-bestuurders en substelsels. Het opgehou om die VXGE-bestuurder skoon te maak, wat uit die kern verwyder is.

Bron: opennet.ru

Voeg 'n opmerking