
Na twee maanden ontwikkeling heeft Linus Torvalds gepresenteerd de release van de kernel Linux 7.1. Onder de meest opvallende veranderingen: een nieuwe ntfsplus-driver, de eerste fase van beƫindiging van de ondersteuning voor CPU i486, verwijdering van oude Ethernet-adapters, verwijdering van de ISDN- en AX.25-protocollen, standaard inschakeling van de Intel FRED-mechanisme, ondersteuning voor BPF-handlers in io_uring, optimalisatie van de swap-subsystemen, ondersteuning voor subplanners in sched_ext, in- en uitvoer in zero-copy mode in de ublk-driver, ioctl-operatie shutdown in Btrfs, dynamische overschakeling van de prestatiemodus in de amd-pstate-driver, ondersteuning voor xattr voor Unix-sockets.
In de nieuwe versie zijn 17275 correcties opgenomen van 2589 ontwikkelaars, de patchgrootte is 57 MB (de wijzigingen betroffen 13528 bestanden, er zijn 751785 regels code toegevoegd, 405916 regels verwijderd). In de vorige release waren er 15624 correcties van 2477 ontwikkelaars, de patchgrootte was 56 MB. Ongeveer 41% van alle wijzigingen in 7.1 heeft betrekking op stuurprogramma's, ongeveer 12% betreft updates van architectuurspecifieke code, 14% heeft betrekking op de netwerkstack, 5% op bestandssystemen en 3% op interne subsystemen van de kernel.
Belangrijkste vernieuwingen in de kernel 7.1 (kernelnewbies.org, lwn.net, opennet):
Opslagsubsystemen, invoer/uitvoer en bestandssystemen
- Er is aangenomen een nieuwe implementatie van het NTFS-bestandssysteem ā ntfsplus, gebaseerd op de code van de klassieke ntfs-driver die uit de kernel is verwijderd. De oude driver is herzien, uitgebreid met de mogelijkheid om gegevens te schrijven en aangepast om moderne mogelijkheden te ondersteunen, zoals het gebruik van folio's van geheugen (folios) in plaats van de buffer_head-structuur. In de nieuwe driver is uitgestelde blokallocatie geĆÆmplementeerd, wat heeft geleid tot hoge prestaties van schrijfopdrachten en vermindering van fragmentatie. Voor buffer-gebaseerde lees-/schrijfoperaties, directe invoer/uitvoer, extent-mapping en pagina-lees-/schrijfoperaties is de bibliotheek gebruikt iomap. In iozone-tests bleek de ntfsplus-driver 3-5% sneller te zijn dan ntfs3 bij een enkele-thread schrijfoperatie en 35-110% sneller bij het gebruik van 4 threads. De lees snelheid van ntfsplus en ntfs3 ligt ongeveer op hetzelfde niveau. De ntfs3-driver blijft in de kernel en er zijn correcties en kleine verbeteringen aangebracht. correcties en kleine verbeteringen.
- Er is ondersteuning toegevoegd voor het genereren en verifiƫren van integriteitscontroles T10 (deepwiki.com) op het niveau van het bestandssysteem, niet op het niveau van het blokapparaat, wat leidt tot een verhoging van de prestaties van leesoperaties.
- In de blockdevice-driver ublk, waardoor specifieke logica naar de proceszijde aan de gebruikerskant kan worden verplaatst, toegevoegd ondersteuning voor invoer/uitvoer via gedeeld geheugen zonder gegevens tussen buffers te kopiƫren (zero-copy modus).
- Voor zelfversleutelende blokapparaten SED-OPAL zijn toegevoegd ioctl voor het beheren van de modus Enkele gebruiker en het commando STACK_RESET is geĆÆmplementeerd.
- In Btrfs is stabiele ondersteuning voor de ioctl-bewerking shutdown verklaard, waarmee het bestandssysteem in een staat wordt gebracht waarin geprobeerd wordt reeds actieve bewerkingen te beƫindigen, terwijl alle nieuwe bewerkingen worden geblokkeerd.
- In exfat is de mogelijkheid van het reserveren van lege gebieden geĆÆmplementeerd via de aanroep fallocate().
- In het bestandssysteem CIFS is ondersteuning toegevoegd voor het maken van tijdelijke bestanden met de vlag O_TMPFILE.
- In de systeemaanroep fsmount() is de optie FSMOUNT_NAMESPACE toegevoegd, die een nieuwe naamruimte voor montagelopen creƫert voor het gemonteerde bestandssysteem. In de systeemaanroepen clone3() en unshare() zijn vlaggen toegevoegd voor het teruggeven van een nieuwe naamruimte voor montagelopen, die alleen de gemonteerde lege FS-stub op basis van nullfs bevat, met de fs-dax driver met een FS-interface naar DAX (Direct Access) apparaten.
- Op de NFS-server toegevoegd is bescherming tegen aanvallen met het raden van bestandsdescriptoren geĆÆmplementeerd via de cryptografische handtekening van descriptors. Bescherming kan worden ingeschakeld via de montage-optie sign_fh.
- Toegevoegd symbooldriver fs-dax, die een interface biedt voor interactie met apparaten DAX (kernel.org) (Direct Access), die werken zonder paginacaching ondersteunen. De opgegeven interface is nodig voor integratie in de kernel van het bestandssysteem famfs, opgeslagen in het werkgeheugen.
- In het bestandssysteem Ceph is geĆÆmplementeerd verzameling van invoer/uitvoer metrics gekoppeld aan de partities.
Geheugen en systeemdiensten
- Geaccepteerd De eerste reeks wijzigingen voor het stopzetten van de ondersteuning voor i486-processoren. Opties voor het bouwen van de kernel met ondersteuning voor 486DX-, 486SX- en AMD ELAN-processoren (CONFIG_M486, CONFIG_M486SX en CONFIG_MELAN) zijn verwijderd uit Kconfig, en compilatie-opties voor i486-systemen (-march=i486) zijn uitgesloten uit Makefile. De code die de daadwerkelijke ondersteuning voor i486-processoren mogelijk maakt, is voorlopig in de kernel gelaten, maar het bouwen voor dergelijke systemen vereist nu patches op de build-bestanden. De redenen voor het verwijderen van de ondersteuning voor i486-processoren zijn gekoppeld aan de wens om de kernel te ontdoen van complexe code die enkele hardware-operaties emuleert, zoals CX8 (compare-and-swap van 8 bytes) en TSC (CPU clockcounter, gebruikt door de task scheduler).
- In de amd-pstate-driver, die wordt gebruikt voor het beheren van het energieverbruik op systemen met AMD-processoren, geĆÆmplementeerd werd dynamische schakeling van prestatie-instellingen en wijziging van het energiebeheergedrag geĆÆntroduceerd, afhankelijk van het gebruik van netstroom of batterij. Bij netstroom wordt nu de performance-modus geactiveerd, en bij gebruik van de batterij wordt balance_performance ingeschakeld.
- De mechanismen zijn standaard ingeschakeld Intel FRED (Flexible Return and Event Delivery), waardoor de efficiƫntie en betrouwbaarheid van het bezorgen van informatie over low-level gebeurtenissen wordt verhoogd. De prestatieverbetering en het verminderen van vertragingen worden bereikt dankzij het teruggeven van gebeurtenissen met behulp van de processorinstructie IRET in plaats van het verzenden van gebeurtenissen via de IDT (Interrupt Descriptor Table). De betrouwbaarheid wordt verhoogd door de gescheiden verwerking van de gebeurtenisontvangst in de context van de kernel en de gebruikerscontext, bescherming tegen geneste uitvoering van NMI en het opslaan van alle CPU-registers die met de uitzondering verband houden in het uitgebreide stackframe.
- In het perf-subsysteem toegevoegd is ondersteuning toegevoegd voor performance monitoring units (PMU), gebruikt in de SoC NVIDIA Tegra410.
- De uitvoering van futex-operaties op ARM-systemen is versneld door het gebruik van Arm 9.6 LSUI-instructies, waardoor de kernel toegang krijgt tot het geheugen van de gebruikersruimte zonder de beschermingsmodus vooraf uit te schakelen. PAN (arm.com) (Privileged Access Never).
- Op systemen met ARM-processoren is de ondersteuning voor de uitbreiding van de architectuur van de instructieset verbeterd MPAM (Geheugen systeem resource partitionering en monitoring) en toegevoegd de mogelijkheid om deze in de gebruikersruimte te gebruiken voor het beheren van resources via het mechanisme resctrl. MPAM zorgt voor het markeren van elke geheugenaanroep met een sectie-identificator (PARTID, Partition ID) en een monitoringgroep-identificator (PMG, Monitoring Group ID). In relatie tot de PARTID kan het resourceverbruik, zoals geheugenbandbreedte of cachegrootte, worden beperkt, zodat een bepaalde groep taken niet alle resources gebruikt. In de context van monitoring kan de combinatie van PMG en PARTID worden gebruikt om het geheugenverbruik bij bepaalde soorten belasting te volgen.
- Toegevoegd de mogelijkheid om real-time modus (PREEMPT_RT) op 32-bits ARM-processors te gebruiken. Eerder werd PREEMPT_RT-ondersteuning geboden voor de x86- en x86-64-architecturen, ARM64, RISC-V en LoongArch.
- In de systeemaanroep clone3() nieuwe vlaggen toegevoegd: CLONE_NNP ā verbod op het verkrijgen van nieuwe privileges in het aangemaakte proces; CLONE_AUTOREAP ā automatische beĆ«indiging van het proces in plaats van het omzetten naar een zombie-proces tot het uitvoeren van de wait() functie door het bovenliggende proces; CLONE_PIDFD_AUTOKILL ā beĆ«indiging van het kindproces bij het sluiten van de bijbehorende pidfd-descriptor (bijvoorbeeld bij beĆ«indiging van het bovenliggende proces).
- Voor elk kernelmodule is een bestand import_ns toegevoegd in de catalogus /sys/module, dat een lijst bevat van geĆÆmporteerde symbolische naamruimten (symbol namespace).
- Aan het asynchrone invoer-/uitvoersysteem io_uring is ondersteuning toegevoegd voor het gebruik van het BPF-subsysteem om handelaars te creƫren. Bijvoorbeeld, de hoofdverwerkingslus kan worden vervangen door een BPF-programma.
- In het BPF-subsysteem is gemoderniseerd de analyse van het stackgebruik, wat de verificatie door de verifier van veel BPF-programma's aanzienlijk heeft versneld.
- Met als doel de prestaties te optimaliseren hergeschreven de hrtimer (high resolution timer) subsysteem. De taakplanner kan nu timers met hoge resolutie gebruiken zonder prestatieverlies in plaats van minder nauwkeurige timers.
- Voortgezet overdracht van wijzigingen uit de Rust-for-Linux-tak, gerelateerd aan het gebruik van de Rust-taal als tweede taal voor het ontwikkelen van stuurprogramma's en kernelmodules (ondersteuning voor Rust is standaard niet ingeschakeld en leidt niet tot een verplichting om Rust op te nemen in de buildafhankelijkheden van de kernel). Tot versie 1.85 (geleverd in Debian 13) zijn de vereisten voor de versie van Rust die nodig is voor het bouwen van kerncomponenten verhoogd. Een experimentele Kconfig-optie CONFIG_RUST_INLINE_HELPERS is toegevoegd voor het insluiten van C-lagen in Rust-code tijdens compilatie (de optimalisatie versnelde de werking van de null block driver met 2%). De macro āconst_assert!ā is toegevoegd. De mogelijkheden van de modules sizes, clk, ptr, sync, error zijn uitgebreid.
- In breng SCHED_EXT, waardoor BPF kan worden gebruikt om CPU-schedulers te maken, toegevoegd initiƫle mogelijkheid om geneste schedulers (sub-scheduler) te maken, waardoor voor elke cgroup een eigen taakplanner kan worden ingeschakeld.
- De optimalisatie van het swap-subsystem is voortgezet. De oude structuur swap_map is verwijderd en vervangen door het mechanisme āSwap Tableā. Deze wijziging heeft de prestaties verbeterd en het geheugengebruik in het swap-subsystem verminderd.
- In het subsystem DAMON (Data Access MONitor), dat het datatoegangsgedrag van processen in het RAM kan volgen (bijvoorbeeld welke geheugengebieden een proces heeft aangeraakt en welke gebieden ongebruikt zijn gebleven), toegevoegd ondersteuning voor verschillende algoritmen voor automatische fine-tuning quota.
- In het traceersubsystem geĆÆmplementeerd het concept van externe ringbuffers, waarmee traceergegevens uit virtuele machines kunnen worden verkregen. Deze mogelijkheid is gebruikt in KVM-hypervisors en nVHE voor het verzenden van traceergegevens van het gastensysteem naar de hostzijde.
- In het subsystem RV (kernel.org) (Runtime Verification), bedoeld voor het controleren van de correctheid van kritische systemen, zijn monitoringcomponenten āstallā toegevoegd om taken te volgen waarvan de uitvoering tijdelijk is gepauzeerd of geblokkeerd, en ādeadlineā voor het analyseren van het gedrag van de taakplanner.
Virtualisatie en beveiliging
- Standaard is de vlag PROC_MEM_FORCE_PTRACE ingesteld, waarmee toegang tot het geheugentoegangsprecht van een proces via het bestand mogelijk is, /proc/PID/mem alleen voor processen die de systeemaanroep ptrace() voor debugging gebruiken.
- Toegevoegd een nieuwe set hooks voor LSM-modules (Linux Security Module), die de implementatie van beleidsregels voor stacked filesystemen zoals overlayfs vereenvoudigt. In LSM ook is toegevoegd hook voor het beheren van toegang tot Unix-sockets, die wordt gebruikgemaakt van in de LSM-module Landlock voor het toekennen van toegangbeleidsregels voor Unix-sockets.
- In de ingebouwde cryptobibliotheek lib/crypto, die eenvoudigere en snellere functies biedt dan de traditionele crypto API, toegevoegd ondersteuning voor de algoritmen AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH en SM3. Toegevoegd documentatie via lib/crypto.
- De modus pKVM (Protected KVM) voor strikte isolatie van anonieme geheugen met gebruik van virtualisatie-uitbreidingen voor de AArch64-architectuur. In deze modus worden geheugenpagina's van de gast uitgesloten van de tabel met virtuele adressen van het gast systeem.
- In de KVM-hypervisor is ondersteuning toegevoegd voor de vijfde versie van de ARM virtuele interruptcontroller (VGICv5 - ARM Virtual Generic Interrupt Controller v5).
Netwerk subsysteem
- Voor Unix-sockets die zijn aangemaakt met de socket() functie, geĆÆmplementeerd ondersteuning voor uitgebreide bestandsattributen (xattr) user.*. Gebruiksvallen omvatten het toekennen van tags via uitgebreide attributen aan Unix-sockets die worden gebruikt voor IPC Varlink, met als doel deze te onderscheiden voor inspectie en debuggen van IPC met behulp van BPF-programma's. In systemd-journald zijn uitgebreide attributen bedoeld voor het bepalen van het logformaat in verband met de socket /dev/log.
- Verwijderd ondersteuning voor het UDP-Lite protocol (RFC 3828), dat de levering van pakketten met een foutieve controle som toestaat, met de vertrouwdheid dat bijvoorbeeld gedeeltelijk beschadigde audio- en videogegevens kunnen worden hersteld op codec-niveau. Het protocol is verwijderd omdat niemand het gebruikt.
- Verwijderd de mogelijkheid om de IPv6-stack als een kernelmodule te bouwen, wat in de praktijk niet werd gebruikt (IPv6 wordt ofwel in de kernel ingebouwd of volledig uitgeschakeld), maar het onderhoud bemoeilijkte omdat bij het bouwen van IPv6 als kernelmodule (CONFIG_IPV6=m), vele subsystemen gedwongen werden om nutteloze handlers toe te voegen voor het geval de IPv6-module werd ontladen.
Apparatuur
- In de AMDGPU-driver ingeschakeld een nieuwe display-engine (DC) voor AMD APU's van de serie HD 7000 (Sea Islands, GCN 1.1).
- In de Nouveau-stuurprogramma toegevoegd eerste ondersteuning voor GPU NVIDIA GA100 gebaseerd op de Ampere-microarchitectuur.
- Voortgang met de drm-driver (Direct Rendering Manager) Xe voor GPU's op basis van de Intel Xe-architectuur, die wordt gebruikt in Intel's Arc grafische kaarten en geĆÆntegreerde graphics, vanaf de Tiger Lake-processors. Ondersteuning toegevoegd voor de grafische subsystemen van Intel's Nova Lake-P-processoren. Gerealiseerd zijn opvraagbare bufferobjecten (Purgeable Buffer Objects).
- De integratie van de Nova drivercomponenten voor NVIDIA GPU's, uitgerust met GSP-firmware die wordt gebruikt sinds de NVIDIA GeForce RTX 2000-serie op basis van de Turing-microarchitectuur, is voortgezet. De driver is geschreven in Rust. Initiƫle ondersteuning voor GPU's op basis van de Turing-microarchitectuur is toegevoegd.
- Toegevoegd DRM-driver corebootdrm voor het weergeven van graphics via framebuffers van firmware op basis van CoreBoot.
- Toegevoegd ondersteuning voor ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP en WM8962. Verbeterde ondersteuning voor USB-audioapparaten: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
- Toegevoegd yogafan-driver voor het volgen van de snelheid van de ventilator op Lenovo Yoga-, Legion- en IdeaPad-laptops.
- Toegevoegd ondersteuning voor ARM-platforms, SoC's en apparaten: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 en ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Verwijderd ondersteuning voor de in SoC Baikal-T1 gebruikte AHCI SATA- en PCIe-controllers, evenals drivers voor timer, geheugen, physmap, bus, hwmon, dwc en bt1-rom. De reden voor verwijdering is het ontbreken van begeleiding en de onafgebroken integratie in de kernelcomponenten van het Baikal-platform, waarvan de productie in de RF eindigde in november 2025.
- Verwijderd 12 drivers voor Ethernet-apparaten met ISA- en PCMCIA-interfaces, die vóór 2002 zijn geproduceerd, waarvoor geen gebruikers zijn gevonden die ze in bedrijfsystemen toepassen. Ook is de subsysteem verwijderd uit de kernel. ISDN, implementaties van protocollen AX.25, CAIF en Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), drivers yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport en logibm (busmouse). De reden voor verwijdering was het gebrek aan actieve begeleiding tegen de achtergrond van het toenemende aantal fouten die met behulp van syzbot en AI-tools werden ontdekt, die niemand bereid is op te lossen, en de volledige last van het oplossen van ernstige problemen komt op de schouders van de begeleiders van de belangrijkste netwerk subsystemen van de kernel. In totaal zijn er meer dan 140.000 regels code verwijderd.
Bron: linux.org.ru
