Kernelrelease Linux 5.19

Na twee maanden ontwikkeling bracht Linus Torvalds de kernel uit. Linux 5.19. Tot de meest opvallende wijzigingen behoren: ondersteuning voor de LoongArch-processorarchitectuur, integratie van "BIG TCP"-patches, "on-demand"-modus in fscache, verwijdering van code voor de ondersteuning van het a.out-formaat, de mogelijkheid om ZSTD te gebruiken voor firmwarecompressie, een interface voor het beheren van geheugenvrijgave uit de gebruikersruimte, verbeterde betrouwbaarheid en prestaties van de pseudo-willekeurige getallengenerator, ondersteuning voor Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) en ARM SME (Scalable Matrix Extension).

In de aankondiging zei Linus dat de volgende kernelversie hoogstwaarschijnlijk nummer 6.0 zou krijgen, aangezien de 5.x-branch genoeg releases had verzameld om het eerste nummer van het versienummer te wijzigen. De nummeringswijziging is gedaan om esthetische redenen en is een formele stap om het ongemak te verlichten dat wordt veroorzaakt door de opeenstapeling van een groot aantal releases in de serie.

Linus vermeldde ook dat hij een Apple-laptop met de ARM64-architectuur (Apple Silicon) had gebruikt om de release te ontwikkelen. Linux-omgeving gebaseerd op de Asahi-distributie LinuxDit is niet Linus' primaire werkstation, maar hij gebruikte het platform om de geschiktheid ervan voor kernelontwikkeling te testen en om ervoor te zorgen dat hij kernelreleases kon ontwikkelen tijdens het reizen, met een lichtgewicht laptop bij de hand. Jaren geleden had Linus al ervaring met het gebruik van Apple-hardware voor ontwikkeling; hij gebruikte ooit een computer met een ppc970-processor en een MacBook Air-laptop.

De nieuwe versie bevat 16401 fixes van 2190 ontwikkelaars (de vorige release bevatte 16206 fixes van 2127 ontwikkelaars). De patch is 90 MB groot (de wijzigingen hadden betrekking op 13847 bestanden, er werden 1149456 regels code toegevoegd en 349177 regels verwijderd). Ongeveer 39% van alle wijzigingen in versie 5.19 heeft betrekking op apparaatstuurprogramma's, ongeveer 21% op het bijwerken van code die specifiek is voor hardwarearchitecturen, 11% op de netwerkstack, 4% op bestandssystemen en 3% op interne kernelsubsystemen.

