
Po dvoch mesiacoch vývoja Linus Torvalds predložené vydanie jadra Linux 7.1Medzi najvýznamnejšie zmeny patria: nový ovládač ntfsplus, prvá fáza ukončenia podpory pre CPU i486, odstránenie starých ethernetových adaptérov, odstránenie protokolov ISDN a AX.25, štandardné povolenie mechanizmu Intel FRED, podpora obslužných programov BPF v io_uring, optimalizácia subsystému swap, podpora podplánovačov v sched_ext, I/O s nulovou kópiou v ovládači ublk, operácia vypnutia ioctl v Btrfs, prepínanie dynamického režimu výkonu v ovládači amd-pstate a podpora xattr pre Unixové sockety.
Nová verzia obsahuje 17 275 opráv od 2 589 vývojárov s veľkosťou záplaty 57 MB (zmeny ovplyvnili 13 528 súborov, pridali 751 785 riadkov kódu a odstránili 405 916 riadkov). Predchádzajúca verzia obsahovala 15 624 opráv od 2 477 vývojárov s veľkosťou záplaty 56 MB. Približne 41 % všetkých zmien vo verzii 7.1 sa týka ovládačov zariadení, približne 12 % zmien sa týka aktualizácií kódu špecifického pre hardvérové architektúry, 14 % sa týka sieťového zásobníka, 5 % sa týka súborových systémov a 3 % sa týkajú interných subsystémov jadra.
Kľúčové nové funkcie v jadre 7.1 (kernelnewbies.org, lwn.net, opennet):
Diskový subsystém, I/O a súborové systémy
- Prijaté do zloženia nová implementácia Súborový systém NTFS – ntfsplus, založený na kóde klasického ovládača ntfs, ktorý bol odstránený z jadra. Starý ovládač bol prepracovaný, rozšírený o možnosti zápisu údajov a prispôsobený na podporu moderných funkcií, ako je napríklad použitie zväzky stránok pamäte (fóliá) namiesto štruktúry buffer_head. Nový ovládač implementuje lenivú alokáciu blokov, ktorá umožňuje vysoký výkon zápisu a zníženú fragmentáciu. Knižnica sa používa pre operácie čítania/zápisu s vyrovnávacou pamäťou, priamy vstup/výstup, mapovanie rozsahu a stránkované operácie čítania/zápisu. iomapV testoch iozone bol ovládač ntfsplus o 3 – 5 % rýchlejší ako ntfs3 pri zápise v jednovláknovom režime a o 35 – 110 % rýchlejší pri použití 4 vlákien. Rýchlosť čítania ntfsplus a ntfs3 je približne rovnaká. Ovládač ntfs3 zostáva v jadre a je v ňom zahrnutý. predstavený opravy a drobné vylepšenia.
- Pridaná podpora pre generovanie a overovanie údajov kontroly integrity T10 (deepwiki.com) na úrovni súborového systému a nie na úrovni blokového zariadenia, čo umožňuje lepší výkon operácií čítania.
- V ovládači blokového zariadenia ublk, čo umožňuje presunúť špecifickú logiku na stranu procesov v používateľskom priestore, pridané podpora pre I/O cez zdieľanú pamäť bez kopírovania údajov medzi vyrovnávacími pamäťami (režim nulovej kópie).
- Pre samošifrovacie blokové zariadenia SED-OPAL pridané ioctl pre ovládanie režimu Jeden používateľ a príkaz STACK_RESET bol implementovaný.
- Btrfs oznámil stabilnú podporu pre operáciu shutdown ioctl, ktorá umožňuje súborovému systému prejsť do stavu, v ktorom sa síce pokúša dokončiť už spustené operácie, ale všetky nové operácie sú blokované.
- exfat implementuje možnosť rezervovať prázdne oblasti volaním funkcie fallocate().
- Súborový systém CIFS teraz podporuje vytváranie dočasných súborov s príznakom O_TMPFILE.
- V systémovom volaní fsmount() Bola pridaná možnosť FSMOUNT_NAMESPACE, ktorá vytvára nový menný priestor bodu pripojenia pre pripojený súborový systém. Do systémových volaní clone3() a unshare() boli pridané príznaky, ktoré vracajú nový menný priestor bodu pripojenia obsahujúci iba pripojený, prázdny stub súborového systému založený na nullfs a ovládač fs-dax s rozhraním súborového systému pre zariadenia DAX (priamy prístup).
- Na NFS server pridané Ochrana pred útokmi hrubou silou na deskriptory súborov je implementovaná certifikáciou deskriptorov kryptografickým podpisom. Táto ochrana je povolená pomocou možnosti pripojenia sign_fh.
- Pridané ovládač znakov fs-dax, ktorý poskytuje rozhranie na interakciu so zariadeniami DAX (kernel.org) (Priamy prístup), ktoré podporujú obídenie vyrovnávacej pamäte stránok. Toto rozhranie je nevyhnutné pre integráciu do jadra súborového systému. rodiny, ktorý sa nachádza v RAM.
- V súborovom systéme Ceph implementovaná zbierka vstupných/výstupných metrík prepojených s podsekciami.
Pamäťové a systémové služby
- Prijaté Prvá séria zmien na odstránenie podpory pre procesory i486. Možnosti pre zostavenie jadra s podporou procesorov 486DX, 486SX a AMD ELAN (CONFIG_M486, CONFIG_M486SX a CONFIG_MELAN) boli odstránené z Kconfig a možnosti kompilácie pre systémy i486 (-march=i486) boli odstránené z Makefile. Samotný kód pre podporu procesorov i486 je stále v jadre, ale zostavenie pre takéto systémy bude teraz vyžadovať záplaty do makefile. Dôvody na odstránenie podpory pre procesory i486 sú spôsobené snahou zbaviť jadro zložitého kódu emulujúceho niektoré hardvérové operácie, ako napríklad CX8 (porovnanie a výmena 8 bajtov) a TSC (počítadlo cyklov CPU používané v plánovači úloh).
- V ovládači amd-pstate, ktorý sa používa na správu napájania v systémoch s procesormi AMD, implementovaná Dynamicky prepína nastavenia výkonu a mení správanie správy napájania v závislosti od toho, či je zariadenie napájané zo zdroja napájania alebo z batérie. Pri pripojení k zdroju napájania sa teraz aktivuje režim výkonu, zatiaľ čo pri prevádzke na batériu sa aktivuje režim balance_performance.
- Mechanizmus je aktivovaný štandardne Intel FRED (Flexibilné vrátenie a doručovanie udalostí), čo zlepšuje efektivitu a spoľahlivosť doručovania udalostí na nízkej úrovni. Zlepšenia výkonu a zníženie latencie sa dosahujú vrátením udalostí pomocou inštrukcie procesora IRET namiesto ich prechodu cez tabuľku deskriptorov prerušení (IDT). Zvýšená spoľahlivosť sa dosahuje oddelením spracovania prijatia udalostí v kontexte jadra a používateľa, ochranou pred vnoreným vykonávaním NMI a uložením všetkých registrov CPU súvisiacich s výnimkami v rozšírenom rámci zásobníka.
- V subsystéme perf pridané podpora jednotiek monitorovania výkonu pamäte (PMU) používaných v systéme na čipe NVIDIA Tegra410.
- Operácie Futexu na systémoch ARM boli zrýchlené využitím inštrukcií Arm 9.6 LSUI, ktoré umožňujú jadru prístup k pamäti používateľského priestoru bez predchádzajúceho vypnutia zabezpečeného režimu. PAN (arm.com) (Privilegovaný prístup nikdy).
- Podpora pre rozšírenie architektúry inštrukčnej sady (Instruction Set Architecture Extension) bola vylepšená na systémoch založených na ARM. MPAM (Rozdelenie a monitorovanie pamäťových systémových zdrojov) a pridaná možnosť jeho použitia v používateľskom priestore na správu zdrojov prostredníctvom mechanizmu obmedzenieMPAM označuje každý prístup k pamäti pomocou ID oddielu (PARTID) a ID monitorovacej skupiny (PMG). Pomocou PARTID môžete obmedziť spotrebu zdrojov, ako je šírka pásma pamäte alebo veľkosť vyrovnávacej pamäte, aby ste zabránili tomu, aby jedna skupina úloh spotrebovala všetky zdroje. V kontexte monitorovania možno kombináciu PMG a PARTID použiť na sledovanie spotreby pamäte pri špecifických pracovných zaťaženiach.
- Pridané Možnosť používať režim reálneho času (PREEMPT_RT) na 32-bitových procesoroch ARM. Predtým bola podpora PREEMPT_RT poskytovaná pre architektúry x86 a x86-64, ARM64, RISC-V a LoongArch.
- V systémovom volaní klon3() pridané nové príznaky: CLONE_NNP — zákaz získanie nových privilégií vo vytvorenom procese; CLONE_AUTOREAP — automatické ukončenie procesu namiesto jeho premeny na zombie proces, kým rodičovský proces nevykoná funkciu wait(); CLONE_PIDFD_AUTOKILL — ukončenie podradeného procesu, ak je zatvorený handle pidfd, ktorý je s ním spojený (napríklad pri ukončení rodičovského procesu).
- Pre každý modul jadra bol do adresára /sys/module pridaný súbor s názvom import_ns, ktorý obsahuje zoznam importovaných menných priestorov symbolov (priestor názvov symbolov).
- Asynchrónny I/O systém io_uring teraz podporuje použitie subsystému BPF na vytváranie obslužných programov. Napríklad hlavnú dispečerskú slučku je možné nahradiť programom BPF.
- V subsystéme BPF modernizovaný analýza využitia zásobníka, ktorá výrazne urýchlila overovanie mnohých BPF programov overovateľom.
- Aby sa optimalizoval výkon prepísané Podsystém hrtimer (časovač s vysokým rozlíšením). Plánovač úloh teraz môže používať časovače s vysokým rozlíšením bez straty výkonu namiesto menej presných časovačov.
- Pokračovanie portovanie zmien z Rust-for-branchLinux, súvisiace s používaním jazyka Rust ako druhého jazyka na vývoj ovládačov a modulov jadra (podpora Rustu nie je štandardne aktívna a nevedie k tomu, že Rust je zahrnutý do zoznamu povinných závislostí zostavenia jadra). Až do verzie 1.85 (dodávanej v Debian 13) Zvýšené požiadavky na verziu Rust potrebnú na zostavenie komponentov jadra. Pridaná experimentálna možnosť Kconfig CONFIG_RUST_INLINE_HELPERS na vkladanie interpolácií C do kódu Rust počas kompilácie (táto optimalizácia zlepšila výkon ovládača nulových blokov o 2 %). Pridané makro „const_assert!“. Rozšírené možnosti modulov sizes, clk, ptr, sync a error.
- Do mechanizmu SCHED_EXT, čo umožňuje použiť BPF na vytvorenie plánovačov CPU, pridané Počiatočná možnosť vytvárať podplánovače, čo umožňuje každej kontrolnej skupine mať vlastný plánovač úloh.
- Optimalizácia swapového subsystému pokračuje. Stará štruktúra swap_map bola odstránená a nahradená štruktúrou „Výmenný stôl„Zmena zlepšila výkon a znížila spotrebu pamäte v stránkovacom subsystéme.“
- K subsystému DAMON (Data Access MONitor), ktorý umožňuje sledovať prístup procesu k údajom v pamäti RAM (napríklad môžete zistiť, ku ktorým oblastiam pamäte proces pristupoval a ktoré oblasti pamäte zostali neobsadené), pridané podpora rôznych automatických algoritmov ladenie kvóty.
- V subsystéme sledovania implementovaná Koncept externých kruhových vyrovnávacích pamätí, ktorý umožňuje načítanie údajov o sledovaní z virtuálnych počítačov. Táto funkcia sa používa v KVM a nVHE na prenos údajov sledovania z hosťovského systému na hostiteľskú stranu.
- K subsystému RV (kernel.org) (Runtime Verification), určený na kontrolu správnej prevádzky vysoko spoľahlivých systémov, boli pridané monitorovacie komponenty.státie„sledovať úlohy, ktoré sú dočasne pozastavené alebo blokované, a“uzávierka» analyzovať správanie plánovača úloh.
Virtualizácia a bezpečnosť
- Predvolene je nastavený príznak PROC_MEM_FORCE_PTRACE, ktorý umožňuje obísť prístupové práva na spracovanie pamäte prostredníctvom súboru. /proc/PID/mem iba pre procesy, ktoré používajú systémové volanie ptrace() na ladenie.
- Pridané nová sada háčikov pre LSM moduly (Linux Bezpečnostný modul), ktorý zjednodušuje implementáciu politík pre súborové systémy založené na zásobníkoch, ako napríklad overlayfs. LSM tiež dodal háčik na riadenie prístupu k Unixovým socketom, ktorý zapojené v module Landlock LSM na priradenie prístupových politík k Unixovým socketom.
- Vo vstavanej krypto knižnici knižnica/krypto, ktoré poskytuje jednoduchšie a rýchlejšie funkcie ako tradičné krypto API, pridané Bola pridaná podpora pre algoritmy AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH a SM3. dokumentáciu od lib/crypto.
- Režim bol implementovaný pKVM (Chránený KVM) pre prísnu izoláciu anonymná pamäť Používanie virtualizačných rozšírení pre architektúru AArch64. V tomto režime sú stránky pamäte hosťa vylúčené z tabuľky virtuálnych adries hostiteľského systému.
- Bola pridaná podpora pre hypervízor KVM piata verzia Virtuálny generický radič prerušení ARM v5 (VGICv5).
Sieťový subsystém
- Pre unixové sockety vytvorené funkciou socket() implementovaná Podpora pre rozšírené atribúty súborov (xattr) user.*. Medzi aplikácie patrí nastavenie značiek prostredníctvom rozšírených atribútov na Unixových socketoch používaných pre Varlink IPC, čo umožňuje ich odlíšenie od všeobecného prostredia IPC pomocou programov BPF na kontrolu a ladenie operácií IPC. V systemd-journald sú rozšírené atribúty určené na definovanie formátu protokolu pre socket /dev/log.
- Odstránené podpora protokolu UDP-Lite (RFC 3828), ktorý umožňuje doručovanie paketov s nesprávnym kontrolným súčtom s očakávaním, že napríklad čiastočne poškodené zvukové a obrazové dáta je možné obnoviť na úrovni kodeku. Protokol bol odstránený, pretože ho nikto nepoužíva.
- Odstránené Možnosť zostaviť IPv6 stack ako modul jadra, čo sa v praxi nepoužívalo (IPv6 je buď zabudovaný v jadre, alebo úplne zakázaný), ale komplikovaná údržba, pretože pri zostavovaní IPv6 ako modulu jadra (CONFIG_IPV6=m) je mnoho subsystémov nútených pridať zbytočné obslužné programy v prípade, že je modul IPv6 vyložený.
Оборудование
- V ovládači AMDGPU zapnuté Nový grafický procesor (DC) pre APU série AMD HD 7000 (Sea Islands, GCN 1.1).
- In Nouveau vodič pridané Počiatočná podpora pre grafické procesory NVIDIA GA100 založené na mikroarchitektúre Ampere.
- Pokračovala práca na ovládači Xe DRM (Direct Rendering Manager) pre GPU založené na architektúre Intel Xe, ktorá sa používa v grafických kartách radu Intel Arc a integrovaných grafických kartách, počnúc procesormi Tiger Lake. Bola pridaná podpora pre grafický subsystém procesorov Intel Nova Lake-P. Boli implementované objekty Purgeable Buffer Objects.
- Pokračovali sme v integrácii komponentov ovládača Nova pre grafické karty NVIDIA vybavené firmvérom GSP, ktorý sa používa od série NVIDIA GeForce RTX 2000 založených na mikroarchitektúre Turing. Ovládač je napísaný v jazyku Rust. Bola pridaná počiatočná podpora pre grafické karty založené na mikroarchitektúre Turing.
- Pridané Ovládač DRM corebootdrm pre grafický výstup cez framebuffer firmvéru založeného na CoreBoot.
- Pridané Podpora pre nasledujúce ASoC: AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP a WM8962. Vylepšená podpora pre USB audio zariadenia: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu a Scarlett 18i20.
- Pridané Ovládač Yogafan na monitorovanie rýchlosti ventilátora na notebookoch Lenovo Yoga, Legion a IdeaPad.
- Pridané Podpora pre dosky, SoC a zariadenia ARM: 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 pre radiče AHCI SATA a PCIe používané v Baikal-T1 SoC, ako aj ovládače pre časovač, pamäť, fyzickú mapu, zbernicu, hwmon, dwc a bt1-rom. Dôvodom odstránenia je nedostatočná podpora a neúplná integrácia komponentov platformy Baikal do jadra, keďže výroba v Rusku bola ukončená v novembri 2025.
- Odstránený 12 ovládačov pre ethernetové zariadenia s rozhraniami ISA a PCMCIA, vydaných pred rokom 2002, pre ktoré sa nenašli žiadni používatelia, ktorí by ich používali v produkčných systémoch. Subsystém ISDN, implementácie protokolov AX.25, CAIF a ovládače Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport a logibm (busmouse). Dôvodom odstránenia bol nedostatok aktívnych správcov uprostred rastúceho počtu chýb identifikovaných syzbotmi a nástrojmi umelej inteligencie. Nikto sa neujme úlohy ich opravy a celá bremeno opravy závažných problémov leží na správcoch subsystémov jadrovej siete. Celkovo bolo odstránených viac ako 140 000 riadkov kódu.
Zdroj: linux.org.ru
