Linuxi tuuma 6.10 väljaanne

Pärast kahte kuu kestnud arendust esitles Linus Torvalds Linuxi tuuma 6.10 väljaannet. Kõige silmapaistvamad muudatused hõlmavad: ntsync draiver Windows NT sünkroonimisprimitividega, DRM Panic komponendid, et rakendada analooge "sinisele ekraanile", vanade Alpha protsessorite toe lõpetamine, võimalus valideerida andmete terviklikkust FUSE-põhistes failisüsteemides, ioctl juurdepääsu piiramine Landlock mehhanismi kaudu, mälu eraldamise operatsioonide profileerimise alamsüsteem, süsteemikutsung mseal(), võimalus krüpteeritud andmevahetuseks TPM seadmetega, kõrge prioriteedi tööde järjekordade tugi dm-crypt'is, ja panthor draiver kümnenda põlvkonna Mali GPU-de jaoks.

Uues versioonis on tehtud 14564 parandust 1989 arendajalt, patši suurus on 41 MB (muudatused puudutasid 12509 faili, lisatud on 547663 koodirida, kustutatud 312464 rida). Eelmisel väljaandel oli 15680 parandust 2106 arendajalt, patši suurus 54 MB. Umbes 41% kõikidest muudatustest versioonis 6.10 on seotud seadme draiveritega, ligikaudu 15% muudatustest puudutab spetsifikaatide värskendamist riistvara arhitektuuridele, 13% on seotud võrgu protokolliga, 5% — failisüsteemidega ja 4% — südamiku sisemiste alamsüsteemidega.

