Kaks kuud kestnud arendustööd on Linus Torvalds tutvustanud Linuxi tuuma versiooni 6.10. Märkimisväärsemate muudatuste hulka kuuluvad: ntsync draiver Windows NT sünkroniseerimise primitivi jaoks, DRM Panic komponendid, mis implementeerivad ''sinise ekraani' analooge, vanade Alpha CPUde toe lõpetamine, FUSE-põhiste failisüsteemide integriteedi kontrollimise võimalus, juurdepääsu piiramise mehhanismi Landlock kaudu, mälu eraldamise operatsioonide profiilimisalamsüsteem, süsteemi kutse mseal(), krüpteeritud andmevahetuse tugi TPM seadmetega, kõrge prioriteediga tööde järjekordade tugi dm-cryptis, ning panthor draiver kümnenda põlvkonna Mali GPU jaoks.
Uues versioonis on 14564 parandust 1989 arendajalt, patši suurus on 41 MB (muudatused mõjutavad 12509 faili, lisatud on 547663 koodirida, eemaldatud 312464 rida). Eelmisel väljaandel oli 15680 parandust 2106 arendajalt, patši suurus oli 54 MB. Umbes 41% kõikidest 6.10 esitatud muudatustest on seotud seadmedraiveritega, ligikaudu 15% muudatustest puudutab riistvaraarhitektuurile spetsiifilise koodi värskendamist, 13% on seotud võrgu protokolliga, 5% failisüsteemide ja 4% tuuma sisemiste alam-süsteemidega.
Peamised uuendused tuumas 6.10:
- Diskisüsteem, sisend/väljund ja failisüsteemid
- Lisatud on uus fcntl-operatsioon F_DUPFD_QUERY, mille abil saab protsess määrata, et kaks erinevat failideskriptorit viitavad samale failile. Erinevalt sarnastest võimalustest, mida pakub süsteemi kutse kcmp(), ei põhjusta F_DUPFD_QUERY liialdavate andmete avalikustamist ning töötab süsteemides, kus kcmp on välja lülitatud.
- FUSE alam-süsteemis, mida kasutatakse kasutajaruumi failisüsteemide rakendamiseks, on rakendatud fs-verity mehhanismi, mis võimaldab failide integriteedi ja autentsuse kontrollimist.
- dm-crypt moodulisse, mida kasutatakse plokiseadmete krüpteerimiseks, on lisatud ''high_priority'' valik, mis võimaldab kasutada kõrge prioriteediga tööde järjekordi tootlikkuse tõstmiseks võimsatel serverites. Vaikimisi on režiim välja lülitatud, kuna see võib tavalisel PC-l põhjustada viivitusi, kui töö ei ole seotud krüpteerimisega, näiteks heli töötlemisega.
- Lisatud netlink-protokoll NFS-serveri haldamiseks kernelis. Kasutajaruumi poolt on selle protokolli baasil loodud utiliit nfsdctl. NFS v2 mountimise tugi on vaikimisi keelatud (utiliidis mount.nfs lõpetati NFS v2 tugi juba 2021. aastal).
- Failisüsteemis XFS jätkati fiksimisutiliidi fsck võimaluste elluviimist probleemide kontrollimiseks ja parandamiseks online-režiimis, ilma failisüsteemi lahti mountimata. Lisatud ioctl XFS_IOC_EXCHANGE_RANGE kahe faili vaheliste baitide vahemike vahetamiseks aatomaarves.
- Btrfs-is on rakendatud pehmete, kinnitamata ulatuskaardiga kujundamine (shrinker), mis võib olla kasulik mälu tarbimise vähendamiseks mälu puuduse tingimustes. Andmete tihendamise kood ja funktsioon put_file_data() on üle viidud mälulehtede (page folios) kasutamisele. Ümber töötatud ulatusseadmete lukustamise mehhanism tagasikirjutamise operatsioonide käigus.
- Failisüsteemis Ext4 on lisatud ioctl FS_IOC_GETFSSYSFSPATH, et määrata antud monteeritud failisüsteemi asukoht hierarhias /sys/fs.
- Failisüsteemid OPENPROMFS, ISOFS, QNX6, NILFS2, MINIX ja FREEVXFS on ülemineku korral uuele jaotiste monteerimise API-le.
- EROFS-is (Extendable Read-Only Failisüsteem), mis on mõeldud ainult lugemisrežiimis jaotistele, on lisatud Zstandard tihendamisalgoritmi tugi.
- Bcachefs-is on valmistatud ette fsck teostamiseks jaotise lahti monteerimise vajaduseta (online-kontroll). Lisatud muudatused ja parandused töökindluse suurendamiseks. Rakendatud on faile süsteemi formaadi värskendamise ja tagasiviimise võimalus, mille režiim "nochanges" keelab kirjutamise ja hoiab metainfot ainult mälu.
- Failisüsteemi OverlayFS on lisatud ajutiste failide loomise tugi O_TMPFILE valiku kasutamise kaudu.
- Peatatud toetamine blokkdev’i läbi viidud läbilaskevõime piirangumehhanismi «CONFIG_BLK_DEV_THROTTLING_LOW», mille eksperimentaalne staatus püsib alates 2017. aastast, ei ole praktikas levinud ning keerustab plokkseadmestiku alamsüsteemi haldust.
- Mälu ja süsteemiteenused
- Lisatud, kuid kogumisel keelatud, draiver ntsync, mis rakendab sümboolset seadmeid /dev/ntsync ja sünkroniseerimise primitiive, mida kasutatakse Windows NT tuumas. Selliste primitiivide rakendamine tuumatasemel võimaldab märkimisväärselt parandada Windowsi mängude jõudlust, mis käivitatakse Wine'i abil. Jõudluse tõus saavutatakse RPC-kasutamisega kasutaja ruumis seotud kulude elimineerimisega. Eraldi draiveri loomine Linuxi tuumale on tingitud NT sünkroniseerimise API õige rakendamise keerukusest olemasolevate primitiivide peal.
- Lisatud alamsüsteem mäluhalduse operatsioonide profileerimiseks Linuxi tuumas, mis võimaldab tuvastada mälulekkeid tuumas ja lihtsustab mälu kasutamise optimeerimist. Alamsüsteem tagab madala kulukuse, mis võimaldab seda kasutada mitte ainult tuuma silumisversioonides, vaid ka tootmissüsteemides.
- Lisatud algne rakendus katastroofide töötlemiseks tuumas — DRM Panic, mis kasutab alamsüsteemi DRM (Direct Rendering Manager) selge värvilise aruande kuvamiseks sarnases stiilis nagu 'sinine ekraan of surm'. Järgmises väljaandes on plaanis lisada võimalus kuvada logo ja QR-kood ekraanil õnnetuse tekkimisel.
- Jätkatud muudatuste üleviimist harust Rust-for-Linux, mis on seotud Rusti keele kasutamisega kui teise keelega draiverite ja moodulite arendamiseks (Rusti tugi ei ole vaikimisi aktiivne ja ei too kaasa Rusti lisamist tuuma kohustuslike kogumis sõltuvustena). On toimunud üleminek Rusti versiooni 1.78 kasutamisele, mis võimaldas üle minna tavalaekere kasutamisele oma haru asemel. Lisatud abstraktsioonid ajaga töötamiseks tuumas (ümberpakkimine ktime_t struktuuri kohaselt). Lisatud tugi tuuma komponentide kasutamiseks Rusti keeles RISC-V arhitektuuriga süsteemidel.
- BPF-programmide abil on realiseeritud ootejärjekordade (wait queue) kasutamise võimalus kernelis. Lisatud on funktsioonid bpf_preempt_disable ja bpf_preempt_enable, mis võimaldavad luua katkestustest vabade koodilõikude sektsioone. Pakutakse BPF-programmide juurdepääsu toimetussüsteemi krüptograafilistele funktsioonidele (crypto). Tehtud on 32-bitiste ARCv2 protsessoritega süsteemide BPF-programmide JIT-kompileerimise tugi.
- 32-bitiste ARM-süsteemide puhul on realiseeritud Clangi kompilaatori toega kerneli kompileerimise tugi, mis hõlmab CFI (Control Flow Integrity) kaitse režiimi, mis takistab normatiivse täitmisjärjestuse (control flow) rikkumisi, mis tulenevad eksploiteerimistest, mis muudavad mälu salvestatud funktsioonide näitajaid.
- Lisatud on otsene peegeldamise võimalus läbi mmap() ringikapslite jälgimise, et edastada nende sisu kasutaja ruumi ilma täiendava kopeerimiseta.
- Lisatud on süsteemikõne «mseal», mis võimaldab protsessidel seada blokeeringu oma aadressiruumi teatud osade muutmisele. Praktikas on plaanis uut süsteemikõnet kasutada Chrome brauseris, et tugevdada sandbox-isolatsiooni.
- Sublitaarstruktuuri x32 puhul, mis pakub hübriidset x86_64 ABI, mis võimaldab 64-bitistes süsteemides kasutada 32-bitist mälu aadressimise mudelit (protsessor töötab 64-bitises režiimis, kuid kasutab 32-bitiseid näitajaid ja arvutustegevusi), on lisatud Shadow Stack mehhanismi tugi, mis takistab paljude eksploiteerimiste toimet, kasutades Inteli protsessorite riistvaralisi võimalusi, et kaitsta naasvale aadressile naasmist funktsioonist juhul, kui toimub virna ülevool.
- ARM64 arhitektuuriga süsteemides on süsteemikõnes userfaultfd(), mis võimaldab luua näidikute haldajaid mälule mittejaotatud lehtede (page faults) jaoks kasutaja ruumis, realiseeritud kirjutamise kaitsega seonduvad võimalused mälupiirkondade ja mälu lehtede tabelite elementide kaitses.
- Koodist eemaldati tugi alates 1995. aastast väljastatud Alpha 21164 (EV5) protsessoritele ja varasematele seeriatele. Nende protsessorite koodi hooldamine osutus keerukaks, kuna neil ei olnud juurdepääsu mälule individuaalsete baitide tasemel. Alpha oli esimene arhitektuur, kuhu Linuxi kernel portiti, mis oli algselt saadaval ainult x86 süsteemidele.
- Virtualiseerimine ja turvalisus
- Lisatud on toetus andmete krüpteeritud vahetuseks TPM (Trusted Platform Module) seadmetega ning tehingute terviklikkuse kontrollimiseks.
- LSM-moodulisse Landlock, mis võimaldab piirata protsessigruppide suhtlust väliskeskkonnaga, on lisatud reeglite rakendamise võimalus ioctl() kutsungite juurdepääsu piiramiseks.
- Pakutud on käivitamise ajal seatud valik init_mlocked_on_free, mis tagab mälus, mis on mälust välja tõrjumise eest kaitstud mälukutsungiga mlock(), sisu nullimise, kui see mälu vabastatakse ilma unlock-kutsega munlock(). Selle valiku kasutamine välistab krüptograafiliste võtmete jäämise mälu, kui nendega töötav rakendus lõpetatakse ootamatult.
- Krüptosüsteemis kiirendati kettakrüpteerimise operatsioonide täitmist AES-XTS algoritmi abil x86_64 süsteemides Intel ja AMD protsessoritega, mis toetavad VAES, AVX2, VPCLMULQDQ, AVX10 või AVX512 laiendusi.
- Eemaldati võimalus koguda statistikat krüptosüsteemi kasutamisest (CONFIG_CRYPTO_STATS). Selle funktsiooni ei kasutatud praktikas ja see põhjustas märkimisväärset jõudluse langust ning suurendas oluliselt hoolduskohustusi.
- Võrgusüsteem
- Oluliselt on paranenud andmete saatmise jõudlus zero-copy režiimis io_uring süsteemi kasutamisel. Lisatud on võimalus mitme puhvri ('bundle') ühendamiseks andmete saatmise ja vastuvõtmise operatsioonide jaoks.
- Failide deskriptorite saatmisel Unix-sokettide kaudu SCM_RIGHTS sõnumite kasutamisega on ümber kirjutatud prügikoristamise kood. Muudatus lahendab probleemide tsükliliste viidete arvestite kogunemisega.
- Lisatud on võimalus seada filtreid PFCP (Packet Forwarding Control Protocol) protokollile, mida kasutatakse 4G ja 5G võrkudes.
- Lisatud toetus võrgu soklite valikule SO_PEEK_OFF, mis sarnaselt Unix-soklite valikule võimaldab määrata andmete nihke järjekorras, mida kasutatakse süsteemi kutsete recv korral, kui on määratud lipu MSG_PEEK (märgistab andmed lugemata ning need antakse uuesti välja järgmise recv kutse ajal).
- Alamsüsteemi io_uring on lisatud toetus operatsioonile IORING_CQE_F_SOCK_NONEMPTY, mis võimaldab määrata, kas võrgu soklil on ooteprotsessis ühenduse taotlusi, mis ootavad töötlemist.
- Pakutud on PoE (Power over Ethernet) tehnoloogia rakendamine, mis põhineb varem saadaval olnud koodil PoDL (Power over Data Line) toe jaoks ja on ühilduv Microchip PD692x0 ja TI TPS23881 PoE-kontrolleritega.
- TCP, DCCP ja MPTC protokollide jaoks on lisatud toetust mehhanismile rstreason, mis võimaldab määrata RST-pakettide saatmise põhjust (näiteks NO_SOCKET).
- Varustus
- Kaasa on võetud panthor draiver kümnenda põlvkonna GPU Mali (G310, G510, G710) jaoks, kus on rakendatud tehnoloogiat CSF (Command Stream Frontend), mis viib lahti mõned draiveri funktsioonid püsivara külge, et vähendada CPU koormust ja pakkuda uut tööd GPU-s teostamise korraldamise mudelit. Muudatused uue draiveri toe jaoks on samuti aktsepteeritud Mesas ja kaasatud Gallium-draiverisse panfrost GPU Mali jaoks.
- Draiverisse i915 on lisatud uusimate Intel Arc (DG2/Alchemist) diskreetsete videokaartide PCI-tuvid.
- Tööd jätkatakse Intel Xe arhitektuuril põhineva GPU Xe drm-draiveri (Direct Rendering Manager) kallal, mida kasutatakse Intel Arc seeria videokaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Lisatud on toetus CPU-le Arrow Lake H. Jätkatud on Lunar Lake protsessorite toe rakendamist. Lisatud on algne tugi mehhanismile SR-IOV (Single Root I/O Virtualization).
- AMDGPU draiverisse on lisatud SMU 14.0 (System Management Unit) tugi. Lisatud on võimalus kasutada uusi AMD GPU-sid süsteemides, mille arhitektuur on RISC-V.
- Lisatud on draiver krüptograafiliste operatsioonide kiirendamiseks mõeldud Tegra Security Engine jaoks, mida saab kasutada AES-i ja erinevate hash-algoritmide kiirendamiseks.
- Lisatud on toetus ekraanipaneelidele LG SW43408, Innolux G121XCE-L01 LVDS, RK3326 GameForce Chi, Crystal Clear CMT430B19N00, POWERTIP PH128800T006-ZHC01, Startek KD050HDFIA020-C020A, Pixel 3a, Khadas TS050 V2, Raydium RM69380, BOE NT116WHM-N44, CMN N116BCA-EA1 ja AUO B120XAN01.0.
- Lenovo Thinkbook 13x Gen 4, Lenovo Thinkbook 16P Gen 5, Lenovo Thinkbook 13X ja ASUS Zenbook 2024 HN7306W kannavad nüüd toetamist helisüsteemide jaoks. Toetust on lisatud välistele helikaartidele Vocaster One ja Vocaster Two. Lisatud on Nuvoton Technology na NAU8325 võimendite draiver.
- HID-Steam draiveris on lisatud toetus IMU (inertsiaalne mõõtühik) Steam Deck mängu kontrollerile, võimaldades kasutada eraldi evdev sõlme, et pääseda ligi gyroskoobi ja akseleromeetri andmetele.
- Toetatakse ARM SoC Snapdragon X Elite, mis kasutab Qualcomm Oryon 'i omamoodi 12-tuumalist CPU-d ja Qualcomm Adreno GPU-d. Chip on suunatud kasutamiseks sülearvutites ja lauaarvutites ning ületab paljusid Apple M3 ja Intel Core Ultra 155H jõudlusteste.
- Toetatakse ARM-i plaate, SoC-e ja seadmeid: PocketBook 614 Plus, Sony Xperia Z3, Xperia 1 V, Samsung Galaxy S5 Hiina, Motorola Moto G, RK3326 GameForce Chi, Anbernic RG35XX (Plus/H/2024), Airoha EN7581, Radxa ROCK 3C, ArmSom Sige7, Tanix TX1, Toradex Colibri iMX8DX, Renesas RZ/V2H, Forlinx OK3588-C, Protonic MECSBC, Emcraft Systems NavQ+, NXP S32G3, Wolfvision pf5, Amlogic A4/A5, ASUS RT-AC3200, ASUS RT-AC5300, ASrock E3C256D4I, IBM system1 BMC, Meta Harma BMC(AST2600), ASRock X570D4U BMC, Au-Zone Maivin AI Vision Starter Kit.
- Toetatakse Milk-V Mars plaate, mis kasutavad RISC-V arhitektuuri põhinevat SoC Starfive JH7110.
Lõuna-Ameerika vaba tarkvara fond moodustas samal ajal 6.10 täielikult avatud tuuma variandi - Linux-libre 6.10-gnu, puhastades tootja piiratud vaba tarkvara elemente või koodijuppe. Väljalaske 6.10 raames on uuendatud Intel i915, rtl8xxxu, qla2xxx ja QCAI sahara draiverite blobide puhastamise koodi. Aarch64 arhitektuuri dts-failide (devicetree) blobide nimede puhastamine on tehtud. Uued failid, mis on lisatud Adreno, Intel IPU3 ja PRUEth draiverisse, on blobidest puhastatud. Uute draiverite puhastamine Panthor, Intel IPU6, PRUEth SR1, rtw8703b, tps23881, air_en8811h, Intel ISH HID ja pcm6240 on viidud lõpule. USB-draiver Prism2.5/3 USB puhastamine on lõpetatud, nagu see on tuumast eemaldatud.
Allikas: opennet.ru
