
Efter to måneders udvikling præsenterede Linus Torvalds den kerneudgivelse Linux 7.1. Bland de mest markante ændringer er: den nye ntfsplus-driver, første fase af udfasningen af CPU i486, fjernelse af gamle Ethernet-adaptere, fjernelse af ISDN- og AX.25-protokoller, standardaktivering af Intel FRED-mekanismen, støtte til BPF-håndterere i io_uring, optimering af udvekslingssystemet, støtte til sub-planlæggere i sched_ext, zero-copy input/output i ublk-driveren, ioctl-operationen shutdown i Btrfs, dynamisk skift af ydeevnemodus i amd-pstate-driveren, og støtte til xattr for Unix-sokler.
I den nye version er der accepteret 17275 rettelser fra 2589 udviklere, patch-størrelse er 57 MB (ændringerne berørte 13528 filer, 751785 nye kode-linjer tilføjet, 405916 linjer slettet). I den tidligere udgave var der 15624 rettelser fra 2477 udviklere, patch-størrelse var 56 MB. Omtrent 41% af alle ændringerne præsenteret i 7.1 relaterer sig til enheddrivere, cirka 12% af ændringerne omhandler opdatering af arkitektonisk specifik kode, 14% er relateret til netværksstakken, 5% til filsystemer og 3% til interne kernesystemer.
De vigtigste nyheder i kernen 7.1 (kernelnewbies.org, lwn.net, opennet):
DiskSubsystem, input/output og filsystemer
- I sammensætningen er der accepteret en ny implementering af NTFS-filsystemet — ntfsplus, baseret på koden fra den klassiske ntfs-driver, der er fjernet fra kernen. Den gamle driver er blevet omarbejdet, udvidet med skrivefunktionalitet og tilpasset til moderne funktioner, som f.eks. brugen af store sider af hukommelse (folios) i stedet for buffer_head-strukturen. Den nye driver har implementeret forsinket blokallokering, hvilket har resulteret i høj ydeevne ved skriveoperationer og reduceret fragmentering. For buffrede skrive/læse-operationer, direkte input/output, kortlægning af estimerede extent og operations for side-skrivning/læsning er bibliotekt xfstests. I iozone-testene viste ntfsplus-driveren sig at være 3-5% hurtigere end ntfs3 ved skrivning i enkelttrådet tilstand og 35-110% hurtigere ved brug af 4 tråde. Læsehastigheden for ntfsplus og ntfs3 er omtrent på samme niveau. ntfs3-driveren forbliver en del af kernen, og den er indført får fejlrettelser og mindre forbedringer.
- Der er tilføjet support for generering og verifikation af integritetskontrol-data T10 (deepwiki.com) på filsystemniveau i stedet for blokenheden, hvilket tillader forbedret ydeevne ved læseoperationer.
- I blok-enhedsdriveren ublk, der muliggør at flytte specifik logik til processens side i brugerens rum, tilføjet understøttelse af input/output gennem delt hukommelse uden at kopiere data mellem buffere (zero-copy mode).
- For selv-krypterende blok-enheder SED-OPAL er tilføjet ioctl til styring af tilstand Enkelt Bruger og implementerede kommandoen STACK_RESET.
- I Btrfs er ioctl-operationen shutdown blevet erklæret stabil, hvilket muliggør at bringe filsystemet i en tilstand, hvor der gøres et forsøg på at afslutte allerede kørte operationer, men alle nye operationer blokeres.
- I exfat er muligheden for at reservere tomme områder gennem kaldet fallocate() implementeret.
- I filsystemet CIFS er der tilføjet understøttelse af at oprette midlertidige filer med flaget O_TMPFILE.
- Systemopkaldet fsmount() tilføjet mulighed for FSMOUNT_NAMESPACE, der skaber et nyt namespace for monteringspunkter til det monterede filsystem. Til systemopkaldene clone3() og unshare() er der tilføjet flag for at returnere det nye namespace for monteringspunkter, som kun indeholder det monterede tomme filsystem skabelon baseret på nullfs, fs-dax driveren med filsystem-interface til DAX enheder (Direct Access).
- I NFS-serveren tilføjet beskyttelse mod angreb ved gætning af filbeskrivelser, implementeret gennem bekræftelse af beskrivelser med kryptografisk signatur. Beskyttelsen aktiveres via monteringsmuligheden sign_fh.
- Tilføjet tegn driver fs-dax, der giver et interface til interaktion med enheder DAX (kernel.org) (Direct Access), der understøtter drift uden om side-cache. Det nævnte interface er nødvendigt for integration i kernefilsystemet famfs, placeret i RAM.
- I Ceph filsystemet implementeret indsamling af metrics om input/output i relation til underafdelinger.
Hukommelse og systemtjenester
- Vedtaget den første serie ændringer for at ophæve støtten til i486 processorer. Indstillinger for at bygge kernen med støtte til 486DX, 486SX og AMD ELAN processorer (CONFIG_M486, CONFIG_M486SX og CONFIG_MELAN) er fjernet fra Kconfig, og mulighederne for kompilering til i486 systemer (-march=i486) er udeladt fra Makefile. Koden til faktisk støtte for drift på i486 processorer er stadig tilbage i kernen, men bygning til sådanne systemer vil nu kræve anvendelse af patches på bygge-filer. Årsagerne til fjernelsen af støtte til i486 processorer skyldes ønsket om at befri kernen for tilstykket kode, der emulerer visse hardware-operationer, såsom CX8 (sammenlign og bytte 8 bytes) og TSC (CPU cyklustæller, der anvendes i opgave-planlæggeren).
- I driver amd-pstate, der anvendes til at administrere energiforbruget på systemer med AMD-processorer, er implementeret muliggør dynamisk skift af præstationsindstillinger og ændring af energistyringsadfærden afhængigt af, om systemet er tilsluttet strømnet eller kører på batteri. Ved tilslutning til strømnet aktiveres nu performance-tilstand, mens balance_performance aktiveres ved batteridrift.
- Den mekanisme, der er aktiveret som standard, Intel FRED (Flexible Return and Event Delivery), som øger effektiviteten og pålideligheden af leveringen af information om lavniveaubegivenheder. Ydeevneforbedringer og reducerede forsinkelser opnås ved at returnere begivenheder ved hjælp af procesinstruktionen IRET i stedet for at sende begivenheder via IDT (Interrupt Descriptor Table). Pålideligheden forbedres ved at behandle modtagelse af begivenheden separat i kernens og brugerens kontekst, beskyttelse mod indlejret NMI-udførelse og bevare alle relaterede CPU-registere i en udvidet stakramme ved undtagelser.
- I perf-subsystemet tilføjet understøttelsen af hukommelsesydelsesmålingsenheder (PMU - Performance Monitoring Unit), der bruges i SoC NVIDIA Tegra410.
- Udførelsen af futex-operationer er accelereret på ARM-systemer takket være anvendelsen af Arm 9.6 LSUI-instruktioner, der gør det muligt for kernen at få adgang til brugerpladsens hukommelse uden at skulle deaktivere beskyttelsesmodus. PAN (arm.com) (Privileged Access Never).
- På systemer med ARM-processorer er understøttelsen af udvidelsen af instruktionssættet MPAM (Memory System Resource Partitioning and Monitoring) forbedret, og der er tilføjet mulighed for at bruge det i brugerpladsen til ressourceadministration via mekanismen resctrl. MPAM muliggør mærkning af hver hukommelsesadgang med en sektion-identifikator (PARTID, Partition ID) og en overvågningsgruppe-identifikator (PMG, Monitoring Group ID). I relation til PARTID kan ressourceforbruget begrænses for at forhindre, at en opgavegruppe optager alle ressourcerne, såsom hukommelsesbåndbredde eller cache-størrelse. I overvågningskonteksten kan kombinationen af PMG og PARTID bruges til at spore hukommelsesressourceforbrug under bestemte belastningstyper.
- Tilføjet muligheden for at bruge realtids-tilstand (PREEMPT_RT) på 32-bit ARM-processorer. Tidligere var understøttelse af PREEMPT_RT begrænset til x86, x86-64, ARM64, RISC-V og LoongArch-arkitekturer.
- Systemopkaldet clone3() nye flag er tilføjet: CLONE_NNP — forbud modtagelse af nye privilegier i den oprettede proces; CLONE_AUTOREAP — automatisk afslutning af processen i stedet for at omdanne den til en zombie-proces indtil den parent-proces udfører wait(); CLONE_PIDFD_AUTOKILL — afslutning af den underliggende proces ved lukning af den relaterede pidfd-deskriptor (f.eks. ved afslutning af parent-processen).
- For hver kerne-modul er der tilføjet en fil import_ns i mappen /sys/module, som indeholder en liste over importerede navnerum symboler (symbolnavnerum).
- Systemet for asynkron input/output io_uring har fået tilføjet support til brugen af BPF-subsystemet til at skabe håndteringsprogrammer. For eksempel kan den primære dispatch-cyklus erstattes med et BPF-program.
- I BPF-subsystemet moderniseret analyse af stakbrugen, hvilket har betydeligt accelereret verificeringen af mange BPF-programmer.
- Med henblik på at optimere ydeevnen omskrevet hrtimer-subsystemet (high resolution timer). Opgaveplanlæggeren kan nu bruge højopløsnings-timere uden tab af ydeevne i stedet for mindre præcise timere.
- Fortsat ændringer fra Rust-for-Linux-grenen vedrørende anvendelsen af Rust-sproget som et sekundært sprog til udvikling af drivere og kernelmoduler (Rust-support er ikke aktiv som standard, og fører ikke til, at Rust bliver en obligatorisk build-afhængighed for kernen). Indtil version 1.85 (der leveres i Debian 13) er kravene til versionen af Rust, der er nødvendig for at bygge kernelkomponenter, blevet hævet. En eksperimentel Kconfig-option, CONFIG_RUST_INLINE_HELPERS, tilføjet for at indlejre C-lag i Rust-kode under kompilering (optimeringen har accelereret funktionen af null-block driver med 2%). Makro ‘const_assert!’ er tilføjet. Funktionaliteten i modulerne sizes, clk, ptr, sync, error er blevet udvidet.
- I mekanismen SCHED_EXT, hvilket muliggør brug af BPF til at skabe CPU-planlæggere, tilføjet den indledende mulighed for at skabe indlejrede planlæggere (sub-scheduler), hvorved hver cgroup kan have sin egen opgaveplanlægger.
- Optimering af swap-subsystemet er fortsat. Den gamle struktur swap_map er blevet afskaffet og erstattet med mekanismen ‘Swap Table’. Ændringen har forbedret ydeevnen og reduceret hukommelsesforbruget i swap-subsystemet.
- I subsystemet DAMON (Data Access MONitor), der gør det muligt at spore en proces' adgang til data i RAM (for eksempel kan man se, hvilke hukommelsesområder processen har haft adgang til, og hvilke områder der er blevet ubenyttede), tilføjet understøttelse af forskellige algoritmer til automatisk optimering kvoter.
- I sporingsundersystemet er implementeret konceptet med eksterne ringbuffer, der muliggør at få sporingsdata fra virtuelle maskiner. Denne mulighed er aktiveret i KVM-hypervisorer og nVHE til overførsel af sporingsdata fra gæstesystemet til værtssiden.
- I subsystemet RV (kernel.org) (Runtime Verification), beregnet til at verificere korrektheden af højt pålidelige systemer, er der tilføjet overvågningskomponenter "stall" til at spore opgaver, hvis udførelse midlertidigt er stoppet eller blokeret, og "deadline" til at analysere opgaveplanlæggerens adfærd.
Virtualisering og sikkerhed
- Som standard er flaget PROC_MEM_FORCE_PTRACE sat, hvilket tillader omgåelse af hukommelsesadgangsrettigheder til processen via filen /proc/PID/mem kun for processer, der anvender systemopkaldet ptrace() til debugging.
- Tilføjet et nyt sæt hooks til LSM-moduler (Linux Security Module), der forenkler implementeringen af politikker for stakkede filsystemer som overlayfs. I LSM er der også tilføjet en hook til styring af adgang til Unix-sockets, som aktiveret i LSM-modulet Landlock bruges til at tildele adgangspolitikker til Unix-sockets.
- I den indbyggede kryptobibliotek lib/crypto, der tilbyder mere enkle og hurtigere funktioner end i det traditionelle kryptografi-API, tilføjet understøttelse af algoritmerne AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH og SM3. Tilsat dokumentation via lib/crypto.
- Implementeret i mode pKVM (Protected KVM) til streng isolation af anonym hukommelse ved hjælp af virtualiseringsextensioner til AArch64-arkitekturen. I denne tilstand udelukkes gæsternes hukommelsessider fra værtssystemets virtuelle addressetabel.
- I KVM-hypervisoren er der tilføjet støtte til femte version af den virtuelle afbrydercontroller ARM (VGICv5 — ARM Virtual Generic Interrupt Controller v5).
Netværkssubsystem
- For unix-sockets, der oprettes af funktionen socket(), er implementeret understøttelse af udvidede filattributter (xattr) user.*. Anvendelsesområderne omfatter tildeling af mærker via udvidede attributter til Unix-sockets brugt til IPC Varlink, for at adskille dem fra mængden til inspektion og debugging af IPC-arbejde med BPF-programmer. I systemd-journald er de udvidede attributter beregnet til at definere logformatet knyttet til socket'en /dev/log.
- Fjernet understøttelse af UDP-Lite protokollen (RFC 3828), der tillader levering af pakker med forkert kontrolsum med det formål, at delvist beskadigede audio- og videodata kan gendannes på codec-niveau. Protokollen er fjernet, da den ikke anvendes af nogen.
- Fjernet muligheden for at bygge IPv6-stakken som en kernelmodul, som ikke blev brugt i praksis (IPv6 enten integreres i kernen eller deaktiveres helt), men som komplicerede vedligeholdelsen, da mange undersystemer måtte tilføje unødvendige håndtag i tilfælde af, at IPv6-modulet blev aflastet.
Udstyr
- I AMDGPU-driveren aktiveret ny displaymotor (DC) til AMD HD 7000-serie APU'er (Sea Islands, GCN 1.1).
- I Nouveau-driveren tilføjet grundlæggende støtte til NVIDIA GA100 GPU baseret på Ampere mikroarkitektur.
- Arbejdet fortsætter med drm-driveren (Direct Rendering Manager) Xe til GPU'er baseret på Intel Xe-arkitekturen, som anvendes i Intel Arc grafikkort og integreret grafik, fra Tiger Lake processorer. Støtten til grafisk subsystem for Intel Nova Lake-P processorer er tilføjet. Implementeret er renselige bufferobjekter (Purgeable Buffer Objects).
- Integrationen af Nova driver komponenter for NVIDIA GPU'er udstyret med GSP-firmware, der anvendes fra NVIDIA GeForce RTX 2000 serien baseret på Turing mikroarkitektur er fortsat. Driveren er skrevet i Rust. Grundlæggende støtte til GPU'er baseret på Turing mikroarkitektur er tilføjet.
- Tilføjet DRM-driver corebootdrm til grafikoutput gennem framebuffer firmware baseret på CoreBoot.
- Tilføjet støtte til ASoC lyd fra AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP og WM8962. Forbedret støtte til USB lyd enheder: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
- Tilføjet yogafan driver til at overvåge blæserens rotationshastighed i Lenovo Yoga, Legion og IdeaPad bærbare computere.
- Tilføjet støtte til ARM-platforme, SoC'er og enheder: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 og ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Fjernet støtte til de anvendte AHCI SATA og PCIe controllere i Baikal-T1 SoC'er, samt timer-, hukommelses-, physmap-, bus-, hwmon-, dwc- og bt1-rom-drivere. Årsagen til fjernelse nævnes som mangel på vedligeholdelse og ufuldstændig integration af komponenterne i Baikal platformen, hvis produktion i Rusland blev stoppet i november 2025.
- Fjernet 12 drivere til Ethernet-enheder med ISA- og PCMCIA-grænseflader, der blev produceret før 2002, for hvilke der ikke er fundet brugere, der anvender dem i produktionssystemer. Desuden er subsystemet fjernet fra kernen ISDN, implementering af protokoller AX.25, CAIF og Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), drivere yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport og logibm (busmouse). Årsagen til fjernelsen var fraværet af aktive vedligeholdere mod baggrunden af det stigende antal fejl, der blev opdaget ved hjælp af syzbot og AI-værktøjer, som ingen tager sig af at rette, og hele byrden ved at afhjælpe alvorlige problemer pålægges de, der vedligeholder hovednetværkssystemerne i kernen. I alt er der fjernet mere end 140.000 linjer kode.
Kilde: linux.org.ru
