Pärast kahte kuud arendust esitles Linus Torvalds Linuxi 7.1 kerneli väljaannet. Kõige silmatorkavamate muudatuste hulka kuuluvad: uus ntfsplus draiver, esimene etapp CPU i486 toe lõpetamisest, vanade Ethernet-adapterite eemaldamine, ISDN ja AX.25 protokollide eemaldamine, Intel FRED mehhanismi lubamine vaikimisi, BPF-töötlejate tugi io_uring'is, vahetusala optimeerimine, alamplaneerijate toetus sched_ext-is, zero-copy sisendi/väljundi režiim ublk draiveris, ioctl-tegevus „shutdown“ Btrfs-s, dünaamiline jõudlustaseme vahetamine amd-pstate draiveris, xattr toetus Unix-sokettide jaoks.
Uude versiooni on lisatud 17275 parandust 2589 arendajalt,
paranduse suurus on 57 MB (muudatused puudutasid 13528 faili, lisati 751785 koodireadet, eemaldati 405916 rida). Eelmises väljaandes oli 15624 parandust 2477 arendajalt, paranduse suurus oli 56 MB. Umbes 41% kõigist 7.1 versioonis esitatud muudatusetest on seotud seadme draiveritega, ligikaudu 12% muudatustest puudutab arhitektuurile spetsiifilise koodi uuendamist, 14% on seotud võrgustikusteemaga, 5% -ga failisüsteemidest ja 3% -ga tuumasisestest alamkomplektidest.
Peamised uuendused kernelis 7.1 (1, 2, 3):
- Disski alamsüsteem, sisend/väljund ja failisüsteemid
- Uue NTFS-failisüsteemi teostuse, ntfsplus, aluseks on klassikalise ntfs-draiveri kood, mis on tuumast eemaletõugatud. Vana draiver on ümber töötatud, andmete kirjutamise võimalust on juurde lisatud ja see on kohandatud kaasaegsete võimaluste, näiteks mälu lehtede (folios) kasutamise toetamiseks buffer_head-struktuuri asemel. Uues draiveris on rakendatud viivitatud plokkide eraldamine, mis on võimaldanud saavutada kõrge kirjutamisoperatsioonide jõudluse ja vähendada fragmenteerimist. Puhvritega kirjutamise/lugemise, otse sisendi/väljundi, sektori kaardistamise ja lehekirja kirjutamise/loetamise operatsioonide jaoks on kasutatud iomap teeki. iozone testides osutus ntfsplus draiver 3-5% kiiremaks kui ntfs3 ühe niidiga kirjutamise puhul ja 35-110% kiiremaks, kui kasutati 4 niiti. ntfsplus'i ja ntfs3 lugemise kiirus on ligikaudu samal tasemel. ntfs3 draiver jääb tuuma osaks ja see on saanud parandusi ja väikeseid täiustusi.
- Lisatud on tugi T10 integriteedikontrolli andmete genereerimiseks ja tõestamiseks failisüsteemi tasandil, mitte blokiseadme tasandil, mis võimaldab parandada lugemistoimingute jõudlust.
- Blokiseadmete draiverisse ublk, mis võimaldab spetsiifilise loogika viimist kasutajaruumi protsessi kõrvale, on lisatud toetus sisend-/väljundoperatsioonidele jagatud mälu kaudu ilma andmete kopeerimise vajaduseta (zero-copy režiim).
- Enesekodeerivate blokiseadmete SED-OPAL jaoks on lisatud ioctl'i käsud Üksikkasutaja režiimi juhtimiseks ning teostatud STACK_RESET käsk.
- Btrfs-is on kuulutatud stabiilseks ioctl operatsiooni 'shutdown' tugi, mis võimaldab failisüsteemi viia seisundisse, kus püütakse lõpetada juba käimasolevad operatsioonid, samas blokeeritakse kõik uued operatsioonid.
- Exfat-s on teostatud tugi tühjade alade reserveerimiseks fallocate() funktsiooni kaudu.
- CIFS failisüsteemis on lisatud tugi ajutiste failide loomisele lipuga O_TMPFILE.
- Süsteemikõnes fsmount() on lisatud valik FSMOUNT_NAMESPACE, mis loob uue nimesüsteemi monteerimispunktide jaoks monteeritavas failisüsteemis. Süsteemikõnedesse clone3() ja unshare() on lisatud lipud, et tagastada uus nimesüsteem monteerimispunktide jaoks, mis sisaldab ainult monteeritud tühja FS-valikut nullfs'i alusel, fs-dax draiver paralleelselt DAX (Direct Access) seadmete failisüsteemiliidesega.
- NFS-serverisse on lisatud kaitse failikirjete jälitamiste vastu, mis teostatakse krüptograafilise allkirja kaudu. Kaitse aktiveeritakse monteerimisvaliku sign_fh kaudu.
- Lisatud on sümboolne draiver fs-dax, mis pakub liidese DAX (Direct Access) seadmetega suhtlemiseks, mis toetavad töötlust mälukaudse vahemäluta. See liides on vajalik famfs failisüsteemi integreerimiseks, mis on paigutatud mällu.
- Ceph failisüsteemis on rakendatud mõõdikute kogumine sisend-/väljundoperatsioonide kohta, mis on seotud alamtegevustega.
- Mälu ja süsteemiteenused
- Võeti vastu esimene seeria muudatusi i486 protsessorite toe lõpetamiseks. Kconfig'ist eemaldati valikud, mis võimaldasid tuuma kokkupanekut i486DX, 486SX ja AMD ELAN protsessorite toetamiseks (CONFIG_M486, CONFIG_M486SX ja CONFIG_MELAN), ning Makefile'ist välistati i486 süsteemide kompileerimisvalikud (-march=i486). Kood i486 protsessorite tegelikuks toetamiseks jääb tuuma, kuid sarnaste süsteemide kokkupanekuks on nüüd vajalik lisada muudatused kokkupanekufailidesse. i486 protsessorite toe eemaldamise põhjused tulenevad soovist vabastada tuum keerulisest koodist, mis imiteerib teatud riistvarategevusi, nagu CX8 (võrdle ja vaheta 8 baiti) ja TSC (CPU tsüklite loendur, mida kasutatakse ülesannete ajastuses).
- Draiveris amd-pstate, mida kasutatakse AMD protsessoritega süsteemide energiatarbimise juhtimiseks, on rakendatud dünaamiline jõudluse seadete vahetamine ja toitehalduse käitumise muutmine sõltuvalt toiteallika kasutamisest — kas ühendatud toitel või akult. Staatilise ühenduse korral aktiveeritakse nüüd „performance” režiim, aku toitel töötades aga „balance_performance”.
- Vaikimisi on kasutusel Intel FRED (Flexible Return and Event Delivery) mehhanism, mis parandab madala taseme sündmuste teabe edastamise efektiivsust ja usaldusväärsust. Tootlikkuse tõus ja viivituste vähenemine saavutatakse sündmuste tagastamisega protsessorite instruktsiooni IRET abil, mitte IDT (Interrupt Descriptor Table) kaudu sündmuste edastamisega. Usaldusväärsuse tõus saavutatakse sündmuste vastuvõtmise eraldi töötlemisega tuuma ja kasutaja kontekstis, kaitsega sisemise NMI täitmise eest ja kõikide seotud CPU registrite salvestamisega laiendatud virna kaadrisse, mis on seotud erandiga.
- Perf alamsüsteemi on lisatud mälu tulemuste jälgimise plokkide (PMU — Performance Monitoring Unit) toimetamine, mida kasutatakse SoC NVIDIA Tegra410-s.
- Futexi operatsioonide täitmist ARM-süsteemides on kiirendatud, kasutades Arm 9.6 LSUI instruktsioone, mis võimaldavad tuumal pääseda kasutaja mälule ilma PAN (Privileged Access Never) kaitse režiimi eelneva väljalülitamiseta.
- ARM-protsessoritega süsteemides on parandatud MPAM (Memory System Resource Partitioning and Monitoring) arhitektuuri käsu laienduse toetust ning lisatud võimalus kasutada seda kasutajaruumis ressursside haldamiseks resctrl mehhanismi kaudu. MPAM tagab iga mälu juurde pääsemise märgistamise sektsiooni identifikaatori (PARTID, Partition ID) ja jälgimisgrupi identifikaatori (PMG, Monitoring Group ID) abil. PARTID'i kontekstis on võimalik piirata ressursside kasutamist, nagu näiteks mälu läbilaskevõime või vahemälu suurus, et teatud ülesannete grupp ei võtaks kõiki ressursse endale. Jälgimise kontekstis saab PMG ja PARTID'i kombinatsiooni kasutada mälu ressursikasutuse jälgimiseks teatud koormustüüpide korral.
- 32-bitistel ARM-protsessoritel on nüüd võimalik kasutada reaalajas režiimi (PREEMPT_RT). Varasemalt oli PREEMPT_RT tugi saadaval x86 ja x86-64, ARM64, RISC-V ja LoongArch arhitektuuridele.
- Süsteemi kõne clone3() on lisatud uued lipud: CLONE_NNP — uute privileegide saamise keeld loodud protsessis; CLONE_AUTOREAP — protsessi automaatne lõpetamine selle asemel, et muuta see zombiprotsessiks kuni vanemate protsessi wait() funktsiooni täitmiseni;
CLONE_PIDFD_AUTOKILL — alampärandi lõpetamine seoses seotud pidfd-deskriptoriga, kui see suletakse (näiteks vanemate protsessi lõpetamisel). - Iga tuuma mooduli jaoks on katalooge /sys/module lisatud fail import_ns, mis sisaldab loetelu imporditud sümbolite nimiruume (symbol namespace).
- Asünkroonse sisendi/väljundi io_uring süsteemi on lisatud tugi BPF alamsüsteemi kasutamiseks töötlejate loomisel. Näiteks on võimalik peamine jaotustsükkel asendada BPF-programmiga.
- BPF alamsüsteemis on täiustatud virna kasutamise analüüsi, mis on oluliselt kiirendanud paljude BPF-programmide valideerimise kontrollimist.
- Tulemuslikkuse optimeerimise eesmärgil on ümber kirjutatud hrtimer (kõrge resolutsiooniga ajastaja) alamsüsteem. Ülesannete ajastaja saab nüüd kasutada kõrge resolutsiooniga ajastajaid ilma tulemuse halvenemiseta madalama täpsusega ajastajate asemel.
- Muutatuste edasiviimine Rust-for-Linux harust seoses Rust'i kasutamisega teisena keele jaoks draiverite ja tuumamoodulite arendamisel (Rust'i tugi ei ole vaikimisi aktiivne ja ei too kaasa Rust'i kui kohustuslike kogumise sõltuvuste lisamist tuumale). Versioonist 1.85 (saabub Debian 13) on suurenenud Rust'i versiooninõuded, mis on vajalikud tuumakomponentide kogumiseks. Lisatud on eksperimentaalne Kconfig-valik CONFIG_RUST_INLINE_HELPERS, mis võimaldab C-kihtide manustamist Rust'i koodi kompileerimise ajal (optimeerimine kiirendas null-blokeeriva draiveri tööd 2%). Lisatud makro ‘const_assert!’. Laiendatud on ‘sizes’, ‘clk’, ‘ptr’, ‘sync’, ‘error’ moodulite võimalusi.
- SCHED_EXT mehhanismi, mis võimaldab kasutada BPF-i CPU planeerijate loomisel, on lisatud esmased võimalused pesastatud planeerijate (sub-scheduler) loomiseks, mille abil saab iga cgroup'i jaoks kasutada oma ülesande planeerijat.
- Jätkuvalt optimeeritud vahetus (swap) alamsüsteem. Eemaldatud vana swap_map struktuur, asendatud «Swap Table» mehhanismiga. See muudatus on parandanud jõudlust ja vähendanud mälu kasutamist vahetus alamsüsteemis.
- DAMON (Data Access MONitor) alamsüsteemi, mis võimaldab jälgida protsessi juurdepääsu andmetele peamises mälus (näiteks saab teada, millistele mälualadele protsess ligipääsu taotles ning millised mälualad jäid kasutamata), on lisatud tugi erinevatele automaatse häälestamise algoritmidele.
- Jälgimise alamsüsteemis on rakendatud välist ringpuhvri kontseptsioon, mis võimaldab koguda jälgimise andmeid virtuaalmasinad. See võimalus on aktiivne hüperviisorites KVM ja nVHE-s, et edastada jälgimisandmeid külalisüsteemist hosti poole.
- RV (Runtime Verification) alamsüsteemi, mis on mõeldud kõrge usaldusväärsuse tagamiseks, on lisatud moniitorimiskomponendid «stall» ajakohastatud ülesannete jälgimiseks, mille täitmine on ajutiselt peatatud või blokeeritud, ja «deadline» ülesannete ajastust analüüsivaks käitumiseks.
- Virtualiseerimine ja turvalisus
- Vaikimisi on seatud PROC_MEM_FORCE_PTRACE lipp, mis võimaldab protsessi mälule juurdepääsu õiguste ümberminekut faili /proc/PID/mem kaudu ainult neile protsessidele, mis kasutavad süsteemi kutset ptrace() silumise jaoks.
- LSM-moodulite (Linux Security Module) jaoks on lisatud uus hookide komplekt, mis lihtsustab poliitikate rakendamist virnastamisfailisüsteemide, nagu overlayfs, jaoks. LSM-ile on lisatud ka hook Unix-sokettide juurdepääsu haldamiseks, mida kasutatakse LSM-moodulis Landlock Unix-sokettide juurdepääsupoliikate määratlemiseks.
- Sisseehitatud krüptokogumikeskus lib/crypto, mis pakub lihtsamaid ja kiiremaid funktsioone kui traditsiooniline krüpto API, on saanud toetuse AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH ja SM3 algoritmidele. Lisatud on dokumentatsioon lib/crypto kohta.
- On rakendatud pKVM (Protected KVM) režiim anonüümsete mälulehede rangeks isoleerimiseks, kasutades AArch64 arhitektuuri virtualiseerimise laiendusi. Selles režiimis jäetakse külgmise süsteemi virtuaalse aadressitabeli välja külastaja mälulehed.
- KVM hüperviisori on lisatud toetust viienda versiooni ARM-i katkestuste üldkontrollerile (VGICv5 - ARM Virtuaalne Üldine Katkestuste Kontroller v5).
- Võrgu alamsüsteem
- Unix-socketite, mis on loodud funktsiooni socket() kaudu, toetavad failide laiendatud atribuute (xattr) "user.*". Oluline rakendusala on märgistamine laiendatud atribuutide kaudu Unix-socketitele, mida kasutatakse IPC Varlink erinevuste tuvastamiseks, et neid eristada üldisest massist IPC toimimise ja BPF-programmide abil inspektsiooniks ja silumiseks. Systemd-journald soovib laiendatud atribuute kasutada logiformaadi määramiseks soketi seotuse kontekstis /dev/log.
- Eemaldatud on UDP-Lite protokolli tugi (RFC 3828), mis võimaldab pakkide edastamist vale kontrollsumma korral, lootes, et näiteks osaliselt kahjustatud audio- ja videofailid saab kodeeri tasemel taastada. Protokoll on eemaldatud, kuna keegi ei kasuta seda.
- Eemaldatud on IPv6 stacki kompileerimise võimalus kernelimoodulina, mida praktikas ei kasutatud (IPv6 kas integreeritakse kernelisse või lülitatakse täielikult välja), kuid see keerukus haldas hooldust, kuna IPv6 modulis kompileerimisel (CONFIG_IPV6=m) pidid paljud alamsüsteemid lisama tarbetud käitlejad IPv6 mooduli väljalülitamise juhtudeks.
- Seadmed
- AMDGPU draiveris sisaldab uut kuvamootorit (DC) AMD HD 7000 seeria APU-dele (Sea Islands, GCN 1.1).
- Nouveau draiverisse on lisatud esialgne tugi NVIDIA GA100 GPU-le, mis põhineb Ampere mikroarhitektuuril.
- Jätkuvalt töötatakse Intel Xe arhitektuuril põhineva GPU drm-draiveri (Direct Rendering Manager) nimel, mida kasutatakse Intel Arc seeria graafikakaarte ja integreeritud graafikas alates Tiger Lake protsessoritest. Lisatud tugi Intel Nova Lake-P protsessorite graafikasüsteemile. Tehtud on mureneda objekti puhastamise (Purgeable Buffer Objects) rakendused.
- NVIDIA GSP-firmware'iga varustatud GPU-de Nova draiveri komponentide integreerimine jätkub, kasutades Turingi mikroarhitektuuril põhinevaid NVIDIA GeForce RTX 2000 seeria alates. Draiver on kirjutatud Rust keeles. Turingi mikroarhitektuuril põhineva GPU algtoetuse lisamine.
- Lisatud corebootdrm DRM-draiver graafika edastamiseks CoreBoot-põhiste BIOSide kaudu.
- Lisatud ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP ja WM8962 heli tugi. Parendatud on USB liidesega heliseadmete tugi: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow,
PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20. - Lisatud yogafan draiver, et jälgida Lenovo Yoga, Legion ja IdeaPad sülearvutite ventilaatori pöörlemiskiirus.
- Lisatud tugi ARM plaatidele, SoC-dele ja seadmetele: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 ja ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- Ahi on eemaldatud SoC Baikal-T1 AHCI SATA ja PCIe kontrollerite ning ajastuse, mälute, physmap'i, busside, hwmon'i, dwc ja bt1-rom'i draiverite tugi. Eemaldamise põhjuseks on toetuse puudumine ja Baikali platvormi komponentide tuuma integreerimise lõpetamine, mille tootmine Venemaal lõpetati novembris 2025.
- Kasutajateta suleti 12 Ethernet-seadme draiverit ISA ja PCMCIA liidestega, mis on toodetud enne 2002. aastat. Need draiverid ei leidnud kasutajaid, kes neid töösüsteemides kasutasid. Samuti on tuumast välja jäetud
ISDN alamsüsteem, protokollide AX.25, CAIF ja Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol) rakendused, draiverid yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amatöörraadioside), inport ja logibm (busmouse). Eemaldamise põhjuseks on aktiivsete toetajate puudumine, taustal on kasvanud syzbot'i ja AI-tööriistade abil tuvastatud vigade arv, mida keegi ei paku lahendada, ning kogu koormus tõsiste probleemide kõrvaldamiseks langeb tuuma peamiste võrgusüsteemide toetajatele. Kokku on eemaldatud üle 140 000 koodi rea.
Allikas: opennet.ru
