
Efter to måneders udvikling, Linus Torvalds indsendt kerneudgivelse Linux 7.1Blandt de mest bemærkelsesværdige ændringer: den nye ntfsplus-driver, den første fase af ophør af understøttelse af i486 CPU'en, fjernelse af gamle Ethernet-adaptere, fjernelse af ISDN- og AX.25-protokollerne, aktivering af Intel FRED-mekanismen som standard, understøttelse af BPF-handlere i io_uring, optimering af swap-undersystemet, understøttelse af subschedulere i sched_ext, zero-copy I/O i ublk-driveren, lukning af ioctl-operationen i Btrfs, dynamisk skift af performance mode i amd-pstate-driveren og xattr-understøttelse af Unix-sockets.
Den nye version indeholder 17275 rettelser fra 2589 udviklere, patchstørrelsen er 57 MB (ændringerne berørte 13528 filer, 751785 linjer kode blev tilføjet, 405916 linjer blev slettet). Den sidste udgivelse havde 15624 rettelser fra 2477 udviklere, patchstørrelsen var 56 MB. Omkring 41 % af alle ændringer, der er introduceret i 7.1, er relateret til enhedsdrivere, ca. 12 % af ændringerne er relateret til opdatering af kode, der er specifik for hardwarearkitekturer, 14 % er relateret til netværksstakken, 5 % er relateret til filsystemer og 3 % er relateret til interne kerneundersystemer.
Vigtige nye funktioner i kerne 7.1 (kernelnewbies.org, lwn.net, åbent net):
Diskundersystem, I/O og filsystemer
- Optaget i sammensætningen ny implementering NTFS-filsystem — ntfsplus, baseret på koden fra den klassiske ntfs-driver, som blev fjernet fra kernen. Den gamle driver blev redesignet, udvidet med dataskrivningsfunktioner og tilpasset til at understøtte moderne funktioner, såsom brugen af tomes af hukommelsessider (folioer) i stedet for buffer_head-strukturen. Den nye driver implementerer lazy blockallokering, hvilket giver mulighed for høj skriveydelse og reduceret fragmentering. Biblioteket bruges til bufferede læse-/skriveoperationer, direkte I/O, extent mapping og paginerede læse-/skriveoperationer. iomapI iozone-tests var ntfsplus-driveren 3-5% hurtigere end ntfs3, når der blev skrevet i single-threaded-tilstand, og 35-110% hurtigere, når der blev brugt 4 tråde. Læsehastigheden for ntfsplus og ntfs3 er omtrent den samme. ntfs3-driveren forbliver i kernen og er inkluderet i den. lavet rettelser og mindre forbedringer.
- Tilføjet understøttelse af generering og verificering af integritetskontroldata T10 (deepwiki.com) på filsystemniveau i stedet for blokenhedsniveau, hvilket muliggør forbedret ydeevne af læseoperationer.
- I blokenhedsdriveren ublk, som tillader at specifik logik flyttes til brugerområdets processide, tilføjet understøttelse af I/O via delt hukommelse uden at kopiere data mellem buffere (nul-kopieringstilstand).
- Til selvkrypterende blokenheder SED-OPAL tilføjet ioctl til tilstandskontrol Single User og STACK_RESET-kommandoen er blevet implementeret.
- Btrfs har annonceret stabil understøttelse af ioctl-nedlukningsoperationen, som tillader filsystemet at gå i en tilstand, hvor der gøres et forsøg på at fuldføre allerede kørende operationer, men alle nye operationer blokeres.
- exfat implementerer muligheden for at reservere tomme områder ved at kalde fallocate().
- CIFS-filsystemet understøtter nu oprettelse af midlertidige filer med O_TMPFILE-flaget.
- I systemkald fsmount() Indstillingen FSMOUNT_NAMESPACE er blevet tilføjet, hvilket opretter et nyt navnerum for monteringspunkt til det monterede filsystem. Der er blevet tilføjet flag til systemkaldene clone3() og unshare() for at returnere et nyt navnerum for monteringspunkt, der kun indeholder en monteret, tom, nullfs-baseret filsystemstub og fs-dax-driveren med en filsystemgrænseflade til DAX-enheder (Direct Access).
- Til NFS-serveren tilføjet Beskyttelse mod brute-force-angreb på fildeskriptorer implementeres ved at certificere deskriptorer med en kryptografisk signatur. Denne beskyttelse aktiveres via monteringsindstillingen sign_fh.
- Tilføjet fs-dax-tegndriver, som leverer en grænseflade til interaktion med enheder DAX (kernel.org) (Direkte adgang), som understøtter omgåelse af sidens cache. Denne grænseflade er nødvendig for integration i filsystemets kerne. familiemedlemmer, placeret i RAM.
- I Ceph-filsystemet implementeret samling af input/output-målinger knyttet til underafsnit.
Hukommelse og systemtjenester
- Accepteret Den første række ændringer fjerner understøttelse af i486-processorer. Muligheder for at bygge kernen med understøttelse af 486DX-, 486SX- og AMD ELAN-processorer (CONFIG_M486, CONFIG_M486SX og CONFIG_MELAN) er blevet fjernet fra Kconfig, og kompileringsmuligheder for i486-systemer (-march=i486) er blevet fjernet fra Makefile. Den faktiske kode til understøttelse af i486-processorer findes stadig i kernen, men at bygge til sådanne systemer vil nu kræve programrettelser til makefilerne. Årsagerne til at fjerne understøttelse af i486-processorer skyldes ønsket om at befri kernen for kompleks kode, der emulerer nogle hardwareoperationer, såsom CX8 (sammenlign og udveksl 8 bytes) og TSC (CPU-cyklustælleren, der bruges i opgaveplanlæggeren).
- I amd-pstate-driveren, der bruges til strømstyring på systemer med AMD-processorer, implementeret Skifter dynamisk ydeevneindstillinger og ændrer strømstyringsadfærd afhængigt af, om enheden kører på en strømkilde eller batteri. Når den er tilsluttet en strømkilde, aktiveres ydeevnetilstanden nu, mens balance_performance-tilstanden aktiveres, når den kører på batteri.
- Mekanismen er aktiveret som standard Intel FRED (Fleksibel Return and Event Delivery), hvilket forbedrer effektiviteten og pålideligheden af lavniveau-hændelseslevering. Ydeevneforbedringer og latensreduktioner opnås ved at returnere hændelser ved hjælp af IRET-processorinstruktionen i stedet for at sende dem gennem Interrupt Descriptor Table (IDT). Forbedret pålidelighed opnås ved at adskille hændelsesmodtagelsesbehandling i kerne- og brugerkontekster, beskytte mod indlejret NMI-udførelse og lagre alle undtagelsesrelaterede CPU-registre i en udvidet stakramme.
- I perf-undersystemet tilføjet understøttelse af hukommelsesydelsesovervågningsenheder (PMU'er), der bruges i NVIDIA Tegra410 SoC.
- Futex-operationer på ARM-systemer er blevet accelereret ved at udnytte Arm 9.6 LSUI-instruktioner, som giver kernen adgang til brugerhukommelse uden først at deaktivere sikker tilstand. PAN (arm.com) (Privilegeret adgang aldrig).
- Understøttelse af instruktionssætarkitekturudvidelsen er blevet forbedret på ARM-baserede systemer. MPAM (Memory System Resource Partitioning and Monitoring) og tilføjede muligheden for at bruge det i brugerområdet til at administrere ressourcer gennem mekanismen resctrlMPAM mærker hver hukommelsesadgang med et partitions-ID (PARTID) og et overvågningsgruppe-ID (PMG). Ved hjælp af PARTID kan du begrænse ressourceforbruget, f.eks. hukommelsesbåndbredde eller cachestørrelse, for at forhindre en enkelt gruppe opgaver i at forbruge alle ressourcer. I forbindelse med overvågning kan kombinationen af PMG og PARTID bruges til at spore hukommelsesforbrug under specifikke arbejdsbelastninger.
- Tilføjet Mulighed for at bruge realtidstilstand (PREEMPT_RT) på 32-bit ARM-processorer. Tidligere blev PREEMPT_RT understøttet af arkitekturerne x86 og x86-64, ARM64, RISC-V og LoongArch.
- I systemkald klon3() nye flag tilføjet: CLONE_NNP — forbyde opnåelse af nye rettigheder i den oprettede proces; CLONE_AUTOREAP — automatisk afslutning af processen i stedet for at gøre den til en zombieproces, indtil den overordnede proces udfører funktionen wait(); CLONE_PIDFD_AUTOKILL — afslutning af den underordnede proces, hvis det pidfd-handle, der er tilknyttet den, lukkes (for eksempel når den overordnede proces afsluttes).
- For hvert kernemodul er der tilføjet en fil med navnet import_ns til mappen /sys/module, som indeholder en liste over importerede symbolnavnerum (symbolnavnerum).
- Det asynkrone I/O-system io_uring understøtter nu brugen af BPF-undersystemet til at oprette handlere. For eksempel kan hovedforsendelsesløkken erstattes med et BPF-program.
- I BPF-undersystemet moderniseret stakbrugsanalyse, hvilket betydeligt fremskyndede verifikationen af mange BPF-programmer af verifikatoren.
- For at optimere ydeevnen omskrevet hrtimer (højopløsningstimer) undersystem. Opgaveplanlæggeren kan nu bruge timere med høj opløsning uden at miste ydeevne i stedet for mindre præcise timere.
- Fortsat porteringsændringer fra Rust-for-grenenLinux, relateret til brugen af Rust-sproget som et andet sprog til udvikling af drivere og kernemoduler (Rust-understøttelse er ikke aktiv som standard og resulterer ikke i, at Rust inkluderes på listen over obligatoriske byggeafhængigheder for kernen). Op til version 1.85 (leveret i Debian 13) Øgede krav til Rust-versionen, der kræves for at bygge kernekomponenter. Tilføjet den eksperimentelle Kconfig-indstilling CONFIG_RUST_INLINE_HELPERS til indlejring af C-interpolationer i Rust-kode under kompilering (denne optimering forbedrede null-blokdriverens ydeevne med 2%). Tilføjet 'const_assert!'-makroen. Udvidede muligheder for sizes-, clk-, ptr-, sync- og error-modulerne.
- Ind i mekanismen SCHED_EXT, som tillader brug af BPF til at oprette CPU-planlæggere, tilføjet Indledende mulighed for at oprette underplanlæggere, hvilket giver hver c-gruppe mulighed for at have sin egen opgaveplanlægger.
- Optimeringen af swap-undersystemet er fortsat. Den gamle swap_map-struktur er blevet fjernet og erstattet med "Skift tabel"Ændringen forbedrede ydeevnen og reducerede hukommelsesforbruget i personsøgersystemet."
- Til delsystemet Damon (Data Access MONitor), som giver dig mulighed for at spore en process adgang til data i RAM (for eksempel kan du finde ud af, hvilke hukommelsesområder processen har tilgået, og hvilke hukommelsesområder der forblev ubrugte), tilføjet understøttelse af forskellige automatiske algoritmer tuning kvoter.
- I sporingsundersystemet implementeret Konceptet med eksterne ringbuffere, som muliggør hentning af sporingsdata fra virtuelle maskiner. Denne funktion bruges i KVM og nVHE at overføre sporingsdata fra gæstesystemet til værtssiden.
- Til delsystemet RV (kernel.org) (Runtime Verification), der er designet til at kontrollere den korrekte drift af meget pålidelige systemer, og der er tilføjet overvågningskomponenter.stall"at spore opgaver, der midlertidigt er sat på pause eller blokeret, og"deadline» for at analysere opgaveplanlæggerens opførsel.
Virtualisering og sikkerhed
- Som standard er PROC_MEM_FORCE_PTRACE-flaget indstillet, hvilket tillader omgåelse af adgangsrettigheder til at behandle hukommelse gennem en fil. /proc/PID/mem kun for processer, der bruger ptrace() systemkaldet til fejlfinding.
- Tilføjet nyt sæt kroge til LSM-moduler (Linux Sikkerhedsmodul), som forenkler implementeringen af politikker for stakbaserede filsystemer såsom overlayfs. LSM også tilføjet hook til at kontrollere adgang til Unix-sockets, hvilket involveret i Landlock LSM-modulet for at tildele adgangspolitikker til Unix-sockets.
- I det indbyggede kryptobibliotek lib/krypto, som leverer enklere og hurtigere funktioner end den traditionelle krypto-API, tilføjet Understøttelse af AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH og SM3-algoritmer er blevet tilføjet. dokumentation af lib/krypto.
- Moden er blevet implementeret pKVM (Beskyttet KVM) for streng isolation anonym hukommelse Brug af virtualiseringsudvidelser til AArch64-arkitekturen. I denne tilstand udelades gæstehukommelsessider fra værtssystemets virtuelle adressetabel.
- Der er tilføjet understøttelse af KVM-hypervisoren femte version ARM virtuel generisk afbrydelsescontroller v5 (VGICv5).
Netværks undersystem
- For Unix-sockets oprettet af socket()-funktionen, implementeret Understøttelse af udvidede filattributter (xattr) for brugere.* Applikationer omfatter angivelse af mærker via udvidede attributter på Unix-sockets, der bruges til Varlink IPC, hvilket gør det muligt at skelne dem fra det generelle IPC-miljø ved hjælp af BPF-programmer til inspektion og fejlfinding af IPC-operationer. I systemd-journald er udvidede attributter beregnet til at blive brugt til at definere logformatet for /dev/log-socket'en.
- Slettet understøttelse af UDP-Lite-protokollen (RFC 3828), som tillader levering af pakker med en forkert checksum, med forventning om, at for eksempel delvist beskadigede lyd- og videodata kan gendannes på codec-niveau. Protokollen er blevet fjernet, fordi ingen bruger den.
- Fjernet Muligheden for at bygge en IPv6-stak som et kernemodul, hvilket ikke blev brugt i praksis (IPv6 er enten indbygget i kernen eller helt deaktiveret), men kompliceret vedligeholdelse, fordi mange undersystemer er tvunget til at tilføje ubrugelige handlers, når man bygger IPv6 som et kernemodul (CONFIG_IPV6=m), hvis IPv6-modulet udlades.
Оборудование
- I AMDGPU-driveren inkluderet Ny skærmmotor (DC) til AMD HD 7000-serien af APU'er (Sea Islands, GCN 1.1).
- I Nouveau driver tilføjet Indledende understøttelse af NVIDIA GA100 GPU'er baseret på Ampere-mikroarkitekturen.
- Arbejdet med Xe DRM-driveren (Direct Rendering Manager) til GPU'er baseret på Intel Xe-arkitekturen, som bruges i Intel Arc-serien af grafikkort og integrerede grafikkort, fortsatte, startende med Tiger Lake-processorer. Understøttelse af grafikundersystemet i Intel Nova Lake-P-processorer er blevet tilføjet. Purgeable Buffer Objects er blevet implementeret.
- Vi har fortsat med at integrere Nova-driverkomponenter til NVIDIA GPU'er udstyret med GSP-firmware, der er blevet brugt siden NVIDIA GeForce RTX 2000-serien baseret på Turing-mikroarkitekturen. Driveren er skrevet i Rust. Indledende understøttelse af GPU'er baseret på Turing-mikroarkitekturen er blevet tilføjet.
- Tilføjet DRM-driver corebootdrm til grafikoutput via framebufferen i CoreBoot-baseret firmware.
- Tilføjet Understøttelse af følgende ASoC'er: AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP og WM8962. Forbedret understøttelse af USB-lydenheder: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu og Scarlett 18i20.
- Tilføjet Yogafan-driver til overvågning af blæserhastighed på bærbare computere af typen Lenovo Yoga, Legion og IdeaPad.
- Tilføjet Understøttelse af ARM-kort, 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.
- Slettet Understøttelse af AHCI SATA- og PCIe-controllere, der bruges i Baikal-T1 SoC, samt drivere til timer, hukommelse, physmap, bus, hwmon, dwc og bt1-rom. Årsagen til fjernelsen er manglende understøttelse og ufuldstændig integration af Baikal-platformkomponenterne i kernen, da produktionen i Rusland ophørte i november 2025.
- Fjernet 12 drivere til Ethernet-enheder med ISA- og PCMCIA-grænseflader, udgivet før 2002, for hvilke der ikke blev fundet brugere, der brugte dem i produktionssystemer. Delsystemet ISDN, protokolimplementeringer AX.25, CAIF og Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (amatørradio) drivere, import og logibm (busmouse). Årsagen til fjernelsen var manglen på aktive vedligeholdere midt i det stigende antal fejl identificeret af syzbot og AI-værktøjer. Ingen påtager sig opgaven med at rette dem, og hele byrden med at løse alvorlige problemer ligger på vedligeholderne af kernens centrale netværksundersystemer. I alt blev over 140 linjer kode fjernet.
Kilde: linux.org.ru
