Kernel-udgivelse Linux 7.1

Efter to måneders udvikling udgav Linus Torvalds kernen. Linux 7.1. Blandt de mest bemærkelsesværdige ændringer: ny ntfsplus-driver, første fase af ophør af i486 CPU-understøttelse, fjernelse af gamle Ethernet-adaptere, fjernelse af ISDN- og AX.25-protokoller, 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, ioctl-operations "shutdown" i Btrfs, dynamisk skift af performance-tilstand i amd-pstate-driveren, xattr-understøttelse af Unix-sockets.

Den nye version indeholder 17275 rettelser fra 2589 udviklere,
Patch-størrelsen er 57 MB (ændringerne påvirkede 13528 filer, tilføjede 751785 linjer kode og fjernede 405916 linjer). Den tidligere udgivelse indeholdt 15624 rettelser fra 2477 udviklere, og patch-størrelsen er 56 MB. Omkring 41% af alle ændringer i 7.1 er relateret til enhedsdrivere, cirka 12% af ændringerne er relateret til opdateringer til kode specifikt for hardwarearkitekturer, 14% er relateret til netværksstakken, 5% er relateret til filsystemer, og 3% er relateret til interne kerneundersystemer.

Vigtigste nye funktioner i kerne 7.1 (1, 2, 3):

  • Diskundersystem, I/O og filsystemer
    • En ny implementering af NTFS-filsystemet, ntfsplus, er blevet implementeret. Den er baseret på koden fra den klassiske ntfs-driver, som blev fjernet fra kernen. Den gamle driver er blevet redesignet, udvidet med muligheden for at skrive data og tilpasset til at understøtte moderne funktioner, såsom brugen af ​​hukommelsessidefolioer (folioer) i stedet for buffer_head-strukturen. Den nye driver implementerer lazy blockallokering, hvilket giver mulighed for høj skriveydelse og reduceret fragmentering. Iomap-biblioteket bruges til bufferede læse-/skriveoperationer, direkte I/O, extent mapping og sidelæse-/skriveoperationer. I 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 blevet opdateret med rettelser og mindre forbedringer.
    • Tilføjet understøttelse af generering og verificering af T10-integritetskontroldata på filsystemniveau i stedet for blokenhedsniveau, hvilket forbedrer ydeevnen af ​​læseoperationer.
    • ublk-blok-enhedsdriveren, som tillader flytning af specifik logik til brugerområdeprocessen, understøtter nu input/output via delt hukommelse uden at kopiere data mellem buffere (nul-kopieringstilstand).
    • For SED-OPAL selvkrypterende blokenheder er ioctl'er blevet tilføjet for at styre enkeltbrugertilstanden, og STACK_RESET-kommandoen er blevet implementeret.
    • Btrfs har annonceret stabil understøttelse af ioctl-operationen "shutdown", som tillader filsystemet at gå i en tilstand, hvor det forsøger at afslutte allerede kørende operationer, men blokerer alle nye operationer.
    • 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.
    • Systemkaldet fsmount() inkluderer nu FSMOUNT_NAMESPACE-indstillingen, som opretter et nyt navnerum for monteringspunkt til det monterede filsystem. Der er 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).
    • NFS-serveren har nu beskyttelse mod brute-force-angreb på fildeskriptorer, implementeret ved kryptografisk at signere deskriptorer. Denne beskyttelse aktiveres via monteringsindstillingen sign_fh.
    • Den symbolske driver fs-dax er blevet tilføjet, hvilket giver en grænseflade til interaktion med DAX (Direct Access)-enheder, der understøtter omgåelse af sidecachen. Denne grænseflade er nødvendig for at integrere famfs in-memory-filsystemet i kernen.
    • Ceph-filsystemet implementerer indsamling af I/O-målinger pr. volumen.
  • Hukommelse og systemtjenester
    • Den første runde af ændringer for at fjerne understøttelse af i486-processorer er blevet implementeret. 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. Årsagen til at fjerne understøttelse af i486-processorer er at befri kernen for kompleks kode, der emulerer visse hardwareoperationer, såsom CX8 (sammenlign og udveksl 8 bytes) og TSC (CPU-cyklustælleren, der bruges i opgaveplanlæggeren).
    • Driveren amd-pstate, der bruges til strømstyring på systemer med AMD-processorer, skifter nu dynamisk ydeevneindstillinger og modificerer strømstyringsadfærden afhængigt af, om systemet kører på batteristrøm eller en strømkilde. Når systemet er tilsluttet en strømkilde, aktiveres "ydeevne"-tilstanden nu, mens "balance_performance"-tilstanden aktiveres, når systemet kører på batteristrøm.
    • Intels FRED-mekanisme (Flexible Return and Event Delivery) er som standard aktiveret, hvilket forbedrer effektiviteten og pålideligheden af ​​lavniveau-hændelseslevering. Ydeevne og latenstid forbedres ved at returnere hændelser ved hjælp af IRET-processorinstruktionen i stedet for at sende dem gennem Interrupt Descriptor Table (IDT). Pålidelighed forbedres ved at adskille hændelsesmodtagelser i kerne- og brugerkontekster, beskytte mod indlejret NMI-udførelse og gemme alle undtagelsesrelaterede CPU-registre i en udvidet stakramme.
    • perf-undersystemet er blevet opdateret for at understøtte Performance Monitoring Unit (PMU)-hukommelsesovervågningsenheder, 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 PAN-beskyttelsestilstanden (Privileged Access Never).
    • På systemer med ARM-processorer er understøttelsen af ​​​​Memory System Resource Partitioning and Monitoring (MPAM) instruktionssætarkitekturudvidelsen blevet forbedret, med muligheden for at bruge den i brugerområdet til ressourcestyring via resctrl-mekanismen. MPAM tagger hver hukommelsesadgang med et partitions-id (PARTID) og et overvågningsgruppe-id (PMG). Ved hjælp af PARTID'er kan du begrænse ressourceforbruget, f.eks. hukommelsesbåndbredde eller cachestørrelse, for at forhindre en enkelt gruppe opgaver i at forbruger alle ressourcer. I forbindelse med overvågning kan kombinationen af ​​​​PMG og PARTID bruges til at spore hukommelsesressourceforbrug under specifikke arbejdsbelastninger.
    • Tilføjet understøttelse af 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.
    • Nye flag er blevet tilføjet til systemkaldet clone3(): CLONE_NNP — forhindrer den nyoprettede proces i at få nye rettigheder; CLONE_AUTOREAP — afslutter automatisk processen i stedet for at gøre den til en zombieproces, indtil den overordnede proces udfører wait()-funktionen;
      CLONE_PIDFD_AUTOKILL - afslutter en underproces, hvis den pidfd-handle, der er tilknyttet den, lukkes (for eksempel når overordneprocessen afsluttes).
    • For hvert kernemodul er der blevet tilføjet en import_ns-fil til mappen /sys/module, der indeholder en liste over importerede 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.
    • BPF-undersystemet har fået moderniseret sin stakbrugsanalyse, hvilket har fremskyndet verifikatorens kontrol af mange BPF-programmer betydeligt.
    • Undersystemet hrtimer (højopløsningstimer) er blevet omskrevet for at optimere ydeevnen. Opgaveplanlæggeren kan nu bruge timere med høj opløsning uden at gå på kompromis med ydeevnen, i stedet for mindre præcise timere.
    • Fortsat migrering af æ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 modulerne 'sizes', 'clk', 'ptr', 'sync' og 'error'.
    • SCHED_EXT-mekanismen, som tillader brug af BPF til at oprette CPU-planlæggere, er blevet suppleret med den indledende mulighed for at oprette indbyggede planlæggere (underplanlæggere), som tillader hver c-gruppe at bruge sin egen opgaveplanlægger.
    • Optimeringer af swap-undersystemet fortsatte. Den gamle swap_map-struktur blev fjernet og erstattet med "Swap Table"-mekanismen. Denne ændring forbedrede ydeevnen og reducerede hukommelsesforbruget i swap-undersystemet.
    • DAMON-undersystemet (Data Access MONitor), som giver dig mulighed for at overvåge en process adgang til data i RAM (for eksempel kan du finde ud af, hvilke hukommelsesområder en proces har tilgået, og hvilke hukommelsesområder der forblev ubrugte), er blevet suppleret med understøttelse af forskellige automatiske kvotejusteringsalgoritmer.
    • Sporingsundersystemet implementerer konceptet med eksterne ringbuffere, som gør det muligt at hente sporingsdata fra virtuel maskineFunktionen er aktiveret i hypervisorer. KVM og nVHE til transmission af sporingsdata fra gæsten til værtssiden.
    • RV-undersystemet (Runtime Verification), der er designet til at kontrollere den korrekte drift af meget pålidelige systemer, er blevet suppleret med "stall"-overvågningskomponenter til sporing af opgaver, hvis udførelse er midlertidigt suspenderet eller blokeret, og "deadline" til analyse af opgaveplanlæggerens adfærd.
  • Virtualisering og sikkerhed
    • Som standard er PROC_MEM_FORCE_PTRACE-flaget sat, hvilket kun tillader omgåelse af adgangsrettigheder til proceshukommelse via /proc/PID/mem-filen for processer, der bruger systemkaldet ptrace() til fejlfinding.
    • Tilføjet et nyt sæt hooks til LSM-moduler (Linux Sikkerhedsmodul), som forenkler implementeringen af ​​politikker for stakbaserede filsystemer såsom overlayfs. LSM tilføjede også en hook til at administrere adgang til Unix-sockets, som bruges i Landlock LSM-modulet til at tildele adgangspolitikker til Unix-sockets.
    • Det indbyggede kryptobibliotek lib/crypto, som leverer enklere og hurtigere funktioner end den traditionelle krypto-API, er blevet opdateret til at understøtte algoritmerne AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH og SM3. Dokumentation til lib/crypto er blevet tilføjet.
    • Vi har implementeret pKVM-tilstand (Protected KVM) til streng anonym hukommelsesisolering ved hjælp af virtualiseringsudvidelser til AArch64-arkitekturen. I denne tilstand er gæstehukommelsessider udelukket fra værtssystemets virtuelle adressetabel.
    • KVM-hypervisoren understøtter nu den femte version af ARM Virtual Generic Interrupt Controller (VGICv5).
  • Netværks undersystem
    • Understøttelse af udvidede filattributter (xattr) "user.*" er blevet implementeret for Unix-sockets oprettet af socket()-funktionen. Et anvendelsesområde er mærkning af Unix-sockets, der bruges til Varlink IPC, via udvidede attributter, så de kan skelnes fra andre til IPC-inspektion og fejlfinding ved hjælp af BPF-programmer. I systemd-journald er udvidede attributter beregnet til at blive brugt til at definere logformatet for /dev/log-socket'en.
    • Understøttelse af UDP-Lite-protokollen (RFC 3828), som tillader levering af pakker med ugyldige checksummer i håb om, at f.eks. delvist beskadigede lyd- og videodata kan gendannes på codec-niveau, er blevet fjernet. Denne protokol er blevet fjernet, fordi ingen bruger den.
    • Muligheden for at bygge IPv6-stakken som et kernemodul er blevet fjernet. Dette blev ikke brugt i praksis (IPv6 er enten indbygget i kernen eller helt deaktiveret), men det komplicerede vedligeholdelsen, 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.
  • Оборудование
    • AMDGPU-driveren inkluderer en ny skærmmotor (DC) til AMD HD 7000-serien af ​​APU'er (Sea Islands, GCN 1.1).
    • Nouveau-driveren tilføjer indledende understøttelse af NVIDIA GA100 GPU'en 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øjede corebootdrm DRM-driveren til output af grafik 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, 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.
    • Understøttelse af AHCI SATA- og PCIe-controllere, der bruges i Baikal-T1 SoC, samt timer-, hukommelses-, physmap-, bus-, hwmon-, dwc- og bt1-rom-drivere, er blevet fjernet. Å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.
    • Fjernede 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. Også fjernet fra kernen.
      ISDN-undersystemet, implementeringer af AX.25-, CAIF- og Bluetooth CMTP-protokollerne (Common ISDN Application Programming Interface Message Transport Protocol), yellowfin-driverne (Yellowfin Gigabit-NIC), hamachi-driverne (Hamachi GNIC-II), hamradio-driverne (amatørradio), inport-driverne (logibm) blev fjernet. Årsagen til fjernelsen var manglen på aktive vedligeholdere midt i det stigende antal fejl identificeret af syzbot- og AI-værktøjer, som ingen var villige til at rette, hvilket overlod hele byrden med at løse alvorlige problemer til vedligeholderne af kernens centrale netværksundersystemer. I alt blev over 140 linjer kode fjernet.

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster