Po dveh mesecih razvoja je Linus Torvalds izdal jedro. Linux 7.1. Med najpomembnejšimi spremembami: nov gonilnik ntfsplus, prva faza ukinitve podpore za procesorje i486, odstranitev starih ethernetnih adapterjev, odstranitev protokolov ISDN in AX.25, privzeto omogočanje mehanizma Intel FRED, podpora za obdelovalce BPF v io_uring, optimizacija podsistema swap, podpora za podrazporejevalnike v sched_ext, V/I z ničelno kopijo v gonilniku ublk, "zaustavitev" operacije ioctl v Btrfs, dinamično preklapljanje načina delovanja v gonilniku amd-pstate, podpora xattr za vtičnice Unix.
Nova različica vključuje 17275 popravkov 2589 razvijalcev,
Velikost popravka je 57 MB (spremembe so vplivale na 13528 datotek, dodanih je bilo 751785 vrstic kode in odstranjenih 405916 vrstic). Prejšnja izdaja je vsebovala 15624 popravkov od 2477 razvijalcev, velikost popravka pa je 56 MB. Približno 41 % vseh sprememb v različici 7.1 je povezanih z gonilniki naprav, približno 12 % sprememb je povezanih s posodobitvami kode, specifičnimi za strojno arhitekturo, 14 % je povezanih z omrežnim skladom, 5 % je povezanih z datotečnimi sistemi in 3 % z notranjimi podsistemi jedra.
Glavne nove funkcije v jedru 7.1 (1, 2, 3):
- Diskovni podsistem, V/I in datotečni sistemi
- Sprejeta je bila nova implementacija datotečnega sistema NTFS, ntfsplus. Temelji na kodi klasičnega gonilnika ntfs, ki je bil odstranjen iz jedra. Stari gonilnik je bil preoblikovan, razširjen z možnostjo pisanja podatkov in prilagojen za podporo sodobnim funkcijam, kot je uporaba pomnilniških strani (folios) namesto strukture buffer_head. Novi gonilnik izvaja leno dodeljevanje blokov, kar omogoča visoko zmogljivost pisanja in zmanjšano fragmentacijo. Knjižnica iomap se uporablja za operacije branja/pisanja v medpomnilniku, neposredni V/I, preslikavo obsega in operacije branja/pisanja strani. V testih iozone je bil gonilnik ntfsplus 3–5 % hitrejši od ntfs3 pri pisanju v enonitnem načinu in 35–110 % hitrejši pri uporabi 4 niti. Hitrost branja ntfsplus in ntfs3 je približno enaka. Gonilnik ntfs3 ostaja v jedru in je bil posodobljen s popravki in manjšimi izboljšavami.
- Dodana je podpora za ustvarjanje in preverjanje podatkov o integriteti T10 na ravni datotečnega sistema in ne na ravni blokovne naprave, kar izboljša delovanje operacij branja.
- Gonilnik blokovne naprave ublk, ki omogoča prenos specifične logike v proces uporabniškega prostora, zdaj podpira vhodno/izhodno delovanje prek skupnega pomnilnika brez kopiranja podatkov med medpomnilniki (način ničelne kopije).
- Za samošifrirne blokovne naprave SED-OPAL so bili dodani ioctl-i za nadzor načina enega uporabnika in implementiran je bil ukaz STACK_RESET.
- Btrfs je napovedal stabilno podporo za ioctl operacijo »shutdown«, ki datotečnemu sistemu omogoča, da preide v stanje, v katerem poskuša prekiniti že delujoče operacije, vendar blokira vse nove operacije.
- exfat implementira možnost rezerviranja praznih območij s klicem funkcije fallocate().
- Datotečni sistem CIFS zdaj podpira ustvarjanje začasnih datotek z zastavico O_TMPFILE.
- Sistemski klic fsmount() zdaj vključuje možnost FSMOUNT_NAMESPACE, ki ustvari nov imenski prostor točke priklopa za nameščeni datotečni sistem. Sistemskima klicoma clone3() in unshare() so bile dodane zastavice, ki vrnejo nov imenski prostor točke priklopa, ki vsebuje samo nameščen, prazen, na nullfs temelječ datotečni sistem in gonilnik fs-dax z vmesnikom datotečnega sistema za naprave DAX (neposreden dostop).
- Strežnik NFS zdaj vključuje zaščito pred napadi z grobo silo na deskriptorje datotek, ki jo izvaja kriptografsko podpisovanje deskriptorjev. Ta zaščita je omogočena z možnostjo priklopa sign_fh.
- Dodan je bil simbolni gonilnik fs-dax, ki zagotavlja vmesnik za interakcijo z napravami DAX (neposredni dostop), ki podpirajo obhod predpomnilnika strani. Ta vmesnik je potreben za integracijo datotečnega sistema famfs v pomnilniku v jedro.
- Datotečni sistem Ceph izvaja zbiranje V/I metrik na podlagi posameznega nosilca podatkov.
- Pomnilniške in sistemske storitve
- Prvi krog sprememb za odstranitev podpore za procesorje i486 je bil sprejet. Možnosti za gradnjo jedra s podporo za procesorje 486DX, 486SX in AMD ELAN (CONFIG_M486, CONFIG_M486SX in CONFIG_MELAN) so bile odstranjene iz Kconfiga, možnosti prevajanja za sisteme i486 (-march=i486) pa so bile odstranjene iz datoteke Makefile. Dejanska koda za podporo procesorjem i486 je še vedno v jedru, vendar bo za gradnjo za takšne sisteme zdaj potrebno namestiti popravke za datoteke Makefile. Razlog za odstranitev podpore za procesorje i486 je, da se jedro znebi kompleksne kode, ki posnema določene strojne operacije, kot sta CX8 (primerjava in izmenjava 8 bajtov) in TSC (števec ciklov CPU, ki se uporablja v razporejevalniku opravil).
- Gonilnik amd-pstate, ki se uporablja za upravljanje porabe energije v sistemih s procesorji AMD, zdaj dinamično preklaplja nastavitve zmogljivosti in spreminja vedenje upravljanja porabe energije glede na to, ali sistem deluje na baterijsko napajanje ali na vir napajanja. Ko je sistem priključen na vir napajanja, se zdaj aktivira način »performance«, medtem ko se pri delovanju na baterijsko napajanje aktivira način »balance_performance«.
- Intelov mehanizem FRED (Flexible Return and Event Delivery) je privzeto omogočen, kar izboljša učinkovitost in zanesljivost dostave dogodkov na nizki ravni. Zmogljivost in zakasnitev se izboljšata z vračanjem dogodkov z uporabo procesorskega ukaza IRET namesto njihovega posredovanja skozi tabelo deskriptorjev prekinitev (IDT). Zanesljivost se izboljša z ločevanjem prejemnikov dogodkov v kontekstu jedra in uporabnika, zaščito pred vgnezdenim izvajanjem NMI in shranjevanjem vseh registrov CPU, povezanih z izjemami, v razširjenem okviru sklada.
- Podsistem perf je bil posodobljen za podporo enotam za spremljanje pomnilnika Performance Monitoring Unit (PMU), ki se uporabljajo v sistemu na čipu NVIDIA Tegra410.
- Operacije Futexa na sistemih ARM so bile pospešene z uporabo ukazov Arm 9.6 LSUI, ki jedru omogočajo dostop do pomnilnika uporabniškega prostora, ne da bi bilo treba najprej onemogočiti zaščitni način PAN (Privileged Access Never).
- V sistemih s procesorji ARM je bila izboljšana podpora za razširitev arhitekture nabora ukazov Memory System Resource Partitioning and Monitoring (MPAM), z možnostjo uporabe v uporabniškem prostoru za upravljanje virov prek mehanizma resctrl. MPAM označi vsak dostop do pomnilnika z identifikatorjem particije (PARTID) in identifikatorjem skupine za spremljanje (PMG). Z uporabo PARTID-ov lahko omejite porabo virov, kot sta pasovna širina pomnilnika ali velikost predpomnilnika, da preprečite, da bi ena sama skupina nalog porabila vse vire. V kontekstu spremljanja se lahko kombinacija PMG in PARTID uporabi za sledenje porabe pomnilniških virov pri določenih delovnih obremenitvah.
- Dodana je bila podpora za način v realnem času (PREEMPT_RT) na 32-bitnih procesorjih ARM. Prej je bila podpora za PREEMPT_RT na voljo za arhitekture x86 in x86-64, ARM64, RISC-V in LoongArch.
- Sistemskemu klicu clone3() so bile dodane nove zastavice: CLONE_NNP — preprečuje novo ustvarjenemu procesu pridobivanje novih privilegijev; CLONE_AUTOREAP — samodejno zaključi proces, namesto da bi ga spremenil v zombi proces, dokler nadrejeni proces ne izvede funkcije wait();
CLONE_PIDFD_AUTOKILL - zaključi podrejeni proces, če je z njim povezan ročaj pidfd zaprt (na primer, ko se zaključi nadrejeni proces). - Za vsak modul jedra je bila v imenik /sys/module dodana datoteka import_ns, ki vsebuje seznam uvoženih imenskih prostorov simbolov.
- Asinhroni V/I sistem io_uring zdaj podpira uporabo podsistema BPF za ustvarjanje obdelovalcev. Glavno zanko odpreme je na primer mogoče nadomestiti s programom BPF.
- Podsistem BPF je posodobil analizo uporabe sklada, kar je znatno pospešilo preverjanje številnih programov BPF s strani preverjevalca.
- Podsistem hrtimer (časovnik z visoko ločljivostjo) je bil prepisan za optimizacijo delovanja. Razporejevalnik opravil lahko zdaj uporablja časovnike z visoko ločljivostjo namesto manj natančnih časovnikov, ne da bi pri tem žrtvoval delovanje.
- Nadaljevanje migracije sprememb iz Rust-for-branchLinux, povezano z uporabo jezika Rust kot drugega jezika za razvoj gonilnikov in modulov jedra (podpora za Rust privzeto ni aktivna in ne pomeni, da je Rust vključen na seznam obveznih odvisnosti gradnje za jedro). Do različice 1.85 (dobavljena v Debian 13) Povečane zahteve za različico Rust, potrebno za gradnjo komponent jedra. Dodana eksperimentalna možnost Kconfig CONFIG_RUST_INLINE_HELPERS za vključevanje interpolacij C v kodo Rust med prevajanjem (ta optimizacija je izboljšala delovanje gonilnika null blokov za 2 %). Dodan makro 'const_assert!'. Razširjene zmogljivosti modulov 'sizes', 'clk', 'ptr', 'sync' in 'error'.
- Mehanizem SCHED_EXT, ki omogoča uporabo BPF za ustvarjanje razporejevalnikov CPU, je bil dopolnjen z začetno možnostjo ustvarjanja ugnezdenih razporejevalnikov (podrazporejevalnikov), ki vsaki kontrolni skupini omogočajo uporabo lastnega razporejevalnika opravil.
- Optimizacije podsistema zamenjave so se nadaljevale. Stara struktura swap_map je bila odstranjena in nadomeščena z mehanizmom »Swap Table«. Ta sprememba je izboljšala zmogljivost in zmanjšala porabo pomnilnika v podsistemu zamenjave.
- Podsistem DAMON (Data Access MONitor), ki omogoča spremljanje dostopa procesa do podatkov v RAM-u (na primer, lahko ugotovite, do katerih pomnilniških območij je proces dostopal in katera pomnilniška območja so ostala neuporabljena), je bil dopolnjen s podporo za različne algoritme za samodejno nastavljanje kvot.
- Podsistem sledenja izvaja koncept zunanjih obročnih medpomnilnikov, ki omogoča pridobivanje podatkov sledenja iz virtualni strojiFunkcija je omogočena v hipervizorjih. KVM in nVHE za prenos podatkov sledenja od gosta do gostitelja.
- Podsistem RV (Runtime Verification), zasnovan za preverjanje pravilnega delovanja visoko zanesljivih sistemov, je bil dopolnjen s komponentami za spremljanje "zastoja" za sledenje nalogam, katerih izvajanje je začasno prekinjeno ali blokirano, in "rokom" za analizo vedenja razporejevalnika nalog.
- Virtualizacija in varnost
- Privzeto je nastavljena zastavica PROC_MEM_FORCE_PTRACE, ki omogoča obhod pravic dostopa do pomnilnika procesov prek datoteke /proc/PID/mem samo za procese, ki za odpravljanje napak uporabljajo sistemski klic ptrace().
- Dodan nov niz kavljev za module LSM (Linux Varnostni modul), ki poenostavlja implementacijo pravilnikov za datotečne sisteme, ki temeljijo na skladu, kot je overlayfs. LSM je dodal tudi kavelj za upravljanje dostopa do Unixovih vtičnic, ki se uporablja v modulu Landlock LSM za dodeljevanje pravilnikov dostopa Unixovim vtičnicam.
- Vgrajena kripto knjižnica lib/crypto, ki ponuja enostavnejše in hitrejše funkcije kot tradicionalni kripto API, je bila posodobljena za podporo algoritmom AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH in SM3. Dodana je bila dokumentacija za lib/crypto.
- Za strogo anonimno izolacijo pomnilnika z uporabo razširitev virtualizacije za arhitekturo AArch64 smo implementirali način pKVM (Protected KVM). V tem načinu so strani pomnilnika gosta izključene iz tabele virtualnih naslovov gostiteljskega sistema.
- Hipervizor KVM zdaj podpira peto različico krmilnika prekinitev ARM Virtual Generic (VGICv5).
- Omrežni podsistem
- Za Unix vtičnice, ustvarjene s funkcijo socket(), je bila implementirana podpora za razširjene atribute datotek (xattr) "user.*". Eno od področij uporabe je označevanje Unix vtičnic, ki se uporabljajo za Varlink IPC, z razširjenimi atributi, kar omogoča njihovo razlikovanje od drugih za pregled in odpravljanje napak IPC z uporabo programov BPF. V systemd-journald so razširjeni atributi namenjeni uporabi za določanje formata dnevnika za vtičnico /dev/log.
- Podpora za protokol UDP-Lite (RFC 3828), ki omogoča dostavo paketov z neveljavnimi kontrolnimi vsotami v upanju, da se lahko na primer delno poškodovani zvočni in video podatki obnovijo na ravni kodeka, je bila odstranjena. Ta protokol je bil odstranjen, ker ga nihče ne uporablja.
- Možnost gradnje IPv6 sklada kot modula jedra je bila odstranjena. To se v praksi ni uporabljalo (IPv6 je bodisi vgrajen v jedro bodisi popolnoma onemogočen), vendar je otežilo vzdrževanje, saj so pri gradnji IPv6 kot modula jedra (CONFIG_IPV6=m) številni podsistemi prisiljeni dodati neuporabne upravljalnike, če je modul IPv6 razložen.
- Оборудование
- Gonilnik AMDGPU vključuje nov grafični mehanizem (DC) za procesorje AMD HD 7000 serije (Sea Islands, GCN 1.1).
- Gonilnik Nouveau doda začetno podporo za grafični procesor NVIDIA GA100, ki temelji na mikroarhitekturi Ampere.
- Nadaljevalo se je delo na gonilniku Xe DRM (Direct Rendering Manager) za grafične procesorje, ki temeljijo na arhitekturi Intel Xe, ki se uporablja v grafičnih karticah serije Intel Arc in integrirani grafični kartici, začenši s procesorji Tiger Lake. Dodana je bila podpora za grafični podsistem procesorjev Intel Nova Lake-P. Implementirani so bili objekti Purgeable Buffer Objects.
- Nadaljevali smo z integracijo komponent gonilnikov Nova za grafične kartice NVIDIA, opremljene z vdelano programsko opremo GSP, ki se uporablja od serije NVIDIA GeForce RTX 2000, ki temelji na mikroarhitekturi Turing. Gonilnik je napisan v Rustu. Dodana je bila začetna podpora za grafične kartice, ki temeljijo na mikroarhitekturi Turing.
- Dodan je bil gonilnik DRM corebootdrm za izpis grafike prek medpomnilnika okvirjev vdelane programske opreme, ki temelji na CoreBootu.
- Dodana podpora za naslednje ASoC-je: AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP in WM8962. Izboljšana podpora za avdio naprave USB: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow.
PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20. - Dodan gonilnik yogafan za spremljanje hitrosti ventilatorja na prenosnikih Lenovo Yoga, Legion in IdeaPad.
- Dodana podpora za ARM plošče, SoC-je in naprave: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 in ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Podpora za krmilnike AHCI SATA in PCIe, ki se uporabljajo v Baikal-T1 SoC, kot tudi za gonilnike časovnika, pomnilnika, fizičnega zemljevida, vodila, hwmon, dwc in bt1-rom, je bila odstranjena. Razlog za odstranitev je pomanjkanje podpore in nepopolna integracija komponent platforme Baikal v jedro, saj je bila proizvodnja v Rusiji ustavljena novembra 2025.
- Odstranjenih je bilo 12 gonilnikov za ethernetne naprave z vmesniki ISA in PCMCIA, izdanih pred letom 2002, za katere ni bilo najdenih uporabnikov, ki bi jih uporabljali v produkcijskih sistemih. Odstranjeni so bili tudi iz jedra.
Odstranjeni so bili podsistem ISDN, implementacije protokolov AX.25, CAIF in Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), gonilniki yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport in logibm (busmouse). Razlog za odstranitev je bilo pomanjkanje aktivnih vzdrževalcev zaradi vse večjega števila napak, ki so jih odkrila orodja syzbot in umetna inteligenca, ki jih nihče ni bil pripravljen odpraviti, zaradi česar je celotno breme odpravljanja resnih težav padlo na vzdrževalce osrednjih omrežnih podsistemov jedra. Skupno je bilo odstranjenih več kot 140 vrstic kode.
Vir: opennet.ru