Belangrijkste innovaties in kernel 5.19:

  • Schijfsubsysteem, I/O en bestandssystemen
    • Het EROFS-bestandssysteem (Enhanced Read-Only File System), dat bedoeld was voor gebruik op partities die alleen toegankelijk zijn in de alleen-lezenmodus, maakt nu gebruik van het fscache-subsysteem, dat gegevenscaching biedt. De wijziging heeft de prestaties van systemen waarbij een groot aantal containers wordt gelanceerd vanaf een EROFS-gebaseerde afbeelding, aanzienlijk verbeterd.
    • Het fscache-subsysteem is bijgewerkt met een on-demand leesmodus, die wordt gebruikt om EROFS te optimaliseren. De nieuwe modus maakt het mogelijk om FS-images op het lokale systeem te cachen. In tegenstelling tot de aanvankelijk beschikbare modus, die gericht was op het cachen van gegevens die via netwerkbestandssystemen in het lokale bestandssysteem werden overgedragen, delegeert de on-demand modus de functies van gegevensextractie en het schrijven naar de cache aan een apart achtergrondproces dat in de gebruikersruimte draait.
    • XFS biedt de mogelijkheid om miljarden uitgebreide kenmerken in een i-node op te slaan. Het maximale aantal extents voor één bestand is verhoogd van 4 miljard naar 247. Er is een modus geïmplementeerd voor het atomisch bijwerken van meerdere uitgebreide kenmerken van een bestand tegelijk.
    • Het Btrfs-bestandssysteem heeft de werking met vergrendelingen geoptimaliseerd, wat de prestaties met ongeveer 7% heeft verbeterd bij direct schrijven in de nowait-modus. De prestaties van bewerkingen in de NOCOW-modus (zonder copy-on-write) zijn met ongeveer 3% toegenomen. De belasting van de paginacache is verminderd bij gebruik van de opdracht "send". De minimale subpaginagrootte is teruggebracht van 64 kB naar 4 kB (u kunt subpagina's gebruiken die kleiner zijn dan kernelpagina's). De overgang van een radix-tree naar het XArrays-algoritme is geïmplementeerd.
    • De NFS-server beschikt nu over een modus waarmee de vergrendelingsstatus van een client die niet meer reageert, kan worden verlengd. Met de nieuwe modus kunt u het wissen van de vergrendeling tot 90 uur uitstellen, tenzij een andere client een concurrerende vergrendeling aanvraagt. In de normale modus wordt de vergrendeling XNUMX seconden nadat de client niet meer reageert, gewist.
    • Het fanotify-subsysteem voor gebeurtenisregistratie heeft een vlag met de naam FAN_MARK_EVICTABLE, die kan worden gebruikt om het vastzetten van doel-i-knooppunten in de cache uit te schakelen, bijvoorbeeld om subtakken te negeren zonder hun onderdelen vast te zetten in de cache.
    • De driver voor FAT32 FS is bijgewerkt en ondersteunt nu het verkrijgen van informatie over de tijd waarop het bestand is aangemaakt via de systeemoproep statx. Dit is te danken aan de implementatie van een efficiëntere en functionelere versie van stat(), die uitgebreide informatie over het bestand retourneert.
    • Er zijn belangrijke optimalisaties doorgevoerd in het exFAT-stuurprogramma om ervoor te zorgen dat een groep sectoren tegelijk wordt gewist wanneer de 'dirsync'-modus actief is, in plaats van ze sequentieel sector voor sector te wissen. Door het aantal blokverzoeken te verminderen na het implementeren van de optimalisatie, namen de prestaties bij het aanmaken van een groot aantal mappen op de SD-kaart met ruim 73-85% toe, afhankelijk van de clustergrootte.
    • De eerste correctieve update van de ntfs3-driver is in de kernel opgenomen. Sinds ntfs3 afgelopen oktober in de 5.15-kernel werd opgenomen, is de driver niet bijgewerkt en hebben de ontwikkelaars het contact verloren. Inmiddels zijn de ontwikkelaars echter weer begonnen met het publiceren van wijzigingen. De voorgestelde patches verhelpen fouten die tot geheugenlekken en crashes leiden, lossen problemen met xfstests op, ruimen ongebruikte code op en herstellen typefouten.
    • OverlayFS ondersteunt nu het toewijzen van gebruikers-ID's van gekoppelde bestandssystemen. Dit wordt gebruikt om bestanden van een specifieke gebruiker op een gekoppelde externe partitie te matchen met een andere gebruiker in het huidige systeem.
  • Geheugen- en systeemservices
    • Er is initiële ondersteuning toegevoegd voor de LoongArch-instructiesetarchitectuur, gebruikt in de Loongson 3 5000-processors en er is een nieuwe RISC ISA geïmplementeerd, vergelijkbaar met MIPS en RISC-V. De LoongArch-architectuur is beschikbaar in drie varianten: uitgeklede 32-bits (LA32R), normale 32-bits (LA32S) en 64-bits (LA64).
    • Code ter ondersteuning van het uitvoerbare bestandsformaat a.out is verwijderd, aangezien dit formaat in versie 5.1 als verouderd werd beschouwd. Het a.out-formaat wordt al lange tijd niet meer ondersteund op systemen met LinuxEn het genereren van .out-bestanden wordt niet ondersteund door moderne tools in configuraties voor Linux Standaard. De loader voor a.out-bestanden kan volledig in de gebruikersruimte worden geïmplementeerd.
    • Ondersteuning voor x86-architectuurspecifieke opstartopties is verwijderd: nosep, nosmap, nosmep, noexec en noclflush.
    • De ondersteuning voor de verouderde CPU-architectuur h8300 (Renesas H8/300), die al lang niet meer wordt ondersteund, is stopgezet.
    • Verbeterde mogelijkheden met betrekking tot het reageren op detectie van gesplitste vergrendelingen, die optreden bij het benaderen van niet-uitgelijnde gegevens in het geheugen. Deze vergrendelingen ontstaan ​​doordat gegevens tijdens de uitvoering van een atomaire instructie twee lijnen van de CPU-cache overschrijden. Dergelijke vergrendelingen leiden tot een aanzienlijke prestatievermindering. Voorheen gaf de kernel standaard een waarschuwing met informatie over het proces dat de vergrendeling veroorzaakte, maar nu wordt het problematische proces extra vertraagd om de prestaties van de rest van het systeem te behouden.
    • Ondersteuning toegevoegd voor het IFS-mechanisme (In-Field Scan) dat in Intel-processors is geïmplementeerd. Dit maakt het mogelijk om CPU-diagnostische tests op laag niveau uit te voeren die problemen kunnen identificeren die niet door standaardtools worden gedetecteerd op basis van foutcorrectiecodes (ECC) of pariteitsbits. De uitgevoerde tests zijn ontworpen in de vorm van downloadbare firmware, vergelijkbaar met microcode-updates. Testresultaten zijn beschikbaar via sysfs.
    • De mogelijkheid toegevoegd om een ​​bootconfig-bestand in de kernel te embedden, waardoor naast opdrachtregelopties ook kernelbewerkingsparameters via een instellingenbestand kunnen worden gedefinieerd. Embedding wordt uitgevoerd met behulp van de buildoptie 'CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"'. Voorheen werd bootconfig gedefinieerd door het aan de initrd-image te koppelen. Embedding in de kernel maakt het mogelijk om bootconfig te gebruiken in configuraties zonder initrd.
    • De mogelijkheid om firmware te laden die is gecomprimeerd met het Zstandard-algoritme is geïmplementeerd. Er is een set besturingsbestanden /sys/class/firmware/* toegevoegd aan sysfs, waardoor het laden van firmware vanuit de gebruikersomgeving kan worden gestart.
    • De asynchrone I/O-interface io_uring introduceert een nieuwe vlag, IORING_RECVSEND_POLL_FIRST. Wanneer deze vlag is ingesteld, wordt een netwerkbewerking eerst ter verwerking ingediend met behulp van polling. Dit kan bronnen besparen in situaties waarin verwerking van de bewerking met enige vertraging acceptabel is. io_uring voegt daarnaast ondersteuning toe voor de systeemaanroep socket(), introduceert nieuwe vlaggen om het beheer van bestandsdescriptoren te vereenvoudigen, voegt een "multi-shot"-modus toe voor het tegelijk accepteren van meerdere verbindingen in een accept()-aanroep en voegt bewerkingen toe voor het rechtstreeks doorsturen van NVMe-opdrachten naar het apparaat.
    • De Xtensa-architectuur ondersteunt nu de KCSAN (Kernel Concurrency Sanitizer) debuggingtool, die is ontworpen om racecondities binnen de kernel dynamisch te detecteren. Ondersteuning voor slaapstand en coprocessors is ook toegevoegd.
    • Voor de m68k-architectuur (Motorola 68000) is dit geïmplementeerd. virtuele machine (platformsimulator) gebaseerd op de emulator Android Goudvis.
    • Voor de AArch64-architectuur is ondersteuning voor Armv9-A SME-extensies (Scalable Matrix Extension) geïmplementeerd.
    • Met het eBPF-subsysteem kunt u getypte aanwijzers opslaan in kaartstructuren en wordt ondersteuning voor dynamische aanwijzers toegevoegd.
    • Er wordt een nieuw proactief mechanisme voor geheugenterugwinning voorgesteld dat besturing vanuit de gebruikersruimte ondersteunt met behulp van het bestand memory.reclaim. Wanneer u een getal naar het opgegeven bestand schrijft, wordt geprobeerd het overeenkomstige aantal bytes uit de set te verwijderen die aan de cgroup is gekoppeld.
    • Verbeterde nauwkeurigheid van geheugengebruikberekening bij het comprimeren van gegevens in de swappartitie met behulp van het zswap-mechanisme.
    • Voor de RISC-V-architectuur is ondersteuning geboden voor het uitvoeren van 32-bits uitvoerbare bestanden op 64-bits systemen, is er een modus toegevoegd voor het koppelen van beperkende kenmerken aan geheugenpagina's (bijvoorbeeld om caching uit te schakelen) en is de functie kexec_file_load() geïmplementeerd.
    • De implementatie van ondersteuning voor 32-bits Armv4T- en Armv5-systemen is aangepast voor gebruik in universele multiplatform-kernelassemblages die geschikt zijn voor verschillende ARM-systemen.
  • Virtualisatie en beveiliging
    • Met het EFI-subsysteem kunt u vertrouwelijke informatie vertrouwelijk naar gastsystemen verzenden zonder dat het hostsysteem hiervan op de hoogte wordt gesteld. De gegevens worden verstrekt via de directory security/coco in securityfs.
    • In de Lockdown-beveiligingsmodus, die root-toegang tot de kernel beperkt en bypass-paden voor UEFI Secure Boot blokkeert, is een zwakke plek gedicht waardoor de beveiliging kon worden omzeild door de kerneldebugger te manipuleren.
    • Er zijn patches opgenomen die gericht zijn op het verbeteren van de betrouwbaarheid en prestaties van de pseudo-willekeurige getallengenerator.
    • Bij het bouwen met Clang 15 is ondersteuning voor het mechanisme voor willekeurige kernelstructuur geïmplementeerd.
    • Met het Landlock-mechanisme kunt u de interactie van een groep processen met de externe omgeving beperken. Het biedt ondersteuning voor regels waarmee u de uitvoering van bestandsnaamswijzigingen kunt beheren.
    • Het IMA-subsysteem (Integrity Measurement Architecture), dat is ontworpen om de integriteit van componenten van het besturingssysteem te verifiëren met behulp van digitale handtekeningen en hashes, maakt nu gebruik van de fs-verity-module voor bestandsverificatie.
    • De logica van acties bij het uitschakelen van onbevoegde toegang tot het eBPF-subsysteem is gewijzigd. Voorheen waren alle opdrachten met betrekking tot de systeemaanroep bpf() uitgeschakeld en vanaf versie 5.19 is toegang tot opdrachten die niet leiden tot het aanmaken van objecten nog steeds mogelijk. Dit gedrag vereist dat een bevoorrecht proces een BPF-programma laadt, maar dat onbevoegde processen vervolgens met dit programma kunnen communiceren.
    • Ondersteuning toegevoegd voor de AMD SEV-SNP (Secure Nested Paging)-extensie, die veilige werking biedt met geneste geheugenpaginatabellen en bescherming biedt tegen de "undeSErVed"- en "SEVerity"-aanvallen op AMD EPYC-processors, waarmee het AMD SEV (Secure Encrypted Virtualization)-beveiligingsmechanisme kan worden omzeild.
    • Er is ondersteuning toegevoegd voor het Intel TDX-mechanisme (Trusted Domain Extensions), waarmee pogingen van derden om toegang te krijgen tot versleuteld geheugen kunnen worden geblokkeerd. virtuele machines.
    • De driver virtio-blk, die wordt gebruikt om blokdevices te emuleren, heeft ondersteuning toegevoegd voor I/O met behulp van polling. Volgens tests heeft dit de latentie met ongeveer 10% verminderd.
  • Netwerksubsysteem
    • De set bevat een reeks BIG TCP-patches waarmee de maximale TCP-pakketgrootte kan worden verhoogd tot 4 GB om de werking van snelle interne datacenternetwerken te optimaliseren. Deze toename van de pakketgrootte met een veldgrootte van 16 bits in de header wordt bereikt door de implementatie van "jumbo"-pakketten, waarvan de grootte in de IP-header is ingesteld op 0 en de werkelijke grootte wordt verzonden in een apart veld van 32 bits in een aparte bijgevoegde header. Bij het testen van de prestaties verhoogde het instellen van de pakketgrootte op 185 KB de doorvoer met 50% en verminderde de vertragingen in de gegevensoverdracht aanzienlijk.
    • Er is verder gewerkt aan de integratie van hulpmiddelen in de netwerkstack om de redenen voor het verwijderen van pakketten te volgen (redencodes). De redencode wordt verzonden wanneer het geheugen dat aan het pakket is gekoppeld, wordt vrijgegeven en maakt het mogelijk om rekening te houden met situaties zoals het weggooien van pakketten vanwege fouten bij het invullen van headervelden, detectie van spoofing door het filter rp_filter, ongeldige controlesom, onvoldoende geheugen, activering van IPSec XFRM-regels, ongeldig TCP-volgnummer, enzovoort.
    • Ondersteuning toegevoegd voor een terugval naar reguliere TCP-verbindingen (MPTCP, MultiPath TCP) in situaties waarin bepaalde MPTCP-functies niet kunnen worden gebruikt. MPTCP is een uitbreiding van het TCP-protocol voor het organiseren van de werking van een TCP-verbinding met gelijktijdige pakketlevering langs meerdere routes via verschillende netwerkinterfaces die aan verschillende IP-adressen zijn gekoppeld. Er is een API toegevoegd voor het beheren van MPTCP-stromen vanuit de gebruikersruimte.
  • Uitrusting
    • Er zijn meer dan 420 regels code toegevoegd die betrekking hebben op de amdgpu-driver, waarvan ongeveer 400 regels automatisch gegenereerde headerbestanden zijn met gegevens voor de ASIC-registers in de AMD GPU-driver en nog eens 22.5 regels die een eerste implementatie van AMD SoC21-ondersteuning bieden. De totale grootte van de driver voor AMD GPU's bedraagt ​​meer dan 4 miljoen regels code. Naast SoC21 bevat de AMD-driver ondersteuning voor SMU 13.x (System Management Unit), bijgewerkte USB-C- en GPUVM-ondersteuning en voorbereidingen voor ondersteuning voor de volgende generaties RDNA3- (RX 7000) en CDNA- (AMD Instinct) platforms.
    • De i915-driver (Intel) heeft uitgebreide mogelijkheden op het gebied van energiebeheer. GPU-ID's zijn toegevoegd voor Intel DG2 (Arc Alchemist) dat in notebooks wordt gebruikt, initiële ondersteuning voor het Intel Raptor Lake-P (RPL-P)-platform, informatie over Arctic Sound-M grafische kaarten is toegevoegd, ABI voor rekenengines is geïmplementeerd, ondersteuning voor het Tile2-formaat voor DG4-kaarten is toegevoegd en DisplayPort HDR-ondersteuning is geïmplementeerd voor Haswell-gebaseerde systemen.
    • De Nouveau-driver is overgeschakeld naar het gebruik van de drm_gem_plane_helper_prepare_fb-handler en statische geheugentoewijzing is toegepast op sommige structuren en variabelen. Wat betreft het gebruik van NVIDIA's open-source kernelmodulecode in Nouveau, is het werk tot nu toe beperkt gebleven tot het identificeren en verhelpen van fouten. Het is de bedoeling dat de gepubliceerde firmware in de toekomst wordt gebruikt om de prestaties van de driver te verbeteren.
    • Driver toegevoegd voor de NVMe-controller die wordt gebruikt in Apple-computers op basis van de M1-chip.

Tegelijkertijd creëerde de Latijns-Amerikaanse Stichting voor Vrije Software een versie van de volledig vrije kernel 5.19. Linux-libre 5.19-gnu, ontdaan van firmware- en driverelementen die niet-vrije componenten of codefragmenten met een beperkte reikwijdte bevatten. Deze release bevat driveropschoning voor pureLiFi X/XL/XC en TI AMx3 Wkup-M3 IPC. De code voor blob-opschoning is bijgewerkt voor drivers en subsystemen van Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS en pu3-imgu drivers. De verwerking van Qualcomm AArch64 devicetree-bestanden is geïmplementeerd. Ondersteuning voor het nieuwe naamgevingsschema voor Sound Open Firmware-componenten is toegevoegd. De opschoning van de ATM Ambassador-driver, die uit de kernel is verwijderd, is stopgezet. De controle over blob-opschoning in HDCP en Mellanox Core is verplaatst naar aparte kconfig-tags.

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster