
Po dvoch mesiacoch vývoja Linus Torvalds predstavil uvoľnenie jadra Linux 7.1. Medzi najvýznamnejšie zmeny patrí: nový ovládač ntfsplus, prvá fáza ukončenia podpory CPU i486, odstránenie starých Ethernet adaptérů, odstránenie protokolov ISDN a AX.25, predvolené zapnutie mechanizmu Intel FRED, podpora BPF spracovateľov v io_uring, optimalizácia subsystému swapovania, podpora subplánovačov v sched_ext, vstup/výstup v režime zero-copy v ovládači ublk, ioctl operácia shutdown v Btrfs, dynamické prepínanie režimu výkonu v ovládači amd-pstate, podpora xattr pre Unix sokety.
Do novej verzie bolo prijatých 17275 opráv od 2589 vývojárov, veľkosť patchu je 57 MB (zmeny sa dotkli 13528 súborov, pridalo sa 751785 riadkov kódu, odstránilo sa 405916 riadkov). V predchádzajúcej verzii bolo 15624 opráv od 2477 vývojárov, veľkosť patchu je 56 MB. Približne 41% všetkých zmien v 7.1 súvisí s ovládačmi zariadení, približne 12% zmien sa týka aktualizácie kódu špecifického pre hardvérové architektúry, 14% súvisí so sieťovým stackom, 5% s filesystémami a 3% s vnútornými subsystémami jadra.
Hlavné novinky v jadre 7.1 (kernelnewbies.org, lwn.net, opennet):
Diskový subsystém, I/O a súborové systémy
- Do balíka bola prijatá nová implementácia súborového systému NTFS — ntfsplus, založeného na kóde odstráneného z jadra klasického ovládača ntfs. Starý ovládač bol prerobený, rozšírený o možnosť zápisu a prispôsobený na podporu moderných funkcií, ako je použitie folio stránok pamäte (folios) namiesto štruktúry buffer_head. V novom ovládači je implementované odložené prideľovanie blokov, čo umožňuje dosiahnuť vysoký výkon pri operáciách zápisu a znižuje fragmentáciu. Pre vyrovnané operácie zápisu/čítania, priamy vstup/výstup, mapovanie extents a operácie stránkovania je použitá knižnica iomap. V testoch iozone sa ovládač ntfsplus ukázal byť o 3-5% rýchlejší ako ntfs3 pri zápise v jednovláknovom režime a o 35-110% pri použití 4 vlákien. Rýchlosť čítania ntfsplus a ntfs3 je približne na rovnakej úrovni. Ovládač ntfs3 zostáva súčasťou jadra a doň boli pridané opravy a drobné vylepšenia.
- Pridaná podpora generovania a verifikácie dát integrity T10 (deepwiki.com) na úrovni súborového systému, nie blokového zariadenia, čo umožňuje zvýšiť výkon operácií čítania.
- V ovládači blokových zariadení ublk, ktorý umožňuje preniesť špecifickú logiku na stranu procesu v užívateľskom priestore, bola pridaná podpora vstupu/výstupu cez zdieľanú pamäť bez kopírovania dát medzi buframi (režim zero-copy).
- Pre samošifrujúce blokové zariadenia SED-OPAL stavebné bloky pre vetvu dogfood, a do platformy Fuchsia ioctl na riadenie režimu Jednotlivý používateľ a bola implementovaná príkaz STACK_RESET.
- V Btrfs bola vyhlásená stabilná podpora ioctl operácie shutdown, ktorá umožňuje prehodiť FS do stavu, v ktorom sa pokúša ukončiť vykonávanie už spustených operácií, ale blokuje všetky nové operácie.
- V exfat bola implementovaná možnosť rezervácie prázdnych oblastí cez volanie fallocate().
- Vo FS CIFS bola pridaná podpora pre vytváranie dočasných súborov s praporkom O_TMPFILE.
- V systémovom volaní fsmount() bola pridaná možnosť FSMOUNT_NAMESPACE, ktorá vytvára nový priestor názvov pre montované súborové systémy. Do systémových volaní clone3() a unshare() boli pridané praporky na vrátenie nového priestoru názvov montovacích bodov, ktorý obsahuje iba pripojenú prázdnu FS záložku založenú na nullfs, ovládač fs-dax s FS rozhraním pre zariadenia DAX (Direct Access).
- V NFS serveri bola pridaná ochrana pred útokmi na získanie súborových deskriptorov, implementovaná prostredníctvom potvrdenia deskriptorov kryptografickým podpisom. Ochrana je aktivovaná cez montovaciu možnosť sign_fh.
- Pridané symbolický ovládač fs-dax, ktorý poskytuje rozhranie na interakciu so zariadeniami DAX (kernel.org) (Direct Access), podporujúcimi prácu mimo stránkového cache. Uvedené rozhranie je potrebné na integráciu do jadra súborového systému famfs, umiestneného v operačnej pamäti.
- V súborovom systéme Ceph implementovaný zhromažďovanie metrík o vstupe/výstupu viazaných na podúseky.
Pamäť a systémové služby
- Bola prijatá prvá séria zmien na ukončenie podpory procesorov i486. Z Kconfig boli odstránené možnosti pre zostavenie jadra s podporou procesorov 486DX, 486SX a AMD ELAN (CONFIG_M486, CONFIG_M486SX a CONFIG_MELAN), a z Makefile boli vylúčené možnosti kompilácie pre systémy i486 (-march=i486). Kód na skutočnú podporu práce na procesoroch i486 zatiaľ zostáva v jadre, ale zostavenie pre takéto systémy teraz vyžaduje použitie patchov na zostavovacie súbory. Dôvody na odstránenie podpory pre procesory i486 sú spojené s túžbou zbaviť jadro zložitých kódov, ktoré emulujú niektoré hardvérové operácie, ako je CX8 (porovnať a vymeniť 8 bajtov) a TSC (čítač cyklov CPU, používaný v plánovači úloh).
- V ovládači amd-pstate, ktorý sa používa na správu spotreby energie na systémoch s procesormi AMD, realizované sa dynamicky prepínajú nastavenia výkonu a mení sa správanie správy energie v závislosti od prevádzky na napájanie zo siete alebo na batériu. Pri pripojení k sieti sa teraz aktivuje režim výkonu, zatiaľ čo pri prevádzke na batériu sa aktivuje balance_performance.
- Predvolený je zapnutý mechanizmus Intel FRED (Flexible Return and Event Delivery), ktorý zvyšuje efektivitu a spoľahlivosť doručovania informácií o nízkoúrovňových udalostiach. Zlepšenie výkonu a zníženie oneskorenia sa dosahuje vďaka vráteniu udalostí pomocou inštrukcie procesora IRET namiesto prenosu udalostí prostredníctvom tabuľky IDT (Interrupt Descriptor Table). Zvýšenie spoľahlivosti sa dosahuje vďaka oddelenej správe príchodu udalosti v kontexte jadra a v kontexte používateľa, ochrane pred vnoreným vykonávaním NMI a zachovaniu všetkých registrátorov CPU súvisiacich s výnimkou v rozšírenom rámci zásobníka.
- Do subsystému perf bola pridaná sa pridala podpora blokov monitorovania výkonu pamäte (PMU - Performance Monitoring Unit), ktoré sa používajú v SoC NVIDIA Tegra410.
- Vykonávanie operácií futex na systémoch ARM sa urýchlilo vďaka využitiu inštrukcií Arm 9.6 LSUI, ktoré umožňujú jadru pristupovať k pamäti používateľského priestoru bez predbežného vypnutia režimu ochrany. PAN (arm.com) (Privileged Access Never).
- Na systémoch s procesormi ARM sa zlepšila podpora rozšírenia architektúry súboru inštrukcií MPAM (Memory System Resource Partitioning and Monitoring) a pridala sa možnosť jeho využitia v používateľskom priestore na správu zdrojov prostredníctvom mechanizmu resctrl. MPAM zabezpečuje označenie každého prístupu do pamäte identifikátorom sekcie (PARTID, Partition ID) a identifikátorom monitorovacej skupiny (PMG, Monitoring Group ID). V súvislosti s PARTID je možné obmedziť spotrebu zdrojov, ako je priepustnosť pamäte alebo veľkosť vyrovnávacej pamäte, aby nejaká skupina úloh nezabrala všetky zdroje. V kontexte monitorovania sa kombinácia PMG a PARTID môže použiť na sledovanie spotreby pamäťových zdrojov pri určitých typoch záťaže.
- Pridaná možnosť využitia režimu reálneho času (PREEMPT_RT) na 32-bitových procesoroch ARM. Predtým bola podpora PREEMPT_RT zabezpečená pre architektúry x86 a x86-64, ARM64, RISC-V a LoongArch.
- V systémovom volaní clone3() pridané nové značky: CLONE_NNP — zákaz získavania nových privilégií v vytvorenom procese; CLONE_AUTOREAP — automatické ukončenie procesu namiesto jeho premenenia na zombie proces až do vykonania funkcie wait() rodičovským procesom; CLONE_PIDFD_AUTOKILL — ukončenie podprocesu v prípade zatvorenia súvisiaceho deskriptora pidfd (napríklad pri ukončení rodičovského procesu).
- Pre každý modul jadra v adresári /sys/module bol pridaný súbor import_ns, ktorý obsahuje zoznam importovaných názvových priestorov symbolov (názvový priestor symbolov).
- Podpora využívania subsystému BPF na vytváranie obslužných programov bola pridaná do systému asynchrónneho vstupu/výstupu io_uring. Napríklad je možné nahradiť hlavný cyklus plánovania BPF programom.
- V subsystéme BPF bol modernizovaný analýza využívania zásobníka, čo významne urýchlilo overovanie mnohých programov BPF.
- S cieľom optimalizovať výkon prepisovaná subsystema hrtimer (časovač s vysokým rozlíšením). Plánovač úloh môže teraz využívať časovače s vysokým rozlíšením bez straty výkonu namiesto menej presných časovačov.
- Pokračoval prenos zmien z vetvy Rust-for-Linux, súvisiacich s použitím jazyka Rust ako druhého jazyka na vývoj ovládačov a modulov jadra (podpora Rust nie je predvolene aktívna a nezahŕňa Rust medzi povinné závislosti pri zostavovaní jadra). Po verzii 1.85 (dodávané v Debian 13) sa zvýšili požiadavky na verziu Rust potrebnú na zostavenie komponentov jadra. Pridaná experimentálna Kconfig možnosť CONFIG_RUST_INLINE_HELPERS na vkladanie C prekrývačov do Rust kódu počas kompilácie (optimalizácia urýchlila prácu blokového ovládača null o 2%). Pridaný makro ‘const_assert!’. Rozšírené možnosti modulov sizes, clk, ptr, sync, error.
- V mechanizme SCHED_EXT, umožňujúci využívať BPF na vytváranie plánovačov CPU, bola pridaná počiatočná možnosť vytvorenia vnorených plánovačov (sub-scheduler), pomocou ktorých môže mať každá cgroup vlastný plánovač úloh.
- Pokračovalo sa v optimalizácii subsystému swapovania. Staršia štruktúra swap_map bola nahradená mechanizmom „Swap Table“. Táto zmena umožnila zvýšiť výkon a znížiť spotrebu pamäte v subsystéme swapovania.
- V subsystéme DAMON (Data Access MONitor), ktorý umožňuje sledovať prístup procesu k údajom v operačnej pamäti (napríklad, je možné zistiť, ku ktorým oblastiam pamäte sa proces dostal a ktoré oblasti pamäte zostali nevyužité), bola pridaná podpora rôznych algoritmov automatického ladenia kvót.
- V subsystéme sledovania bola implementovaná koncept vonkajších kruhových búferov, ktorý umožňuje získavať údaje sledovania z virtuálnych strojov. Možnosť je implementovaná v hypervízoroch KVM a nVHE na prenos údajov sledovania z hosťovského systému na stranu hostiteľa.
- V subsystéme RV (kernel.org) (Runtime Verification), určenú na overenie korektnosti fungovania vysoko spoľahlivých systémov, boli pridané komponenty monitorovania „stall“ na sledovanie úloh, ktorých vykonávanie bolo dočasne pozastavené alebo zablokované, a „deadline“ na analýzu správania plánovača úloh.
Virtualizácia a bezpečnosť
- Predvolene je nastavená značka PROC_MEM_FORCE_PTRACE, ktorá umožňuje obchádzať práva prístupu k pamäti procesu cez súbor /proc/PID/mem iba pre procesy, ktoré používajú systémový volací príkaz ptrace() na ladenie.
- Pridané nový súbor hook-ov pre moduly LSM (Linux Security Module), ktorý uľahčuje implementáciu politík pre zásobníkové súborové systémy, ako je overlayfs. V LSM tiež bol pridaný hook na správu prístupu k Unix-socketom, ktorý sa využíva v LSM-module Landlock na prideľovanie prístupových politík k Unix-socketom.
- Vo vstavané kryptoknižnici lib/crypto, ktorá poskytuje jednoduchšie a rýchlejšie funkcie ako v tradičnom crypto API, bola pridaná podpora algoritmov AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH a SM3. Pridaná dokumentácia podľa lib/crypto.
- Implementovaný režim pKVM (Protected KVM) na prísnu izoláciu anomálnej pamäte s využitím rozšírení virtualizácie pre architektúru AArch64. V tomto režime sú stránky pamäte hosťa vylúčené z tabuľky virtuálnych adries hosťujúceho systému.
- V hypervízore KVM bola pridaná podpora piatej verzie virtuálneho ovládača prerušenia ARM (VGICv5 – ARM Virtual Generic Interrupt Controller v5).
Sieťový subsystém
- Pre unix-sockety vytvorené funkciou socket() bola implementovaná podpora rozšírených atribútov súborov (xattr) user.*. Z oblastí aplikácie sa uvádza nastavenie štítkov cez rozšírené atribúty k Unix-socketom používaným pre IPC Varlink, s cieľom ich vyčlenenia z celku na inspekciu a ladenie práce IPC pomocou programov BPF. V systemd-journald sa plánuje využitie rozšírených atribútov na určenie formátu logu v súvislosti so socketom /dev/log.
- Odstránená podpora protokolu UDP-Lite (RFC 3828), ktorá umožňuje dodávku paketov s nesprávnou kontrolnou súmou s očakávaním, že napríklad čiastočne poškodené audio a video dáta môžu byť obnovené na úrovni kodeka. Protokol bol odstránený, pretože ho nikto nepoužíva.
- Pri obnove možnosť zostaviť zásobu IPv6 vo forme jadrového modulu, ktorá sa v praxi neaplikovala (IPv6 buď vkladali do jadra, alebo ju úplne vypínali), ale komplikovala údržbu, pretože pri zostavovaní IPv6 ako jadrového modulu (CONFIG_IPV6=m) museli mnohé subsystémy pridávať zbytočné obslužné programy pre prípad vykládky modulu IPv6.
Zariadenie
- V ovládači AMDGPU je zapnutý nový zobrazovací engine (DC) pre APU AMD série HD 7000 (Sea Islands, GCN 1.1).
- V ovládači Nouveau bola pridaná začiatok podpory GPU NVIDIA GA100 založeného na mikroarchitektúre Ampere.
- Pokračuje sa v práci na drm-ovládači (Direct Rendering Manager) Xe pre GPU založené na architektúre Intel Xe, ktorý sa používa vo grafických kartách Intel rodiny Arc a integrovaných grafikách, počínajúc procesormi Tiger Lake. Pridaná podpora grafického subsystému procesorov Intel Nova Lake-P. Implementované čitateľné vymazateľné pamäťové objekty (Purgeable Buffer Objects).
- Pokračuje integrácia komponentov ovládača Nova pre GPU NVIDIA, vybavené GSP firmvérmi, používanými od série NVIDIA GeForce RTX 2000 na báze mikroarchitektúry Turing. Ovládač je napísaný v jazyku Rust. Pridaná počiatočná podpora GPU na báze mikroarchitektúry Turing.
- Pridané DRM-ovládač corebootdrm na výstup grafiky cez framebuffer firmvéru na báze CoreBoot.
- Pridaná podpora zvukových zariadení ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP a WM8962. Vylepšená podpora zvukových zariadení s USB rozhraním: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
- Pridané ovládač yogafan na sledovanie rýchlosti otáčania ventilátora na notebookoch Lenovo Yoga, Legion a IdeaPad.
- Pridaná podpora ARM platforiem, SoC a zariadení: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 a ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Odstránená podpora v SoC Baikal-T1 používaných ovládačov AHCI SATA a PCIe, ako aj ovládačov časovača, pamäte, physmap, zbernice, hwmon, dwc a bt1-rom. Dôvodom odstránenia je nedostatok údržby a nedokončená integrácia komponentov platformy Baikal do jadra, ktorú production v RF zastavili v novembri 2025.
- Boli odstránené 12 ovládačov pre ethernetové zariadenia s rozhraním ISA a PCMCIA, vyrábané do roku 2002, pre ktoré sa nenašli užívatelia používajúci ich v pracovných systémoch. Takisto bola z jadra vylúčená podsústava ISDN, implementácia protokolov AX.25, CAIF a Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), ovládače yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amatérske rádio), inport a logibm (busmouse). Príčinou odstránenia bolo nedostatok aktívnych správcov na pozadí rastúceho počtu chýb odhalených pomocou syzbot a nástrojov AI, ktoré nikto nechce opraviť a celá záťaž na odstránenie vážnych problémov leží na správcích hlavných sieťových podsystémov jadra. Celkovo bolo odstránených viac ako 140 tisíc riadkov kódu.
Zdroj: linux.org.ru