Olulised uuendused versioonis 6.10:

  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Lisatud on uus fcntl-operatsioon F_DUPFD_QUERY, mille abil protsess saab kindlaks teha, et kaks erinevat failihalduri käevõru viitavad samale failile. Erinevalt sarnastest võimalustest, mida pakub süsteemi kutse kcmp(), ei avalikusta F_DUPFD_QUERY liigset teavet ja töötab süsteemides, kus kcmp() on keelatud.
    • FUSE-alamsüsteemis, mida kasutatakse failisüsteemide rakendamiseks kasutaja ruumis, on rakendatud fs-verity mehhanismi võimalust failide terviklikkuse ja kehtivuse kontrollimiseks.
    • Modiulis dm-crypt, mida kasutatakse plokkseadmete krüpteerimiseks, on saanud funktsiooni «high_priority», mis võimaldab kasutada kõrge prioriteediga tööqueue, et suurendada jõudlust võimsates süsteemides. serveritesVaikimisi on režiim välja lülitatud, kuna see võib tavalistes arvutites suurendada latentsust tööde täitmisel, mis ei ole seotud krüpteerimisega, näiteks heli töötlemisega.
    • Ytu kudel on lisatud netlink-põhine protokoll NFS-serveri haldamiseks kernelis. Kasutajaruumi on selle protokolli baasil loodud utiliit nfsdctl. Vaikimisi on NFS v2 mountimise toetus keelatud (utiliidis mount.nfs lõpetati NFS v2 toetus juba 2021. aastal).
    • Failisüsteem XFS on jätkanud tööd utiliidi fsck rakendamise võimaluse osas, et kontrollida ja parandada tuvastatud probleeme online-režiimis, ilma failisüsteemi lahti monteerimata. Lisatud ioctl XFS_IOC_EXCHANGE_RANGE kahe faili vaheliste baitide vahemike vahetamiseks atomaarrežiimis.
    • Btrfs toetab nüüd eraldatud ulatuste lõikamist (shrinker), mis võib osutuda kasulikuks süsteemis mälupuuduse korral. Andmete tihendamise kood ja funktsioon put_file_data() on ümber kirjutatud, et kasutada mälulehti (page folios). Uuendatud on ulatuste lukustamise mehhanismi tagasikirjutamise operatsioonide käigus.
    • Failisüsteemi Ext4 on lisatud toetust ioctl FS_IOC_GETFSSYSFSPATH, et määrata määratud monteeritud failisüsteemi asukoht hierarhias /sys/fs.
    • Failisüsteemid OPENPROMFS, ISOFS, QNX6, NILFS2, MINIX ja FREEVXFS on ümber kirjutatud, et kasutada uut partitsioonide mountimise API-d.
    • Failisüsteemis EROFS (Extendable Read-Only File System), mis on mõeldud ainult lugemisrežiimis olevate sektsioonide jaoks, on lisatud Zstandard tihendusalgoritmi toetus.
    • Bcachefs on valmistatud ette fscki teostamiseks ilma partitsiooni eemaldamata (online-kontroll). Lisatud on muudatused ja parandused töö usaldusväärsuse tõstmiseks. Ellu on viidud failisüsteemi formaadi uuendamise ja tagasivõtmise võimalus 'nochanges' režiimis, mis keelab kirjutamise ja salvestab metaandmed ainult mällu.
    • OverlayFS failisüsteemi on lisatud tugi ajutiste failide loomisele O_TMPFILE valiku abil.
    • Toetuse lõpetamine plokkseadmete läbilaskevõime piiramise mehhanismile «CONFIG_BLK_DEV_THROTTLING_LOW», mis on alates 2017. aastast olnud katsetatav ega ole praktikas levinud, raskendab plokkseadmeterühma hooldamist.
  • Mälu ja süsteemiteenused
    • Lisatud, kuid kompileerimise ajal keelatud draiver ntsync, mis rakendab sümboolset seadet /dev/ntsync ja komplekti sünkroniseerimisprimitiive, mida kasutatakse Windows NT tuumas. Sarnaste primitiivide rakendamine tuumatasemel võimaldab oluliselt suurendada Windowsi mängude jõudlust, kui neid käitab Wine. Jõudluse tõus tuleneb RPC kasutamisega seotud kulude vähenemisest kasutajaruumi tasemel. Eraldi draiveri loomine Linuxi tuumale on põhjustatud probleemidest NT sünkroniseerimis-API korrektse rakendamisega olemasolevate primitiivide peal.
    • Lisatud on mälu eraldamise operatsioonide profileerimise alamsüsteem Linuxi tuumas, mis võimaldab tuvastada mälu leke ja lihtsustab mälu tarbimise optimeerimist. Alamsüsteem tagab madalad kulud, mis võimaldab seda kasutada mitte ainult tuuma silumisversioonides, vaid ka tööks mõeldud süsteemides.
    • Lisatud on tuuma esialgne hädaolukorra töötleja — DRM Panic, mis kasutab DRM (Direct Rendering Manager) alamsüsteemi, et kuvada visuaalne värviline aruanne, sarnane "sinise ekraani surmale". Järgmises väljaandes plaanitakse lisada logo ja QR-koodi kuvamisvõimekust hädaolukordade ilmnemisel.
    • Jätkatud muudatuste ülekandmine Rust-for-Linux harust, mis on seotud Rust'i kasutamisega teise keelena draiverite ja tuumamoodulite arendamisel (Rust'i tugi ei ole vaikimisi aktiveeritud ega too kaasa Rust'i lisamist tuuma kohustuslikesse sõltuvustesse). Üleminek Rust 1.78 väljaandele, mis võimaldas kasutada standardset alloc teeki, mitte enda haru. Lisatud abstraktsioonid ajaga töötamiseks tuumas (mähis ktime_t struktuuri ümber). Lisatud tugi Rust'i keeles kirjutatud tuumakomponentide kasutamiseks RISC-V arhitektuuriga süsteemides.
    • BPF-programmides on rakendatud ooterežiimi (wait queue) kasutamise võimalust tuumas. Lisatud funktsioonid bpf_preempt_disable ja bpf_preempt_enable, mis võimaldavad luua katkestusteta ülesannete ajakava sektsioone. BPF-programmidele on antud juurdepääs krüptograafilistele funktsioonidele tuumas (crypto). JIT-kompileerimise tugi BPF-programmide jaoks on rakendatud 32-bitilistel ARCv2 protsessoritel.
    • 32-bit ARM süsteemide jaoks on Clang kompilaatori abil rakendatud tuuma koostamise toetust koos CFI (Control Flow Integrity) kaitse režiimiga, mis blokeerib kontrollvoo rikkumisi, mis tulenevad kuritarvitustest, mis muudavad mälus salvestatud funktsioonide pointereid.
    • Lisatud on otsene peegeldamise võimalus läbi mmap() ringikujuliste jälgimisbufferite, et edastada nende sisu kasutaja ruumi ilma täiendava kopeerimiseta.
    • Lisatud on süsteemikõne «mseal», mis võimaldab protsessidel seada lukku teatud osade muutmise oma aadressiruumis. Uut süsteemikõnet plaanitakse praktikas kasutada Chrome brauseris, et tugevdada liivakasti isolatsiooni.
    • x32-alase, mis pakub hübri x86_64 ABI-d, võimaldades 64-bitistes süsteemides kasutada 32-bitist aadressimudelit (protsessor töötab 64-bitises režiimis, kuid kasutab 32-bitiseid pointer'e ja arvutustegevust), on lisatud Shadow Stack mehhanismi tugi, mis takistab paljude eksploiteerimiste toimumist, kasutades Intel protsessorite riistvaralisi võimalusi naasmise aadressi ülekirjutamise kaitsmiseks funktsiooni sees, kui toimub virna ületäitumine.
    • ARM64 arhitektuuriga süsteemides on süsteemikutses userfaultfd(), mis võimaldab luua mitteväljaantud mälulehtede (page faults) töötlemise käsitlejaid kasutaja ruumis, rakendatud kirjutamise kaitsega seonduvad võimalused mälupiirkondade ja lehe tabeli elementide jaoks.
    • Koodist on eemaldatud tugi 1995. aastast turuletoodud Alpha 21164 (EV5) protsessoritele ja varasematele seeriatele. Nende protsessorite toe säilitamine on keeruline, kuna neis puudub võimalus juurdepääsuks mälu tasemel üksikutele baitidele. Alpha oli esimene arhitektuur, kuhu Linuxi kerneli portimise võimalus toodi, algselt saadaval ainult x86 süsteemidele.
  • Virtualiseerimine ja turvalisus
    • Lisatud on tugi andmete krüpteeritud vahetamiseks TPM-seadmete (Trusted Platform Module) ja tehingute terviklikkuse kontrollimiseks.
    • LSM-moodulisse Landlock, mis võimaldab piirata rühmade protsesside suhtlemist väliskeskkonnaga, on lisatud võimalus rakendada reegleid süsteemi ioctl() kutsete juurdepääsu piiramiseks.
    • Pakutud on üles laadimisetapis algseadistust init_mlocked_on_free, mis tagab mälus sisu nullimise, mis on kaitstud väljatõukamise eest vahetusfaili sektsiooni mlock() kutse abil, kui see mälu vabastatakse ilma munlock() kutsega vabastamata. Selle valiku kasutamine välistab krüptograafiliste võtmete jääkide jäämise mällu, kui rakendus, mis nendega töötab, lõpetab ootamatult.
    • Crypto alamsüsteemis on kiirendatud ketasügeerimise operatsioonide täitmist AES-XTS algoritmi abil x86_64 süsteemides, millel on Intel ja AMD protsessorid, mis toetavad VAES, AVX2, VPCLMULQDQ, AVX10 või AVX512 laiendusi.
    • Kasutusest eemaldati krüptosüsteemi statistika kogumise võimalus (CONFIG_CRYPTO_STATS). Seda funktsiooni ei kasutatud praktikas ja see põhjustas märkimisväärset jõudluse langust ning lisakoormust hooldusmeeskonnale.
  • Võrgu alamsüsteem
    • Andmeedastusoperationite jõudlust on märkimisväärselt parendatud zero-copy režiimis io_uring alamsüsteemi kasutamisel. Lisatud on võimalus koondada (‘bundle’) mitmeid puhverdate edastamise ja vastuvõtmise operatsioonide jaoks.
    • Failide deskriptorite saatmise juurde kuuluvat prügikogu kogumise koodi on ümber kirjutatud, kasutades Unix-süsteemide sokette SCM_RIGHTS sõnumite kaudu. See muudatus lahendab probleemi tsükliliselt kogunevate viidatud loenduri probleemiga.
    • Lisatud on võimalus seadistada filtreid PFCP (Packet Forwarding Control Protocol) protokolli jaoks, mida kasutatakse 4G ja 5G võrkudes.
    • Lisati on toetuse võimalus võrgu soketitele SO_PEEK_OFF, mis võimaldab sama joondusega nagu Unix soketitel määrata andmete positsiooni järjekorras, mida süsteemi kutsung recv kasutab, kui on指定标志MSG_PEEK (märgib andmed lugemata ja need antakse uuesti järgmise recv kutsumise korral).
    • Alamsüsteemi io_uring on lisatud toe võimalus operatsioonile IORING_CQE_F_SOCK_NONEMPTY, mis võimaldab määrata, kas võrgu soketil on töötlemist ootavaid ühenduse taotlemisi.
    • Pakutud on PoE (Power over Ethernet) tehnoloogia teostust, mis põhineb varem kergesti kättesaadaval koodil PoDL (Power over Data Line) toetamiseks ja on ühilduv Microchip PD692x0 ja TI TPS23881 PoE kontrolleritega.
    • Protokollide TCP, DCCP ja MPTC jaoks on lisatud toe võimalus mehhanismile rstreason, mis võimaldab määrata RST-pakettide saatmise põhjust (näiteks NO_SOCKET).
  • Seadmed
    • Komplekti kuulub panthor draiver kümnendale põlvkonnale GPU Mali (G310, G510, G710), kus kasutatakse tehnoloogiat CSF (Command Stream Frontend), mis viib mõningad draiveri funktsioonid välja riistvarasse, et vähendada CPU koormust ning pakkuda uut mudelit GPU tööde teostamiseks. Uue draiveri toeks on muudatused ka Mesas ja need on kaasatud Gallium-draiverisse panfrost GPU Mali jaoks.
    • Draiverisse i915 on lisatud uusimate Intel Arc (DG2/Alchemist) diskreetsete graafikakaartide PCI-tuvastajad.
    • Tööd jätkuvad drm-draiveri (Direct Rendering Manager) Xe kallal, mis on mõeldud Intel Xe arhitektuuri põhinevatele GPU-dele, mida kasutatakse Intel Arc graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Lisatud tugi Arrow Lake H CPU-le. Jätkub Lunar Lake protsessorite toe rakendamine. Algne tugi SR-IOV (Single Root I/O Virtualization) mehhanismile on lisatud.
    • Draiverisse AMDGPU on lisatud tugi SMU 14.0 (System Management Unit). Uute AMD GPU-de kasutamine RISC-V arhitektuuriga süsteemides on nüüd võimalik.
    • Lisatud on draiver Tegra Security Engine krüptograafiliste operatsioonide kiirendaja jaoks, mida saab kasutada AES ja erinevate hashimisaluste algoritmide kiirendamiseks.
    • Lisatud tugi 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.
    • Lisatud tugi Lenovo Thinkbook 13x Gen 4, Lenovo Thinkbook 16P Gen 5, Lenovo Thinkbook 13X ja ASUS Zenbook 2024 HN7306W sülearvutite helisüsteemidele. Lisatud tugi välistel helikaartidel Vocaster One ja Vocaster Two. Lisatud draiver Nuvoton Technology NAU8325 võimendite jaoks.
    • HID-Steam draiverisse on lisatud tugi IMU (Inertial Measurement Unit) mängukontrolleri Steam Deck jaoks, mis võimaldab kasutada eraldi evdev-osa andmete juurde pääsemiseks gyroskoobilt ja akseleromeetrilt.
    • Tugimeetmed ARM SoC Snapdragon X Elite toeks, kus on kasutusel kohandatud 12-tuumaline Qualcomm Oryon CPU ja Qualcomm Adreno GPU. Chip on mõeldud sülearvutitesse ja lauaarvutitesse, ületades paljuski Apple M3 ja Intel Core Ultra 155H jõudlustestide tulemusi.
    • Lisatud ARM-plaatide, SoC-de ja seadmete tugi: 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.
    • Lisatud Milk-V Marsi plaatide tugi, mis kasutavad RISC-V arhitektuuril põhinevat SoC Starfive JH7110.

Samas lõi Ladina-Ameerika Vaba Tarkvara Fond täielikult tasuta tuuma 6.10 versiooni — Linux-libre 6.10-gnu, millest on eemaldatud kõik tootja poolt piiratud vaba tarkvara ja draiverite elemendid. Versioonis 6.10 on uuendatud Intel i915, rtl8xxxu, qla2xxx ja QCAI sahara draiverite blobide puhastuskoode. DTS-failides (devicetree) arhitektuurile Aarch64 on puhastatud blobide nimed. Uued failid, mis on lisatud Adreno, Intel IPU3 ja PRUEth draiveritesse, on blobideta. Uute draiverite Panthor, Intel IPU6, PRUEth SR1, rtw8703b, tps23881, air_en8811h, Intel ISH HID ja pcm6240 puhastus on teostatud. USB-draiver Prism2.5/3 USB puhastamine on lõpetatud, kuna see on tuumast eemaldatud.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster