Vydanie jadra Linux 7.1

Po dvoch mesiacoch vývoja Linus Torvalds predstavil vydanie jadra Linux 7.1. Medzi najvýraznejšími zmenami sú: nový ovládač ntfsplus, prvá fáza ukončenia podpory pre CPU i486, odstránenie starých ethernetových adaptérů, odstránenie protokolov ISDN a AX.25, zahrnutie mechanizmu Intel FRED ako predvolené nastavenie, podpora BPF spracovateľov v io_uring, optimalizácia subsystému paginácie, 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 Unixové sokety.

Do novej verzie bolo zahrnutých 17275 opráv od 2589 vývojárov,
veľkosť záplaty je 57 MB (zmeny sa dotkli 13528 súborov, pridalo sa 751785 riadkov kódu, odstránilo 405916 riadkov). V minulom vydaní bolo 15624 opráv od 2477 vývojárov, veľkosť záplaty bola 56 MB. Približne 41% všetkých predstavených zmien v 7.1 súvisí s ovládačmi zariadení, asi 12% zmien sa týka aktualizácie kódu špecifického pre hardvérové architektúry, 14% súvisí s sieťovým zásobníkom, 5% s súborovými systémami a 3% s vnútornými subsystémami jadra.

Hlavné novinky v jadre 7.1 (1, 2, 3):

  • Diskový subsystém, I/O a súborové systémy
    • Do zloženia bola prijatá nová implementácia súborového systému NTFS — ntfsplus, založená na kóde odstráneného z klasického ovládača ntfs. Starý ovládač bol prepracovaný, rozšírený o možnosť zápisu dát a prispôsobený na podporu moderných funkcionalít, ako je využitie folii stránok pamäte (folios) namiesto štruktúry buffer_head. V novom ovládači je implementované oneskorené pridelenie blokov, čo umožnilo dosiahnuť vysokú výkonnosť operácií zápisu a zníženie fragmentácie. Pre bufferované operácie zápisu/čítenia, priamy vstup/výstup, mapovanie extents a operácie stránkového zápisu/čítenia 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 boli do neho implementované opravy a drobné vylepšenia.
    • Pridaná podpora generovania a verifikácie dát pre kontrolu integrity T10 na úrovni súborového systému, a nie blokového zariadenia, čo umožňuje zlepšiť výkon čítacích operácií.
    • Do ovládača 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 bubnami (režim zero-copy).
    • Pre samošifrujúce blokové zariadenia SED-OPAL boli pridané ioctl na správu režimu Single User a implementovaná príkaz STACK_RESET.
    • V Btrfs bola vyhlásená stabilná podpora ioctl operácie „shutdown“, ktorá umožňuje prepnúť FS do stavu, v ktorom sa pokúša ukončiť vykonávané operácie, ale blokuje všetky nové operácie.
    • V exfat bola implementovaná možnosť rezervovania prázdnych oblastí pomocou volania fallocate().
    • V FS CIFS bola pridaná podpora vytvárania dočasných súborov s príznakom O_TMPFILE.
    • Do systémového volania fsmount() bola pridaná možnosť FSMOUNT_NAMESPACE, ktorá vytvára nové meno priestoru pre montovanie súborového systému. Do systémových volaní clone3() a unshare() boli pridané príznaky na vrátenie nového mena priestoru pre montovanie, obsahujúceho iba pripojenú prázdnu FS-hlavnú vrstvu na báze nullfs, ovládač fs-dax s FS-rozhraním pre zariadenia DAX (Direct Access).
    • Do NFS servera bola pridaná ochrana pred útokmi na hádanie súborových descriptorov, implementovaná cez overenie descriptorov kryptografickým podpisom. Ochranu je možné aktivovať cez montážnu možnosť sign_fh.
    • Bol pridaný symbolický ovládač fs-dax, ktorý poskytuje rozhranie na interakciu so zariadeniami DAX (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 bola implementovaná zbierka metrík o vstupe/výstupe v súvislosti s podriadenými časťami.
  • Pamäť a systémové služby
    • Bola prijatá prvá séria zmien na ukončenie podpory procesorov i486. Možnosti na kompiláciu 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 vylúčené z Makefile. Kód pre skutočnú podporu na procesoroch i486 zostáva v jadre, ale kompilácia pre takto staré systémy si teraz bude vyžadovať aplikáciu patchov na konfiguračné súbory. Dôvody na odstránenie podpory procesorov i486 sú založené na snaha zbaviť jadro zložitých kódov, ktoré emulujú niektoré hardvérové operácie, ako sú CX8 (porovnať a vymeniť 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 riadenie spotreby energie na systémoch s procesormi AMD, bolo implementované dynamické prepínanie nastavení výkonu a zmena správania správy energie v závislosti od napájania zo siete alebo batérie. Pri pripojení k sieti sa teraz aktivuje režim „performance“, a pri prevádzke na batériu režim „balance_performance“.
    • Bol zapnutý mechanizmus Intel FRED (Flexible Return and Event Delivery) ako predvolené nastavenie, ktorý zvyšuje efektívnosť a spoľahlivosť dodávania informácií o nízkoúrovňových udalostiach. Zlepšenie výkonu a zníženie latencií je zabezpečené návratom udalostí pomocou procesorovej inštrukcie IRET namiesto prenášania udalostí cez tabulku IDT (Interrupt Descriptor Table). Spoľahlivosť je zvýšená oddeleným spracovaním prichádzajúcej udalosti 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 do rozšíreného rámca zásobníka.
    • Do subsystému perf bola pridaná 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 bolo urýchlené vďaka využitiu inštrukcií Arm 9.6 LSUI, ktoré umožňujú jadrám pristupovať k pamäti užívateľského priestoru bez predchádzajúceho vypnutia režimu ochrany PAN (Privileged Access Never).
    • Na systémoch s procesormi ARM bola vylepšená podpora rozšírenia architektúry súboru príkazov MPAM (Memory System Resource Partitioning and Monitoring) a bola pridaná možnosť jeho použitia v uží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 skupiny monitorovania (PMG, Monitoring Group ID). V súvislosti s PARTID je možné obmedziť spotrebu zdrojov, ako je priepustnosť pamäte alebo veľkosť cache, aby nejaká skupina úloh nezabrala všetky zdroje. V kontexte monitorovania kombináciu PMG a PARTID je možné využiť na sledovanie spotreby pamäťových zdrojov pri určitých typoch záťaže.
    • Pridaná možnosť používania režimu 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.
    • Do systémového volania clone3() boli pridané nové flagy: CLONE_NNP — zákaz získania nových privilegovaných práv v vytvorenom procese; CLONE_AUTOREAP — automatické ukončenie procesu namiesto jeho premenenia na proces zombie až do vykonania funkcie wait() rodičovským procesom;
      CLONE_PIDFD_AUTOKILL — ukončenie podradeného procesu v prípade uzavretia s ním spojeného deskriptoru 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 priestorov názvov symbolov (symbol namespace).
    • Do systému asynchrónneho vstupu/výstupu io_uring bola pridaná podpora používania subsystému BPF na vytváranie spracovateľov. Napríklad je možné nahradiť základný cyklus spracovania BPF programom.
    • V subsystéme BPF bola modernizovaná analýza využívania zásobníka, čo výrazne urýchlilo kontrolu mnohých BPF programov verifikátorom.
    • S cieľom optimalizovať výkon bola prepracovaná subsystém hrtimer (high resolution timer). Rozvrhovač úloh môže teraz používať vysokorozlíšené časovače bez straty výkonu namiesto menej presných časovačov.
    • Pokračuje prenášanie zmien z vetvy Rust-for-Linux, ktoré súvisia s použitím jazyka Rust ako druhého jazyka pre vývoj ovládačov a modulov jadra (podpora Rust nie je predvolene aktívna a nevedie k tomu, že by sa Rust stal jednou z povinných závislostí pre zostavenie jadra). Do verzie 1.85 (dodávané v Debiane 13) sa zvýšili požiadavky na verziu Rust potrebnú na zostavenie komponentov jadra. Bola pridaná experimentálna Kconfig možnosť CONFIG_RUST_INLINE_HELPERS na vkladanie C-pásikov do Rust-kódu počas kompilácie (optimalizácia urýchlila prácu blokového ovládača null o 2%). Bol pridaný makro ‘const_assert!’. Rozšírili sa možnosti modulov ‘sizes’, ‘clk’, ‘ptr’, ‘sync’, ‘error’.
    • Do mechanizmu SCHED_EXT, ktorý umožňuje používať BPF na vytváranie plánovačov CPU, bola pridaná počiatočná možnosť vytvárania vnorených plánovačov (sub-scheduler), pomocou ktorých môže mať každé cgroup vlastný plánovač úloh.
    • Pokračuje optimalizácia 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.
    • Do subsystému 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 pristupoval proces 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á koncepcia externých kruhových bufferov, ktorá umožňuje získať údaje sledovania z virtuálních strojů. Možnosť je realizovaná v hypervizoroch KVM a nVHE na prenos sledovacích údajov z hosťovského systému na stranu hostiteľa.
    • Do subsystému RV (Runtime Verification), určeného na kontrolu správnosti činnosti 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á príznak 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ú na ladenie systémový volanie ptrace().
    • Bol pridaný nový súbor hook-ov pre LSM-moduly (Linux Security Module), ktorý zjednodušuje implementáciu politík pre stohové súborové systémy, ako napríklad overlayfs. Do LSM bol tiež pridaný hook na správu prístupu k Unix-socketom, ktorý je zapojený do modulu LSM Landlock na priraďovanie prístupových politík k Unix-socketom.
    • Do vstavaného kryptoknižnice lib/crypto, ktorá poskytuje jednoduchšie a rýchlejšie funkcie ako tradičné crypto API, bola pridaná podpora algoritmov AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH a SM3. Bola pridaná dokumentácia k lib/crypto.
    • Bol implementovaný režim pKVM (Protected KVM) pre prísnu izoláciu anonymnej pamäte s použitím 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.
    • Do hypervízora KVM bola pridaná podpora piatej verzie virtuálneho radič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.*“. Medzi aplikácie patrí priraďovanie označení prostredníctvom rozšírených atribútov k Unix-socketom používaným pre IPC Varlink, s cieľom ich vyčlenenia z celkového množstva na kontrolu a ladenie funkcie IPC pomocou BPF programov. V systemd-journald plánujú použitie rozšírených atribútov na určenie formátu logu v súvislosti so socketom /dev/log.
    • Bola odstránená podpora protokolu UDP-Lite (RFC 3828), umožňujúceho doručovanie balíkov s nesprávnou kontrolnou súmarnou, pričom sa predpokladá, že napríklad čiastočne poškodené audiodáta a videodáta môžu byť obnovené na úrovni kodeku. Protokol bol odstránený, pretože ho nikto nepoužíva.
    • Bola odstránená možnosť zostaviť zásobník IPv6 vo forme modulu jadra, ktorý sa v praxi nepoužíval (IPv6 je buď integrovaný do jadra, alebo úplne vypnutý), ale zvyšoval zložitosti údržby, pretože pri zostavení IPv6 ako modulu jadra (CONFIG_IPV6=m) musia mnohé subsystémy pridať zbytočné spracovatele na prípadné odpojenie modulu IPv6.
  • Zariadenie
    • V ovládači AMDGPU bol zahrnutý nový zobrazovací engin (DC) pre APU AMD série HD 7000 (Sea Islands, GCN 1.1).
    • V ovládači Nouveau bola pridaná základná podpora GPU NVIDIA GA100 založeného na mikroarchitektúre Ampere.
    • Pokračuje práca na drm ovládači (Direct Rendering Manager) Xe pre GPU na báze architektúry Intel Xe, ktorá sa používa v grafických kartách Intel rodiny Arc a integrovaných grafikách, počnúc procesormi Tiger Lake. Pridaná podpora grafického subsystému procesorov Intel Nova Lake-P. Implementované sú vyčistiteľné vyrovnávacie 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 prenosných počítačoch Lenovo Yoga, Legion a IdeaPad.
    • Pridaná podpora platforiem ARM, 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 ovládačov AHCI SATA a PCIe používaných v SoC Baikal-T1, ako aj ovládačov časovača, pamäte, physmap, zbernice, hwmon, dwc a bt1-rom. Dôvodom odstránenia je absencia údržby a nedokončená integrácia komponentov platformy Baikal do jadra, ktorú v RF zastavili v novembri 2025.
    • Zrušených 12 ovládačov pre Ethernet zariadenia s rozhraním ISA a PCMCIA, ktoré boli vyrobené do roku 2002, pre ktoré sa nenašli používatelia, ktorí by ich používali v pracovných systémoch. Z jadra boli tiež vylúčené
      subsystem ISDN, implementácie 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 (Amateur Radio), inport a logibm (busmouse). Dôvodom odstránenia je nedostatok aktívnych správcov v prostredí nárastu chýb, ktoré odhalili syzbot a AI nástroje, ktoré nikto nemení, pričom celá náplň na odstránenie vážnych problémov sa prenáša na správcov hlavných sieťových subsystémov jadra. Celkovo bolo odstránených viac ako 140 tisíc riadkov kódu.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster