Release van Linux-kernel 6.3.

Na twee maanden ontwikkeling heeft Linus Torvalds de release van Linux-kernel 6.3 gepresenteerd. Onder de meest opmerkelijke wijzigingen bevinden zich: het opruimen van verouderde ARM-platforms en grafische stuurprogramma's, de voortzetting van de integratie van ondersteuning voor de programmeertaal Rust, de tool hwnoise, ondersteuning voor rode-zwarte boomstructuren in BPF, de BIG TCP-modus voor IPv4, een ingebouwde prestatietest Dhrystone, de mogelijkheid om uitvoering in memfd te verbieden, en ondersteuning voor het maken van HID-stuurprogramma's met behulp van BPF. In Btrfs zijn wijzigingen aangenomen om de fragmentatie van blockgroepen te verminderen.

In de nieuwe versie zijn 15.637 correcties van 2.055 ontwikkelaars opgenomen; de patchgrootte is 76 MB (de wijzigingen hebben 14.296 bestanden aangetast, 1.023.183 regels code zijn toegevoegd en 883.103 regels verwijderd). Ter vergelijking, in de vorige versie werden 16.843 correcties van 2.178 ontwikkelaars voorgesteld; de patchgrootte was 62 MB. Ongeveer 39% van alle wijzigingen in kernel 6.3 zijn gerelateerd aan apparaatstuurprogramma's, ongeveer 15% van de wijzigingen heeft betrekking op de update van architectuurspecifieke code, 10% is gerelateerd aan de netwerstack, 5% aan bestandssystemen en 3% aan interne subsysteem van de kernel.

