
Nakon dva mjeseca razvoja, Linus Torvalds predstavio izdanje jezgre Linux 7.1. Među najistaknutijim promjenama su: novi ntfsplus upravljački program, prva faza prestanka podrške za CPU i486, uklanjanje starih Ethernet adaptera, uklanjanje ISDN i AX.25 protokola, uključivanje Intel FRED mehanizma prema zadanim postavkama, podrška za BPF obradu u io_uring, optimizacija podustava zamjene, podrška za podplanere u sched_ext, ulaz/izlaz u zero-copy režimu u ublk upravljačkom programu, ioctl operacija shutdown u Btrfs, dinamičko prebacivanje između performansi u amd-pstate upravljačkom programu, podrška za xattr za Unix sokete.
U novu verziju prihvaćeno je 17275 ispravki od 2589 programera, veličina zakrpe je 57 MB (promjene su se odnosile na 13528 datoteka, dodano je 751785 redaka koda, uklonjeno 405916 redaka). U prošlom izdanju bilo je 15624 ispravki od 2477 programera, veličina zakrpe je 56 MB. Oko 41% svih izmjena u 7.1 vezano je uz upravljačke programe uređaja, oko 12% odnosi se na ažuriranje specifičnog koda za hardverske arhitekture, 14% se odnosi na mrežni stog, 5% na datotečne sustave i 3% na unutarnje podustave jezgre.
Glavne novine u jezgru 7.1 (kernelnewbies.org, lwn.net, opennet):
Sistem diska, ulaz/izlaz i datotečni sustavi
- U sastav je prihvaćena nova implementacija datotečnog sustava NTFS – ntfsplus, temeljenog na kodu klasičnog upravljačkog programa ntfs uklonjenog iz jezgre. Stari upravljački program je revidiran, proširen mogućnošću zapisivanja podataka i prilagođen za podršku suvremenim mogućnostima, poput korištenja folio stranica memorije (folios) umjesto strukture buffer_head. U novom upravljačkom programu implementirano je odgođeno dodjeljivanje blokova, što je omogućilo postizanje visoke izvedbe operacija zapisivanja i smanjenje fragmentacije. Za obrađene operacije zapisivanja/čitjenja, izravnog ulaza/izlaza, mapiranja ekstenata i operacija stranica zapisivanja/čitjenja korištena je biblioteka iomap. U testovima iozone, upravljački program ntfsplus bio je 3-5% brži od ntfs3 pri zapisivanju u jednom toku i 35-110% brži pri korištenju 4 toka. Brzina čitanja ntfsplus i ntfs3 otprilike je na istoj razini. Upravljački program ntfs3 ostaje u sastavu jezgre i u njega provedene su ispravke i male poboljšanja.
- Dodana je podrška za generiranje i verifikaciju podataka o provjeri cjelovitosti T10 (deepwiki.com) na razini datotečnog sustava, a ne blok uređaja, što omogućuje povećanje performansi operacija čitanja.
- U upravljačkom programu blok uređaja ublk, omogućujući premještanje specifične logike na stranu procesa u korisničkom prostoru, dodana podrška za ulaz/izlaz putem dijeljene memorije bez kopiranja podataka između bafera (zero-copy mode).
- Za samokodirajuće blokovne uređaje SED-OPAL dodane su ioctl za upravljanje načinom Jedan korisnik i implementirana je naredba STACK_RESET.
- U Btrfs je proglašena stabilnom podrškom za ioctl operaciju shutdown, koja omogućuje prebacivanje FS u stanje u kojem se pokušavaju završiti već pokrenute operacije, ali se blokiraju sve nove operacije.
- U exfat je implementirana mogućnost rezerviranja praznih područja putem poziva fallocate().
- U CIFS FS dodana je podrška za kreiranje privremenih datoteka s O_TMPFILE zastavom.
- U sustavni poziv fsmount() dodana je opcija FSMOUNT_NAMESPACE, koja stvara nov prostor imena za montirane sustave datoteka. U sistemske pozive clone3() i unshare() dodane su zastave za vraćanje novog prostora imena točaka montiranja, koje sadrži samo montirani prazan FS prostor održavanja na bazi nullfs, fs-dax upravljački program s FS sučeljem za DAX (Direct Access) uređaje.
- U NFS poslužitelju dodana zaštita od napada na temelju pokušaja otkrivanja datotečnih deskriptora, provedena putem ovjere deskriptora kriptografskom potpisom. Zaštita se uključuje putem opcije montiranja sign_fh.
- Dodano simbolički upravljački program fs-dax, koji pruža sučelje za interakciju s uređajima DAX (kernel.org) (Direct Access), koji podržavaju rad mimo stranog cache-a. Ovo sučelje je potrebno za integraciju u jezgru sustava datoteka famfs, smještene u radnu memoriju.
- U datotečnom sustavu Ceph implementiran prikupljanje metrike o ulazu/izlazu u vezi s pododjelima.
Memorija i sistemske usluge
- Usvojen prvi set izmjena za isključenje podrške za i486 procesore. Iz Kconfig su uklonjene opcije za izgradnju jezgre s podrškom za 486DX, 486SX i AMD ELAN procesore (CONFIG_M486, CONFIG_M486SX i CONFIG_MELAN), a iz Makefile-a su isključene opcije kompilacije za i486 sustave (-march=i486). Kod za stvarnu podršku rada na i486 procesorima za sada ostaje u jezgru, ali izgradnja za takve sustave sada zahtijeva primjenu zakrpa na datoteke za izgradnju. Razlozi za uklanjanje podrške za i486 procesore proizašli su iz želje da se jezgro oslobodi složenog koda koji emulira neke hardverske operacije, poput CX8 (usporedi i zamijeni 8 bajtova) i TSC (brojač ciklusa CPU koji se koristi u raspoređivaču zadataka).
- U drajveru amd-pstate, koji se koristi za upravljanje potrošnjom energije na sustavima s AMD procesorima, implementirano je dinamičko prebacivanje postavki performansi i promjenu ponašanja upravljanja napajanjem ovisno o radu s fiksnim napajanjem ili baterijom. Kada je spojen na fiksno napajanje, sada se aktivira performansna opcija, dok se pri radu na baterije aktivira balansirana performansa.
- Zadano je aktiviran mehanizam Intel FRED (Flexible Return and Event Delivery), koji omogućuje povećanje učinkovitosti i pouzdanosti dostave informacija o niskonivovskim događajima. Povećanje performansi i smanjenje latencije postiže se vraćanjem događaja putem procesorske instrukcije IRET umjesto prijenosa događaja putem tablice IDT (Interrupt Descriptor Table). Povećanje pouzdanosti se postiže odvojenim rukovanjem dolaskom događaja u kontekstu jezgre i kontekstu korisnika, zaštitom od ugniježdenog izvršavanja NMI i očuvanjem u proširenom okviru stoga svih registri CPU povezanih s iznimkom.
- U podsustav perf dodana podrška za blokove za praćenje performansi memorije (PMU — Performance Monitoring Unit), koji se koriste u SoC NVIDIA Tegra410.
- Ubrzano je izvršavanje futex operacija na ARM sustavima, zahvaljujući korištenju instrukcija Arm 9.6 LSUI, koje omogućuju jezgru pristup memoriji korisničkog prostora bez prethodnog onemogućavanja zaštitnog režima. PAN (arm.com) (Privileged Access Never).
- Na sustavima s ARM procesorima poboljšana je podrška za proširenje arhitekture skupa instrukcija MPAM (Memory System Resource Partitioning and Monitoring) i dodana je mogućnost korištenja u korisničkom prostoru za upravljanje resursima putem mehanizma resctrl. MPAM označava svaki pristup memoriji identifikatorom sekcije (PARTID, Partition ID) i identifikatorom grupe praćenja (PMG, Monitoring Group ID). U vezi s PARTID-om moguće je ograničiti potrošnju resursa, kao što su propusnost memorije ili veličina cache-a, kako bi neka grupa zadataka ne zauzela sve resurse. U kontekstu praćenja, kombinacija PMG i PARTID može se koristiti za praćenje potrošnje resursa memorije pri određenim vrstama opterećenja.
- Dodana mogućnost korištenja real-time režima (PREEMPT_RT) na 32-bitnim ARM procesorima. Ranije je podrška za PREEMPT_RT bila osigurana za arhitekture x86 i x86-64, ARM64, RISC-V i LoongArch.
- U sustavni poziv clone3() dodani su novi zastavice: CLONE_NNP — zabrana dobivanja novih privilegija u stvorenoj procesu; CLONE_AUTOREAP — automatsko završavanje procesa umjesto njegovog pretvaranja u zombificirani proces sve dok funkcija wait() ne završi roditeljskim procesom; CLONE_PIDFD_AUTOKILL — završavanje dječjeg procesa u slučaju zatvaranja povezanog deskriptora pidfd (na primjer, prilikom završavanja roditeljskog procesa).
- Za svaki modul jezgre dodan je datoteka import_ns u direktorij /sys/module, koja sadrži popis uvezenih prostora imena simbola (simbolski prostor imena).
- U sustav asinkronog ulaza/izlaza io_uring dodana je podrška za korištenje BPF podsustava za izradu obrada. Na primjer, može se zamijeniti glavni ciklus usmjeravanja BPF programom.
- U podsystemu BPF moderniziran analizu korištenja stoga, što je znatno ubrzalo provjeru verificatorom mnogih BPF programa.
- S ciljem optimizacije performansi prepisana podsustava hrtimer (tajmer visoke rezolucije). Raspoređivač zadataka sada može koristiti tajmere visoke rezolucije bez gubitka performansi umjesto manje preciznih tajmera.
- Nastavljen prijenos promjena iz grane Rust-for-Linux, vezanih uz korištenje jezika Rust kao drugog jezika za razvoj drajvera i modula jezgre (podrška za Rust nije uključena zadano i ne dovodi do uključivanja Rusta među obavezne ovisnosti za izgradnju jezgre). Do verzije 1.85 (isporučuje se u Debianu 13) povećani su zahtjevi za verzijom Rusta potrebnom za izgradnju komponenti jezgre. Dodana je eksperimentalna Kconfig opcija CONFIG_RUST_INLINE_HELPERS za ugradnju C-prosloženih u Rust kod tijekom kompilacije (optimizacija je ubrzala rad blok drajvera null za 2%). Dodan je makro ‘const_assert!’. Proširene su mogućnosti modula sizes, clk, ptr, sync, error.
- U mehanizam SCHED_EXT, omogućujući korištenje BPF za izradu planera CPU-a, dodana početna mogućnost izrade ugniježdenih planera (sub-scheduler), putem kojih svaki cgroup može angažirati vlastiti planer zadataka.
- Nastavljena optimizacija podsustava swap-a. Uklonjena je stara struktura swap_map, zamijenjena mehanizmom „Swap Table“. Promjena je omogućila povećanje performansi i smanjenje potrošnje memorije u podsustavu swap-a.
- U podsustav DAMON (Data Access MONitor), koja omogućava praćenje pristupa procesa podacima u radnoj memoriji (na primjer, može se saznati koje su oblasti memorije koristile proces, a koje su ostale neiskorišćene), dodana podrška raznim algoritmima automatskog tuning-a kvota.
- U sistemu praćenja implementirano je koncept vanjskih kružnih buffera, koji omogućava prikupljanje podataka praćenja iz virtualnih mašina. Ova opcija je dostupna u hipervizorima KVM i nVHE za prenos podataka praćenja iz gostujućeg sistema na stranu hosta.
- U podsustav RV (kernel.org) (Runtime Verification), namenjena za proveru tačnosti rada visoko pouzdanih sistema, dodati su komponenti nadzora "stall" za praćenje zadataka čija je realizacija privremeno obustavljena ili blokirana, i "deadline" za analizu ponašanja planera zadataka.
Virtualizacija i sigurnost
- Podrazumevano je postavljena oznaka PROC_MEM_FORCE_PTRACE, koja omogućava zaobilaženje prava pristupa memoriji procesa preko datoteke /proc/PID/mem samo za procese koji koriste sistemski poziv ptrace() za debagovanje.
- Dodano novi skup hook-ova za LSM module (Linux Security Module), koji pojednostavljuje implementaciju politika za stekove datoteka sistema, kao što je overlayfs. U LSM također dodana je hook za upravljanje pristupom Unix soketima, koji je korišten u LSM module Landlock za dodeljivanje politika pristupa Unix soketima.
- U ugrađenoj knjižnici za kriptografiju lib/crypto, koja pruža jednostavnije i brže funkcije nego u tradicionalnom crypto API-u, dodana podrška za algoritme AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH i SM3. Dodana je dokumentacija prema lib/crypto.
- Implementiran je režim pKVM (Protected KVM) za striktno izolovanje anonimne memorije koristeći produžetke virtualizacije za arhitekturu AArch64. U ovom režimu se stranice memorije gosta isključuju iz tabele virtualnih adresa host sistema.
- U hipervizor KVM dodata je podrška peta verzija virtuelnog kontrolera prekida ARM (VGICv5 — ARM Virtual Generic Interrupt Controller v5).
Mrežni subsistem
- Za unix-sokete, koje kreira funkcija socket(), implementirano je podrška za proširene atribute datoteka (xattr) user.*. Od oblasti primene ističe se postavljanje oznaka preko proširenih atributa na Unix sokete, korišćene za IPC Varlink, s ciljem da se izdvoje radi inspekcije i debagovanja rada IPC uz pomoć BPF programa. U systemd-journald prošireni atributi se nameravaju koristiti za određivanje formata loga u vezi sa soketom /dev/log.
- Uklonjena podrška za UDP-Lite protokol (RFC 3828), koji omogućuje isporuku paketa s netočnim kontrolnim zbrojem, računajući na to da se, na primjer, djelomično oštećeni audiovizualni podaci mogu obnoviti na razini kodeka. Protokol je uklonjen jer ga nitko ne koristi.
- Uklonjen mogućnost izrade IPv6 staka u obliku kernel modula, koja se u praksi nije koristila (IPv6 se ili ugrađuje u kernel ili se potpuno isključuje), ali je otežala održavanje jer su pri izradi IPv6 modula kernelom (CONFIG_IPV6=m), brojne podsustave bile prisiljene dodavati beskorisne procesore za slučaj uklanjanja IPv6 modula.
Oprema
- U AMDGPU drajveru uključen novi prikazni motor (DC) za APU AMD serije HD 7000 (Sea Islands, GCN 1.1).
- U Nouveau drajveru dodana početna podrška za GPU NVIDIA GA100 temeljen na mikroarhitekturi Ampere.
- Nastavljena je izrada drm-drajvera (Direct Rendering Manager) Xe za GPU temeljen na Intel Xe arhitekturi, koji se koristi u Intelovim grafičkim karticama obitelji Arc i integriranoj grafici, počevši od procesora Tiger Lake. Dodana je podrška za grafički sustav procesora Intel Nova Lake-P. Implementirani su očistivi bafer objekti (Purgeable Buffer Objects).
- Nastavljena je integracija komponenti Nova drajvera za NVIDIA GPU-e opremljene GSP firmware-om, koji se koriste od serije NVIDIA GeForce RTX 2000 temeljenih na mikroarhitekturi Turing. Drajver je napisan na jeziku Rust. Dodana je početna podrška za GPU-e temeljen na mikroarhitekturi Turing.
- Dodano DRM-drajver corebootdrm za prikaz grafike putem framebuffer firmware-a temeljenog na CoreBoot-u.
- Dodana podrška za AMD RPL DMIC ASoC zvučnike, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP i WM8962. Poboljšana podrška za audio uređaje s USB priključkom: Huawei slušalice, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
- Dodano yogafan drajver za praćenje brzine okretanja ventilatora na Lenovo Yoga, Legion i IdeaPad laptopima.
- Dodana podrška za ARM platforme, SoC i uređaje: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 i ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Uklonjena podrška za kontroller AHCI SATA i PCIe u SoC Baikal-T1, kao i drajvere tajmera, memorije, physmap, magistrale, hwmon, dwc i bt1-rom. Kao razlog uklanjanja navodi se nedostatak održavanja i nepotpuna integracija komponenti platforme Baikal, čija je proizvodnja u RF obustavljena u novembru 2025. godine.
- Uklonjeno 12 drajvera za Ethernet uređaje s ISA i PCMCIA sučeljima, koji su proizvodili do 2002. godine, za koje nisu pronađeni korisnici koji ih koriste u radnim sustavima. Također je iz jezgre isključena podsustava ISDN, implementacija protokola AX.25, CAIF i Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), drajveri yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amaterska radio stanica), inport i logibm (busmouse). Razlog uklanjanja je bio nedostatak aktivnih održavatelja usred povećanja broja grešaka otkrivenih uz pomoć syzbot i AI alata, koje nitko ne želi ispraviti, a cijela težina rješavanja ozbiljnih problema pada na održavatelje glavnih mrežnih podsustava jezgre. Uklonjeno je više od 140 tisuća redaka koda.
Izvor: linux.org.ru
