Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds version 7.1 av Linux-kÀrnan. Bland de mest anmÀrkningsvÀrda Àndringarna finns: en ny ntfsplus-drivrutin, det första steget i att avbryta stödet för CPU i486, borttagning av gamla Ethernet-adapttrar, borttagning av ISDN- och AX.25-protokoll, som standard aktiverad Intel FRED-mekanism, stöd för BPF-hanterare i io_uring, optimering av bytesubsystemet, stöd för delplanerare i sched_ext, zero-copy I/O i ublk-drivrutinen, ioctl-operationen "shutdown" i Btrfs, dynamisk vÀxling av prestandalÀget i amd-pstate-drivrutinen, stöd för xattr för Unix-socklar.
I den nya versionen har 17275 korrigeringar gjorts av 2589 utvecklare,
patchstorleken Àr 57 MB (Àndringarna berörde 13528 filer, 751785 kodrader lades till och 405916 rader togs bort). I det föregÄende slÀppet gjordes 15624 korrigeringar av 2477 utvecklare, patchstorleken var 56 MB. UngefÀr 41% av alla förÀndringar som infördes i 7.1 Àr relaterade till enhetsdrivrutiner, cirka 12% av förÀndringarna har att göra med uppdatering av kod specifik för hÄrdvaruarkitekturer, 14% rör nÀtverksstacken, 5% rör filsystem och 3% rör interna kÀrnsystem.
De viktigaste nyheterna i kÀrnan 7.1 (1, 2, 3):
- Disksubsystem, in- och utmatning och filsystem
- En ny implementation av NTFS-filsystemet â ntfsplus, baserad pĂ„ kod som tagits bort frĂ„n den klassiska ntfs-drivrutinen. Den gamla drivrutinen har omarbetats, utvidgats med skrivmöjlighet och anpassats för att stödja moderna funktioner, sĂ„som anvĂ€ndning av minnesblad (folios) istĂ€llet för buffer_head-strukturer. I den nya drivrutinen har fördröjd blockallokering implementerats, vilket har möjliggjort hög prestanda vid skrivoperationer och minskad fragmentering. För buffrade skriv-/lĂ€sningsoperationer, direkt I/O, mappning av extenter och sidlĂ€sa-/skrivoperationer anvĂ€nds iomap-biblioteket. I iozone-tester var ntfsplus-drivrutinen 3-5% snabbare Ă€n ntfs3 i ensamband och 35-110% snabbare vid anvĂ€ndning av 4 trĂ„dar. LĂ€sningen av ntfsplus och ntfs3 Ă€r ungefĂ€r pĂ„ samma nivĂ„. ntfs3-drivrutinen kvarstĂ„r i kĂ€rnan och har fĂ„tt korrigeringar och smĂ„ förbĂ€ttringar.
- Stöd för generering och verifiering av integritetskontrolldata T10 har lagts till pÄ filsystemsnivÄ snarare Àn blockenhet, vilket ger en ökning av lÀsprestanda.
- I blockenhetsdrivrutinen ublk har stöd för in- och utdata via delad minne utan kopiering av data mellan buffrar (zero-copy-lÀget) lagts till, vilket möjliggör specifik logik pÄ anvÀndarprocessens sida.
- För sjÀlv-krypterande blockenheter SED-OPAL har ioctl för att hantera lÀget Single User lagts till, och kommandot STACK_RESET har implementerats.
- I Btrfs har stöd för ioctl-operationen "shutdown" deklarerats stabil, vilket möjliggör att sÀtta filsystemet i ett tillstÄnd dÀr aktiva operationer försöker avslutas, men alla nya operationer blockeras.
- I exfat har möjligheten att reservera lediga omrÄden genom att anropa fallocate() implementerats.
- I filsystemet CIFS har stöd för att skapa temporÀra filer med flaggan O_TMPFILE lagts till.
- I systemanropet fsmount() har alternativet FSMOUNT_NAMESPACE lagts till, vilket skapar ett nytt namnrymd för monteringspunkter för det monterade filsystemet. Flaggor har lagts till i systemanropen clone3() och unshare() för att ÄtervÀnda till en ny namnrymd för monteringspunkter som endast innehÄller monterade tomma filsystemsskydd baserade pÄ nullfs, fs-dax-drivrutinen med filsystemgrÀnssnitt till DAX-enheter (Direct Access).
- I NFS-servern har skydd mot attacker med gissning av filbeskrivare lagts till, som implementeras genom att signera beskrivarna med kryptografisk signatur. Skyddet slÄs pÄ via monteringsalternativet sign_fh.
- En symbolisk drivrutin för fs-dax har lagts till, vilket ger ett grÀnssnitt för interaktion med DAX-enheter (Direct Access) som stöder arbete utan sidcache. Detta grÀnssnitt Àr nödvÀndigt för integration i kÀrnfilsystemet famfs, som placeras i RAM.
- I filsystemet Ceph har insamling av I/O-metrik kopplad till underpartitioner implementerats.
- Minne och systemtjÀnster
- Den första serien av Àndringar har antagits för att avsluta stödet för i486-processorer. Alternativen för att bygga kÀrnan med stöd för 486DX, 486SX och AMD ELAN (CONFIG_M486, CONFIG_M486SX och CONFIG_MELAN) har tagits bort frÄn Kconfig, och kompilationsalternativen för i486-system (-march=i486) har uteslutits frÄn Makefile. Koden för faktisk support pÄ i486-processorer finns dock kvar i kÀrnan, men att bygga för sÄdana system krÀver nu att patchar till byggfiler anvÀnds. SkÀlen för att ta bort stödet för i486-processorer beror pÄ en önskan att avlÀgsna komplex kod som emulerar vissa hÄrdvaruoperationer, sÄsom CX8 (jÀmför och byt 8 byte) och TSC (CPU-cykeltÀknare som anvÀnds i uppgiftsschemalÀggaren).
- I amd-pstate-drivrutinen, som anvÀnds för att hantera strömförbrukningen pÄ system med AMD-processorer, har dynamisk vÀxling av prestandainstÀllningar och Àndringar i strömhanteringsbeteendet implementerats beroende pÄ om systemet drivs med nÀtaggregat eller batteri. Vid stationÀr anslutning aktiveras nu lÀget "performance", medan "balance_performance" aktiveras nÀr systemet körs pÄ batteri.
- Intel FRED (Flexible Return and Event Delivery) mekanismen Àr nu aktiverad som standard, vilket möjliggör ökad effektivitet och pÄlitlighet vid leverans av information om lÄg-nivÄ hÀndelser. PrestandaförbÀttringar och minskade fördröjningar uppnÄs genom att ÄtervÀnda hÀndelser med processorinstruktionen IRET istÀllet för att överföra hÀndelser via IDT (Interrupt Descriptor Table). PÄlitligheten ökas genom att separat hantera ankomsten av hÀndelser i bÄde kÀrn- och anvÀndarkontext, skydd mot inbÀddad exekvering av NMI, samt bevarande av alla CPU-register relaterade till undantag i den utökade stackramen.
- Under perf-subsystemet har stöd för minnesprestandamonitoreringsenheter (PMU - Performance Monitoring Unit) lagts till, som anvÀnds i NVIDIA Tegra410 SoC.
- Exekveringen av futex-operationer pÄ ARM-system har accelererats, tack vare anvÀndningen av Arm 9.6 LSUI-instruktioner, vilket gör att kÀrnan kan komma Ät minne i anvÀndarutrymmet utan att först stÀnga av skyddsmoden PAN (Privileged Access Never).
- PÄ system med ARM-processorer har stödet för tillÀgg av arkitekturen för MPAM (Memory System Resource Partitioning and Monitoring) förbÀttrats och möjligheten till anvÀndning i anvÀndarutrymmet för resurskontroll via mekanismen resctrl har lagts till. MPAM tillhandahÄller mÀrkning av varje minnesÄtkomst med en sektionsidentifierare (PARTID, Partition ID) och en övervakningsgruppsidentifierare (PMG, Monitoring Group ID). I förhÄllande till PARTID kan resursförbrukning som minnesbandbredd eller cache-storlek begrÀnsas, sÄ att en grupp uppgifter inte tar alla resurser. I övervakningskontext kan kombinationen av PMG och PARTID anvÀndas för att spÄra minnesresursförbrukning under vissa typer av belastning.
- Möjligheten att anvÀnda realtidslÀge (PREEMPT_RT) pÄ 32-bitars ARM-processorer har lagts till. Tidigare var stöd för PREEMPT_RT tillgÀngligt för x86 och x86-64, ARM64, RISC-V och LoongArch-arkitekturer.
- Nya flaggor har lagts till i systemanropet clone3(): CLONE_NNP â förbud mot att fĂ„ nya privilegier i den skapade processen; CLONE_AUTOREAP â automatisk avslutning av processen istĂ€llet för att göra den till en zombieprocess tills förĂ€ldraprocessen anropar wait();
CLONE_PIDFD_AUTOKILL â avslutning av barnprocessen om den relaterade pidfd-handtaget stĂ€ngs (till exempel vid avslutning av förĂ€ldraprocessen). - För varje kĂ€rnmodul har en fil import_ns lagts till i katalogen /sys/module, som innehĂ„ller en lista över importerade symbolnamnsrymder.
- I systemet för asynkron I/O io_uring har stöd för att anvÀnda BPF-subsystemet för att skapa hanterare lagts till. Till exempel kan den primÀra schemalÀggningsslingan ersÀttas med ett BPF-program.
- I BPF-subsystemet har analysen av stackanvÀndning moderniserats, vilket avsevÀrt har snabbat upp verifieringen av mÄnga BPF-program.
- För att optimera prestanda har BPF-subsystemet hrtimer (high resolution timer) skrivits om. SchemalÀggaren kan nu anvÀnda timers med hög precision utan prestandaförlust istÀllet för mindre exakta timers.
- Ăverföringen av förĂ€ndringar frĂ„n Rust-for-Linux-grenen fortsĂ€tter, relaterat till anvĂ€ndningen av Rust som ett andra sprĂ„k för utveckling av drivrutiner och kĂ€rnmoduler (stöd för Rust Ă€r inte aktiverat som standard och leder inte till att Rust inkluderas som ett obligatoriskt byggberoende för kĂ€rnan). Fram till version 1.85 (levereras i Debian 13) har kraven pĂ„ versionen av Rust som behövs för att bygga kĂ€rnkomponenter ökat. En experimentell Kconfig-alternativ CONFIG_RUST_INLINE_HELPERS har lagts till för att inbĂ€dda C-hjĂ€lpverktyg i Rust-kod under kompileringen (optimeringen har ökat prestandan för den blockdrivande null-drivaren med 2%). Makrot 'const_assert!' har lagts till. Funktionerna för modulerna 'sizes', 'clk', 'ptr', 'sync', 'error' har utvidgats.
- I SCHED_EXT-mekanismen, som möjliggör anvÀndning av BPF för att skapa CPU-schemalÀggare, har den första möjligheten att skapa inbÀddade schemalÀggare (sub-scheduler) lagts till, genom vilka varje cgroup kan anvÀnda sin egen uppgiftsschemalÀggare.
- Optimeringen av swap-underdelningen har fortsatt. Den gamla strukturen swap_map har tagits bort och ersatts med mekanismen 'Swap Table'. Denna förÀndring har förbÀttrat prestandan och minskat minnesanvÀndningen i swap-underdelningen.
- I DAMON-systemet (Data Access MONitor), som möjliggör övervakning av processers Ätkomst till data i arbetsminnet (till exempel kan man ta reda pÄ vilka minnesomrÄden en process har Ätkomst till och vilka minnesomrÄden som förblir outnyttjade), har stödet för olika algoritmer för automatisk justering av kvoter lagts till.
- I spÄrningssystemet har konceptet för externa ringbuffertar implementerats, vilket gör det möjligt att fÄ spÄrningsdata frÄn virtuella maskiner. Möjligheten har aktiverats i hypervisorer KVM och nVHE för att överföra spÄrningsdata frÄn gÀstsystemet till vÀrdsidan.
- I RV-systemet (Runtime Verification), som Àr avsett för att verifiera korrektheten av högt tillförlitliga system, har komponenter för övervakning 'stall' lagts till för att spÄra uppgifter vars utförande tillfÀlligt har avbrutits eller blockerats, samt 'deadline' för att analysera schemalÀggarens beteende.
- Virtualisering och sÀkerhet
- Som standard har flaggan PROC_MEM_FORCE_PTRACE stÀllts in, vilket tillÄter att omgÄ minnesbehörigheterna för en process genom filen /proc/PID/mem endast för processer som anvÀnder systemanropet ptrace() för felsökning.
- En ny uppsÀttning hookar har lagts till för LSM-moduler (Linux Security Module), vilket förenklar implementeringen av policyer för staplade filsystem, sÄsom overlayfs. LSM har ocksÄ lagt till en hook för att hantera Ätkomst till Unix-sockets, som anvÀnds i LSM-modulen Landlock för att tilldela Ätkomstpolicyer till Unix-sockets.
- I den inbyggda kryptobiblioteket lib/crypto, som erbjuder enklare och snabbare funktioner Àn det traditionella crypto API, har stöd för algoritmerna AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH och SM3 lagts till. Dokumentation för lib/crypto har ocksÄ lagts till.
- Funktionen pKVM (Protected KVM) har implementerats för strikt isolering av anonym minne med hjÀlp av virtualiseringstillÀgg för AArch64-arkitekturen. I det hÀr lÀget undantas gÀstminnessidor frÄn den virtuella adressens tabell i vÀrdsystemet.
- Stöd för den femte versionen av ARM:s virtuella avbrottskontroller (VGICv5 â ARM Virtual Generic Interrupt Controller v5) har lagts till i KVM-hypervisorn.
- NĂ€tverkssystemet
- För unix-sockets, som skapas av funktionen socket(), har stöd för utökade filattribut (xattr) "user.*" implementerats. TillÀmpningar inkluderar att sÀtta etiketter via utökade attribut till Unix-sockets som anvÀnds för IPC Varlink, för att sÀrskilja dem för inspektion och avbuggning av IPC:s funktioner med BPF-program. I systemd-journald Àr de utökade attributen tÀnkta att anvÀndas för att definiera loggformatet kopplat till socketen /dev/log.
- Stödet för UDP-Lite-protokollet (RFC 3828), som möjliggör leverans av paket med felaktig kontrollsumma med förvÀntan pÄ att exempelvis delvis skadade ljud- och videodata kan ÄterstÀllas pÄ codec-nivÄ, har tagits bort. Protokollet togs bort eftersom ingen anvÀnder det.
- Möjligheten att bygga IPv6-stacken som en kÀrnmodul har tagits bort, eftersom den inte anvÀndes i praktiken (IPv6 antingen byggs in i kÀrnan eller stÀngs helt av), men komplicerade underhÄllet eftersom mÄnga undersystem tvingades lÀgga till onödiga hanterare i hÀndelse av att IPv6-modulen laddades ur.
- Utrustning
- En ny displaymotor (DC) för AMD:s APU-serie HD 7000 (Sea Islands, GCN 1.1) har lagts till i AMDGPU-drivrutinen.
- I Nouveau-drivrutinen har inledande stöd för NVIDIA GA100 GPU baserad pÄ Ampere mikroarkitektur lagts till.
- Arbetet med drm-drivrutinen (Direct Rendering Manager) Xe för GPU:er baserade pÄ Intel Xe-arkitekturen har fortsatt, vilken anvÀnds i Intel Arc-grafikkort och integrerad grafik, frÄn och med Tiger Lake-processorerna. Stöd för grafiksystemet i Intel Nova Lake-P-processorer har lagts till. Rensbara buffertobjekt (Purgeable Buffer Objects) har implementerats.
- Fortsatt integration av komponenterna i Nova-drivrutinen för NVIDIA GPU med GSP-firmware, som anvÀnds frÄn NVIDIA GeForce RTX 2000-serien baserad pÄ Turing-mikroarkitektur. Drivrutinen Àr skriven i Rust. Inledande stöd för GPU baserade pÄ Turing-mikroarkitektur har lagts till.
- DRM-drivrutinen corebootdrm har lagts till för att visa grafik via framebuffer frÄn CoreBoot-baserade firmware.
- Stöd för ljudenheter ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP och WM8962 har lagts till. Stödet för ljudenheter med USB-grÀnssnitt har förbÀttrats: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
Stöd för ljudenheter ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP och WM8962 har lagts till. Stödet för ljudenheter med USB-grÀnssnitt har förbÀttrats: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20. - Drivern yogafan har lagts till för att övervaka hastigheten pÄ flÀkten i Lenovo Yoga, Legion och IdeaPad bÀrbara datorer.
- Stöd för ARM-plattformar, SoC och enheter har lagts till: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 och ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Stödet för de kontrollerade AHCI SATA och PCIe i SoC Baikal-T1 har avlÀgsnats, liksom drivrutiner för timer, minne, physmap, buss, hwmon, dwc och bt1-rom. Orsaken till detta avlÀgsnande anges vara avsaknaden av fortsatt support och ofullstÀndig integration av Baikal-plattformens komponenter i kÀrnan, vars produktion i Ryssland stoppades i november 2025.
- 12 drivrutiner för Ethernet-enheter med ISA och PCMCIA-grÀnssnitt, som tillverkades före 2002, har avlÀgsnats, dÄ ingen anvÀndare Äterfunnits som anvÀnde dem i aktiva system. Dessutom har följande avlÀgsnats frÄn kÀrnan:
ISDN-understöd, implementationerna av protokollen AX.25, CAIF och Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), drivrutinerna yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport och logibm (busmouse). Orsaken till avlÀgsnandet Àr avsaknaden av aktiva underhÄllare mitt i det ökande antalet felidentifieringar genom syzbot och AI-verktyg, vilka ingen tar pÄ sig att ÄtgÀrda, vilket resulterar i att hela belastningen av att ÄtgÀrda allvarliga problem vilar pÄ dem som underhÄller kÀrnans primÀra nÀtverksundersystem. Totalt har mer Àn 140 000 rader kod tagits bort.
KĂ€lla: opennet.ru