De belangrijkste vernieuwingen in kernel 6.3:

  • Geheugen en systeemdiensten
    • Er heeft een aanzienlijke opschoning van de code plaatsgevonden, die verband houdt met oude en ongebruikte ARM-platforms, waardoor de grootte van de bronteksten van de kernel met 150.000 regels is verminderd. Meer dan 40 oude ARM-platforms zijn verwijderd.
    • De mogelijkheid is geïmplementeerd om stuurprogramma's voor invoerapparaten met een HID (Human Interface Device)-interface te maken, geïmplementeerd in de vorm van BPF-programma's.
    • De overdracht van de Rust-for-Linux-tak van extra functionaliteit, gerelateerd aan het gebruik van Rust als de tweede programmeertaal voor de ontwikkeling van stuurprogramma's en kernelmodules, is voortgezet. De ondersteuning voor Rust is standaard niet ingeschakeld en leidt niet tot de opname van Rust in de vereiste bouwafhankelijkheden van de kernel. De functionaliteit die in eerdere releases werd voorgesteld, is uitgebreid met de ondersteuning van Arc-typen (implementatie van verwijzers met tellers), ScopeGuard (voert opruiming uit bij het verlaten van de scope) en ForeignOwnable (biedt de mogelijkheid om verwijzers tussen C- en Rust-code te verplaatsen). Het 'borrow'-module (het type 'Cow' en het type 'ToOwned') is uit het 'alloc'-pakket verwijderd. Het wordt opgemerkt dat de staat van de ondersteuning voor Rust in de kernel al dicht bij het punt is om de eerste modules geschreven in Rust in de kernel te beginnen accepteren.
    • In User-mode Linux (running the kernel as a user process) on x86-64 systems, support for code written in Rust has been implemented. Support for building User-mode Linux using clang with optimizations included at the linking stage (LTO) has been added.
    • A tool called hwnoise has been added to monitor delays caused by hardware characteristics. Deviations in operation execution time (jitter) are identified when interrupt processing is disabled, exceeding one microsecond over 10 minutes of computations.
    • A kernel module with the Dhrystone performance test implementation has been added, which can be used to evaluate CPU performance in configurations without user space components (for instance, during porting for new SoCs where only kernel loading is implemented).
    • A kernel command line parameter 'cgroup.memory=nobpf' has been introduced, disabling memory usage tracking for BPF programs, which can be useful for systems with isolated containers.
    • For BPF programs, a red-black tree data structure implementation has been proposed, using kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) instead of adding a new mapping type.
    • The mechanism of restartable sequences (rseq) has been enhanced with the capability to pass process identifiers for parallel execution (memory-map concurrency ID), identified with the CPU number. Rseq provides means for rapid atomic execution of operations that, if interrupted by another thread, are cleared and retried.
    • Support for SME 2 (Scalable Matrix Extension) instructions has been introduced on ARM processors.
    • For s390x and RISC-V RV64 architectures, support for the 'BPF trampoline' mechanism has been implemented, allowing minimization of overhead when passing calls between the kernel and BPF programs.
    • RISC-V architecture-based systems have implemented the use of 'ZBB' instructions to accelerate string operations.
    • For systems based on the LoongArch instruction set architecture (used in Loongson 3 5000 processors and implementing the new RISC ISA, similar to MIPS and RISC-V), support for kernel address space randomization (KASLR), kernel relocation in memory, hardware breakpoints, and the kprobe mechanism has been implemented.
    • In het DAMOS (Data Access Monitoring-based Operation Schemes) mechanisme, dat het mogelijk maakt om geheugen vrij te geven op basis van het geheugenverbruik, is ondersteuning voor filters geïmplementeerd om bepaalde geheugengebieden uit de verwerking in DAMOS te sluiten.
    • De minimale standaard C-bibliotheek Nolibc ondersteunt nu de s390-architectuur en de Arm Thumb1-instructieset (naast ondersteuning voor ARM, AArch64, i386, x86_64, RISC-V en MIPS).
    • Objtool is geoptimaliseerd om de kernelbuilding te versnellen en het piekgeheugenverbruik tijdens de bouw te verlagen (bij het bouwen van de kernel in de 'allyesconfig'-modus treden er nu geen problemen meer op met het geforceerd beëindigen van processen op systemen met 32 GB RAM).
    • De ondersteuning voor de kernelbouw met de Intel ICC-compiler is stopgezet, aangezien deze al geruime tijd niet functioneerde en niemand dit wenste te corrigeren.
  • Opslagsubsystemen, invoer/uitvoer en bestandssystemen
    • In tmpfs is ondersteuning geïmplementeerd voor het mappen van gebruikers-id's van gemonteerde bestandsystemen, toegepast om bestanden van een bepaalde gebruiker op een gemonteerd vreemd volume te koppelen aan een andere gebruiker in het huidige systeem.
    • In Btrfs is de fragmentatie van blokgroepen verminderd door extents op grootte te scheiden bij toewijzing van blokken, dat wil zeggen dat elke blokgroep nu wordt beperkt tot kleine (tot 128KB), gemiddelde (tot 8 MB) en grote extents. De implementatie van raid56 is herzien. De code voor het controleren van checksums is herwerkt. Er zijn prestatieverbeteringen doorgevoerd, waardoor de send-operatie tot 10 keer sneller kan verlopen door het cachen van utime voor mappen en het uitvoeren van opdrachten alleen wanneer nodig. De uitvoering van fiemap-operaties is tot drie keer versneld door de controles op terugverwijzingen voor gedeelde gegevens (snapshots) over te slaan. Metadata-operaties zijn met 10% versneld door de zoekopdracht naar sleutels in b-tree structuren te optimaliseren.
    • De prestaties van het ext4-bestandssysteem zijn verhoogd door gelijktijdige uitvoer van directe invoer/uitvoer-operaties door meerdere processen in vooraf toegewezen blokken mogelijk te maken, waarbij gebruik wordt gemaakt van gedeelde inode-locks in plaats van exclusieve locking.
    • In f2fs is er gewerkt aan het verbeteren van de leesbaarheid van de code. Belangrijke problemen met atomische schrijfacties en de nieuwe extent-cache zijn opgelost.
    • In het EROFS-bestandssysteem (Enhanced Read-Only File System), dat is ontworpen voor gebruik in partities die alleen-lezen toegankelijk zijn, is de mogelijkheid geïmplementeerd om de ontpackingsoperaties van gecomprimeerde inhoud aan de CPU te koppelen om de vertragingen bij gegevenstoegang te verminderen.
    • De BFQ I/O-scheduler heeft ondersteuning gekregen voor geavanceerde opslagmedia op roterende schijven, zoals schijven met meerdere afzonderlijk bestuurde kopactuators (Multi Actuator).
    • In de implementatie van de client en de server NFS heeft ondersteuning gekregen voor gegevensversleuteling met behulp van het AES-SHA2-algoritme.
    • In de FUSE-subsystem (Filesystems In User Space) is ondersteuning toegevoegd voor een uitbreidingsmechanisme voor verzoeken, waarmee aanvullende informatie aan een verzoek kan worden toegevoegd. Op basis van deze mogelijkheid is het mogelijk gemaakt om groepsidentificaties aan het FS-verzoek toe te voegen, die nodig zijn voor toegangsrechten bij het maken van objecten in het FS (create, mkdir, symlink, mknod).
  • Virtualisatie en beveiliging
    • In de KVM-hypervisor voor x86-systemen is ondersteuning toegevoegd voor geavanceerde hypercalls van Hyper-V en is een doorsturen naar een handler in de host-omgeving in de gebruikersruimte gerealiseerd. Deze wijziging heeft geholpen om ondersteuning voor geneste hypervisoruitvoering van Hyper-V te implementeren.
    • In KVM is de beperking van de toegang van het gastbesturingssysteem tot PMU (Performance Monitor Unit) gebeurtenissen die verband houden met prestatiemeting vereenvoudigd.
    • In het memfd-mechanisme, dat een geheugenruimte identificeert via een bestandshandle die tussen processen wordt doorgegeven, is de mogelijkheid toegevoegd om gebieden te creëren waar code-executie is verboden (non-executable memfd) en waar in de toekomst geen uitvoerrechten kunnen worden ingesteld.
    • Een nieuwe prctl-operatie PR_SET_MDWE is toegevoegd, die pogingen om geheugenrechten in te schakelen die zowel schrijven als uitvoeren toestaan, blokkeert.
    • Er is standaard bescherming tegen Spectre-aanvallen toegevoegd en ingeschakeld, gebaseerd op de automatische IBRS-modus (Enhanced Indirect Branch Restricted Speculation) voorgesteld in AMD Zen 4-processoren, waarmee sp speculatieve uitvoering van instructies tijdens interruptverwerking, systeemaanroepen en contextwisselingen adaptief kan worden toegestaan of verboden. De voorgestelde bescherming resulteert in lagere overheadkosten in vergelijking met Retpoline-beveiliging.
    • Kwetsbaarheid verholpen die het mogelijk maakte om de bescherming tegen Spectre v2-aanvallen te omzeilen bij gebruik van simultane multithreading-technologie (SMT of Hyper-Threading) en veroorzaakt door het uitschakelen van de STIBP (Single Thread Indirect Branch Predictors) mechanisme bij het kiezen van de IBRS-beveiligingsmodus.
    • Voor systemen op basis van de ARM64-architectuur is een nieuw builddoel 'virtconfig' toegevoegd, waarbij alleen de minimale set kernelcomponenten wordt geactiveerd die nodig zijn voor het opstarten in virtualisatiesystemen.
    • Voor de m68k-architectuur is ondersteuning toegevoegd voor het filteren van systeemoproepen met behulp van het seccomp-mechanisme.
    • Ondersteuning toegevoegd voor CRB TPM2-apparaten (Command Response Buffer) die zijn ingebouwd in AMD Ryzen-processoren, gebaseerd op de Microsoft Pluton-technologie.
  • Netwerk subsysteem
    • Netlink-interface toegevoegd voor de configuratie van de PLCA (Physical Layer Collision Avoidance) sublayer, zoals gedefinieerd in de IEEE 802.3cg-2019 specificatie en gebruikt in Ethernet-netwerken 802.3cg (10Base-T1S), geoptimaliseerd voor de aansluiting van Internet of Things-apparaten en industriële systemen. Het gebruik van PLCA verhoogt de prestaties in Ethernet-netwerken met gedeelde media.
    • Ondersteuning voor de 'wireless extensions' API voor het beheer van draadloze WiFi 7 (802.11be) interfaces is stopgezet, omdat deze API niet alle vereiste instellingen dekt. Bij het gebruik van de 'wireless extensions' API, die nog steeds als emulatie-laag wordt ondersteund, zal nu een waarschuwing worden weergegeven voor de meeste actuele apparaten.
    • Gedetailleerde documentatie over de netlink API is voorbereid (voor kernelontwikkelaars en applicatieontwikkelaars in de gebruikersruimte). De ynl-gen-c utility is geïmplementeerd om C-code te genereren op basis van YAML-specificaties van het Netlink-protocol.
    • Ondersteuning voor de IP_LOCAL_PORT_RANGE-optie is toegevoegd aan netwerk sockets om de configuratie van uitgaande verbindingen via adresvertalers zonder SNAT te vereenvoudigen. Bij gebruik van één IP-adressen op meerdere hosts stelt IP_LOCAL_PORT_RANGE in staat om op elke host een eigen bereik van uitgaande netwerkpoorten te gebruiken, en op de gateway pakketten te routeren op basis van poortnummers.
    • Voor MPTCP (MultiPath TCP) is de mogelijkheid geïmplementeerd om gemengde stromen te verwerken waarbij IPv4- en IPv6-protocollen worden gebruikt. MPTCP is een uitbreiding van het TCP-protocol voor het opzetten van een TCP-verbinding met de aflevering van pakketten via meerdere routes tegelijkertijd via verschillende netwerkinterfacen, gekoppeld aan verschillende IP-adressen.
    • Voor IPv4 is de mogelijkheid geïmplementeerd om de BIG TCP-uitbreiding te gebruiken, waarmee de maximale grootte van een TCP-pakket tot 4 GB kan worden vergroot om de werking van hoge snelheid interne datacenter netwerken te optimaliseren. Deze vergroting van de pakketgrootte bij een 16-bits veldgrootte in de header wordt bereikt door het implementeren van 'jumbo'-pakketten, waarvan de grootte in de IP-header op 0 wordt ingesteld, terwijl de werkelijke grootte in een apart 32-bits veld in een aparte bijbehorende header wordt doorgegeven.
    • Er is een nieuwe sysctl-parameter default_rps_mask toegevoegd, waarmee de standaardconfiguratie voor RPS (Receive Packet Steering) kan worden ingesteld, die verantwoordelijk is voor de verdeling van de verwerking van binnenkomend verkeer over CPU-kernen op het niveau van interruptbehandelaars.
    • De ondersteuning voor queue processing disciplines voor verkeersbeperkingen zoals CBQ (class-based queuing), ATM (ATM virtuele circuits), dsmark (differentiated service marker), tcindex (traffic-control index) en RSVP (resource reservation protocol) is stopgezet. Deze disciplines zijn lange tijd verwaarloosd en er zijn geen geïnteresseerden gevonden om de ondersteuning voort te zetten.
  • Apparatuur
    • Alle grafische stuurprogramma's op basis van DRI1 zijn verwijderd: i810 (oude geïntegreerde Intel 8xx videokaarten), mga (Matrox GPU), r128 (ATI Rage 128 GPU, inclusief Rage Fury, XPERT 99 en XPERT 128 kaarten), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) en via (VIA IGP), die in 2016 verouderd zijn verklaard en sinds 2012 niet meer worden ondersteund in Mesa.
    • Verouderde framebuffer (fbdev) stuurprogramma's omap1, s3c2410, tmiofb en w100fb zijn verwijderd.
    • Er is een DRM-stuurprogramma toegevoegd voor in de CPU geïntegreerde Intel Meteor Lake (14e generatie) VPU (Versatile Processing Unit) blokken, die zijn ontworpen om operaties met betrekking tot computer vision en machine learning te versnellen. Het stuurprogramma is geïmplementeerd met behulp van de 'accel'-subsystemen, gericht op het bieden van ondersteuning voor rekversnellers die kunnen worden geleverd in de vorm van aparte ASIC's of als IP-blokken binnen SoC's en GPU's.
    • In de i915 (Intel) driver is de ondersteuning voor discrete Intel Arc videokaarten (DG2/Alchemist) uitgebreid, is er voorlopige ondersteuning voor de Meteor Lake GPU geïmplementeerd, en is de ondersteuning voor Intel Xe HP 4-tiled GPU's toegevoegd.
    • In de amdgpu-driver is ondersteuning voor de AdaptiveSync-technologie toegevoegd en de mogelijkheid om met meerdere displays de Secure Display-modus te gebruiken. Ondersteuning voor DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x en DP 2.1 is bijgewerkt.
    • In de msm-driver (GPU Qualcomm Adreno) is ondersteuning toegevoegd voor de platforms SM8350, SM8450 SM8550, SDM845 en SC8280XP.
    • In de Nouveau-driver is de ondersteuning voor verouderde ioctl-aanroepen stopgezet.
    • In de etnaviv-driver is experimentele ondersteuning voor de NPU VerSilicon (VeriSilicon Neural Network Processor) toegevoegd.
    • De pata_parport-driver is geïmplementeerd voor IDE-opslagapparaten die via de parallelle poort zijn aangesloten. De toegevoegde driver heeft het mogelijk gemaakt om de oude PARIDE-driver uit de kernel te verwijderen en het ATA-systeem te moderniseren. Een beperking van de nieuwe driver is dat het niet mogelijk is om tegelijkertijd een printer en een schijf via de parallelle poort aan te sluiten.
    • De ath12k-driver is toegevoegd voor draadloze kaarten op Qualcomm-chips met ondersteuning voor Wi-Fi 7. Ondersteuning voor draadloze kaarten op RealTek RTL8188EU-chips is ook toegevoegd.
    • Ondersteuning is toegevoegd voor 46 borden met processors op basis van de ARM64-architectuur, waaronder de Samsung Galaxy tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD, en apparaten op basis van SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 en SDM632, Rockchips RK3128 TV box, RV1126 Vision, RK3588, RK3568, RK3566, RK3588 en RK3328, TI K3 (AM642/AM654/AM68/AM69).

Tegelijkertijd heeft de Latijns-Amerikaanse Vrije Software Stichting een volledig vrije kernelversie 6.3 - Linux-libre 6.3-gnu gevormd, ontdaan van firmware-elementen en drivers die niet-vrije componenten of codeblokken bevatten waarvan het toepassingsgebied door de fabrikant is beperkt. In uitgave 6.3 is de opruiming van blobs in de nieuwe drivers ath12k, aw88395 en peb2466, evenals in nieuwe device tree-bestanden voor qcom-apparaten op basis van de AArch64-architectuur, uitgevoerd. De opruimcode voor blobs in de amdgpu-, xhci-rcar-, qcom-q6v5-pas-, sp8870-, av7110-drivers, evenals in de drivers voor DVB-kaarten met softwarematige decodering en in voorgecompileerde BPF-bestanden is bijgewerkt. De opruiming in de mga-, r128-, tm6000-, cpia2- en r8188eu-drivers is stopgezet, omdat ze uit de kernel zijn verwijderd. De opruiming van blobs in de i915-driver is verbeterd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster