Linuxi 6.14 tuuma väljalase

Kaks kuud kestnud arendustööd Linus Torvalds tutvustas Linuxi tuuma versiooni 6.14. Kõige silmapaistvamad muudatused on: ntsync draiver koos Windows NT sünkroonimise primitiividega, Btrfs RAID1 lugemisoperatsioonide tasakaalustamise seadistamine, reflink tugi XFS reaalajas režiimis, võimalus kasutada mitte-vahendatud puhverdatud sisestust/väljastust, dmem cgroup GPU mälupiirangute jaoks, io_uring rakendamine FUSE'is, atribuutide delegeerimine NFS-is, tuumade seadistamine aatomarvutamiseks Device mapperis, sümboolsete lingide kiirus, skriptide täitmise juhtimise võimalus, Qualcomm Snapdragon 8 Elite kiipide tugi, AMD NPU draiver.

Uude versiooni on lisatud 12115 parandust 1984 arendajalt, värskenduse suurus on 39 MB (muudatused puudutasid 10170 faili, lisati 531586 rea koodi, kustutati 235999 rida). Eelmisel väljaandel oli 14172 parandust 2086 arendajalt, värskenduse suurus oli 46 MB. Umbes 41% kõikidest 6.14 väljaandes tehtud muudatustest on seotud seadmedraiveritega, umbes 13% muudatusi puudutab arhitektuurispetsiifilise koodiga uuendamist, 14% on seotud võrgu protokollidega, 7% -ga failisüsteemidega ja 4% tuuma sisemiste alamsüsteemidega.

Peamised uuendused tuumas 6.14:

  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Btrfs failussüsteemis on lisandunud uued lugemise tasakaalustamise meetodid RAID1 massiivi kuuluvate seadmete vahel. Lisaks varem kehtinud koormuse jaotamisele protsessi identifikaatorite (pid) alusel, on uues versioonis pakkuda kolm uut tasakaalustamisrežiimi: "rotation" (koormuse ühtlane jaotamine kõigi seadmete vahel, režiim on vaikimisi sisse lülitatud); "latency" (jaotamine viivituste arvestamisega, võib olla kasulik rikete või ebastabiilsete seadmete korral); devid (manuaalne juhtimine). Tasakaalustamisrežiimi muutmiseks on lisatud liides "/sys/fs/btrfs//read_policy". Muude Btrfsi muudatuste seas on implementeeritud ioctl FS_IOC_READ_VERITY_METADATA.
    • Lisatud on mittevahetatavate puhverdatud andmete sisendi/väljundi režiim, kus andmed eemaldatakse lehe vahemälust kohe pärast lugemise või kirjutamise toimingute lõpetamist. See muudatus võib olla kasulik väga kiiresti salvestusseadmestiku kasutamisel, mille operatsioonide vahemälu rakendamine RAM-is on ülearune. Selliste seadmete jaoks võimaldab uus režiim vältida mälukaubandust lehe vahemälu jaoks, ilma et oleks vaja keerulist otse sisendi/väljundi (Direct I/O) API-d kasutada.
    • fsnotify's, failisüsteemi muudatuste jälgimise mehhanismis, on lisatud uus sündmus FS_PRE_ACCESS, mis genereeritakse enne faili sisu juurde pääsemist. Sündmust töödeldakse sünkroonselt, st kernel saadab sündmuse ja ootab vastust. Kui vastus on saadud, tehakse operatsioon, ja kui toimub tõrge, tagastatakse süsteemikõne kasutaja ruumi veakood. FS_PRE_ACCESS abil saab kasutaja ruumi protsess näiteks organiseerida faili täitmist andmete valmimise ajal aeglases salvestusseadmestikus.
    • FUSE süsteemi, mis võimaldab luua kasutaja ruumis failisüsteemide teostusi, on lisatud toe andmevahetuseks tuuma ja kasutaja ruumi töötleja vahel, kasutades io_uring sisend-/väljastusmehhanismi. See muudatus võimaldab suurendada FUSE'i jõudlust, vähendades konteksti vahetusi tuuma ja kasutaja ruumi vahel.
    • Failisüsteemi XFS on lisatud võimalus kasutada pöördkaardistamist (rmap, reverse-mapping) ennustatavate viivituste režiimis ('realtime device'). Pöördkaardistamine võimaldab määrata, millise faili salvestamiseks kasutatakse määratud plokki salvestusseadmest. Rmap abil on XFS-i realtime-režiimis rakendatud reflink operatsiooni toetus, mis võimaldab faile kopeerida, kloonides faili metaandmed ja luues lingi juba olemasolevatele andmetele ilma nende tegeliku kopeerimiseta.
    • VFS-is on rakendatud sümboolsete linkide suuruse vahemälu, mis on võimaldanud kiirendada readlink operatsiooni teostamist 1.5% võrra (testis koos /initrd.img ext4-al). Vahemälu on aktiivne ext4 ja tmpfs failisüsteemides.
    • NFSv4.2 toob on lisatud failiatribuutide delegeerimise tugi, mis võimaldab hallata selliseid failiattribute nagu muutmisajalugu (mtime) NFS-klientide poolel, ilma et oleks vaja muudatusi serverisse edastada. NFS-il on ka parendatud «LOCALIO» protokolli tuge, mis võimaldab tuvastada, kas NFS klient ja server asuvad samal hostil, et rakendada vastavaid optimeerimisi, nagu klientide otse sisendi/väljundi (Direct I/O) kasutamine.
    • Parendatud NETFS, CIFS ja AFS (Andrew File System) failisüsteemide lugemisoperatsioonide jõudlust.
    • Squashfs sisaldab režiimi, mis võimaldab otse laadida blokke leheküljekassasse (SQUASHFS_FILE_DIRECT), mis võimaldab kasutada eraldi read_page vahemälu. Muudatus aitas vähendada Squashfs'i töötamiseks vajaliku mälu suurust.
    • Süsteemikõne statx() on rakendatud STATX_DIO_READ_ALIGN lipp, et määrata vajalik joondamine failist lugemise operatsioonide jaoks.
    • Bcachefs failussüsteemis on värskendatud ja stabiliseeritud kettastruktuuride formaati. Edasi liikuvad formaadi muudatused klassifitseeritakse valikuliseks ning neid rakendatakse valikuliste laiendustena. FS-i integriteedi kontrollimise kiirus on oluliselt suurenenud. Lisaks on Bcachefs-is parandatud lugemisrežiimi toimimist; eemaldatud on probleemid, mis põhjustasid mälu kasutamise pärast vabastamist (use after free); lahendatud on reflink-viidatud probleemid fsck-s; parandatud on tehingu taaskäivitamise käsitsemine.
    • Tagasi on toodud md-linear moodul, mis on mõeldud plokkseadmete ühendamiseks. See moodul kuulutati varasemalt vananenuks ja eemaldati kernelist 6.8, kuid osutus nõutuks, seega on see nüüd taastatud.
    • F2FS ja SQUASHFS failussüsteemid on viidud üle lehekülje folioide (page folios) kasutamisele.
    • OCFS2 ja DLMFS failussüsteemid on viidud üle uue partitsioonide mountimise API kasutamisele.
    • null_blk draiveris on rakendatud "rotational" atribuut, mida saab seadistada configfs kaudu, võimaldades simuleerida töötamist pöörlevate ketaste seadmega, et lihtsustada kernelifunktsioonide testimist.
    • Device mapperis ja moodulites dm-mirror, dm-io, dm-table, dm-linear, dm-stripe ja dm-raid1 on rakendatud aatomaarse kirjutamise tugi.
  • Mälu ja süsteemiteenused
    • Täitmine on lõpetatud draiveri ntsync integreerimise osas, mis implementeerib sümboolset seadme /dev/ntsync ja komplekti sünkroonimisprimitive, mida kasutatakse Windows NT tuumas. Taoliste primitiivide rakendamine tuuma tasemel võimaldab märkimisväärselt suurendada Windowsi mängude jõudlust, mida käivitatakse Wine'i kaudu. Suurenenud jõudlus saavutatakse, elimineerides kasutaja ruumis RPC kasutamisega seotud kulud. Eraldi Linuxi tuuma draiveri loomine on tingitud NT sünkroonimise API korrektse rakendamise probleemidest olemasolevate primitiivide kohal.
    • Lisatud uus DMEM cgroup kontroller, mis võimaldab eristada seadme mälupiirkondi, nagu GPU. DMEM võimaldab luua eraldi cgroup'e erinevatele ülesannetele, mis töötavad GPU-dega, et need saaksid toimida üksteist mõjutamata. Uus funktsioon lahendab probleemi GPU operatsioonide sundlõpetamisega, kui saadaval mälu on otsa saanud, arvestades GPU peegeldatud mälu ja CPU draiverite kasutatavat mälu eraldi cgroup'ides.
    • Tehtud optimeerimised TLB (Translation Lookaside Buffer) vahemälu tühjendamise (flush) operatsiooni skaleeritavuse osas. Lisatud optimeerimised seisnevad teatud andestructuuride viivituses uuendamises konteksti vahetamisel, mis võimaldab parandada jõudlust teatud testide läbimisel.
    • Parandatud MGLRU (Multi-Generational LRU) mehhanismi jõudlust, mis kasutatakse selleks, et määrata, milliseid mälu lehti kasutatakse ja milliseid saab välja tõugata vahefaili.
    • Jätkuvad muudatused Rust-for-Linux haru üleviimisel, mis on seotud Rusti keele kasutamisega teise keelena draiverite ja tuumamoodulite arendamisel (Rusti tugi ei ole vaikimisi aktiveeritud ja ei too kaasa Rusti lisandumist tuuma kohustuslike ehitus sõltuvuste hulka). Pakutakse võimalust kasutada tuuma koodis makrot „derive(CoercePointee)“, mis võimaldab kasutada nutikaid näitajaid trait-objektidega. Tuuma on lisatud Rusti sidurid PCI, platvormide, Open Firmware'i, sümboolsete seadmete ja mõningate sisend-/väljundfunktsioonide jaoks. Greg Kroah-Hartman, kes vastutab Linuxi stabiilse haru toe eest, iseloomustas praegust olekut kui „peaaegu valmis kirjutama tegelikku draiverit Rustis“.
    • Kogumise stsenaariumides on pakutud uus kood, mis genereerib laaditavate moodulite tõrke sümbolite versioone, kasutades nüüd DWARF formaadi tõrketeateid, mitte analüüsides otse lähtekoodi. Muudatus võimaldab rakendada tõrke sümbolite versioonimist Rustis kirjutatud moodulite jaoks. Vana rakendus on samuti tuumas alles, ning generaatori valik tehakse kogumise valikute tasandil.
    • PowerPC arhitektuurile on rakendatud laiskade ülesannete eemaldamise režiimi (PREEMPT_LAZY, lazy preemption) toetust, mis vastab täieliku eemaldamise režiimile («full preemption») reaalajasülesannete (RR/FIFO/DEADLINE) jaoks, kuid edasilükkab tavaliste ülesannete (SCHED_NORMAL) eemaldamise tikandi piirini.
    • Suletud ‘perf’ jõudluse profiilimoodulisse on lisatud AMD protsessorite energia tarbimise loendurite tugi. Lisatud on võimalus töötada süsteemides, millel on kuni 2048 CPU tuuma.
    • On antud võimalus kasutada sysctl parameetrit pid_max protsesside identifikaatorite (ID namespace) nimede ruumides. Parameeter pid_max on mõeldud maksimaalse protsesside identifikaatorite (PID) arvu piiramiseks ja seda saab nüüd kasutada maksimaalselt lubatud protsesside arvu piiramiseks antud nimede ruumis. Parameetri töötlemine on hierarhiline, st piirangud välistes nimede ruumides laienevad sissepääsudesse nimede ruumidesse.
    • Protsessi käivitamiseks execveat süsteemikutses kuvatakse nüüd faili süsteemis /proc käivitatud faili nimi, mitte faili descriptori number.
    • Algkoodi struktuuri (kaustas samples/vfs) on lisatud tööriist mountinfo, mis demonstreerib statsüsteemide ja listmount() süsteemikutsede kasutamist.
    • BPF alamsüsteemis on pakutud uusi funktsioone bpf_local_irq_save() ja bpf_local_irq_restore() kohalike CPU katkestuste ajutiseks väljalülitamiseks. Funktsioone saab kasutada struktuuride teostamiseks, mille töötlemist ei katkestata katkestuste tõttu.
    • Süsteemi kohustuse madvise() raames, kasutades lippude MADV_DONTNEED ja MADV_FREE, on tagatud mälulehekeste tabelite vabastamine, mis on seotud vabastatava aadressivahemikuga, kuna mõnedes olukordades võivad tühjad mälulehed tarbida piisavalt mälu.
    • OpenRISC arhitektuuri jaoks on rakendatud toetust taaskäivituvate järjestuste mehhanismile (rseq, restartable sequences), mis on mõeldud kiireks aatomseks toiminguks, mille puhul katkestamisel teise lõime poolt tühistatakse ja püütakse uuesti täita.
    • Kood on ümber korraldatud, rakendades algoritme CRC32 ja CRC-T10DIF, mis ei ühildu enam krüptoalamsüsteemiga ja kutsutakse otseselt välja raamatukogu liidese kaudu. Muudatus lihtsustas koodi ja parandas selle tõhusust.
    • Asünkroosse sisendi/väljundi io_uring süsteemi on lisatud liides täiendavate metaandmete edastamiseks andmete terviklikkuse kohta lugemise ja kirjutamise operatsioonide käigus.
  • Virtualiseerimine ja turvalisus
    • Süsteemi kõne execveat on lisatud lipp AT_EXECVE_CHECK, mis võimaldab kontrollida faili käitamise lubatavust enne selle tegelikku käivitamist, arvestades samas turvapoliitikaid, ligipääsuõigusi ja aktiivseid LSM-mooduleid. AT_EXECVE_CHECK kombinatsioonis soovitatakse kasutada securebit-lippe SECBIT_EXEC_RESTRICT_FILE ja SECBIT_EXEC_DENY_INTERACTIVE, mida saab kasutada skriptide käitamise piiramiseks tõlgitavate programmeerimiskeelte failide puhul. Lipp SECBIT_EXEC_RESTRICT_FILE nõuab, et lingid ja tõlgid kasutaksid AT_EXECVE_CHECK valikut, et kontrollida käitamise lubatavust, samas kui lipp SECBIT_EXEC_DENY_INTERACTIVE keelab interaktiivsete käskude töötlemise. Muutuse peamine idee on rakendada turvapoliitikaid mitte ainult traditsioonilistele käivitatavatele failidele, vaid ka tekstifailidele skriptide jaoks, mida saab laadida läbi tõlgendi käivitamise (st käitamise keeld saab olla rakendatud mitte ainult „./script.sh” käivitamise ajal, vaid ka „sh script.sh” käsuna).
    • x86 süsteemidel on rakendatud kaitstud ajaloendite toe, mis takistab külalisüsteemi süsteemikellade muutmist hostkeskkonnast. See võimalus on ellu viidud AMD SEV (Secure Encrypted Virtualization) mehhanismi põhjal, mida kasutatakse virtualiseerimissüsteemides kaitsmiseks. virtuaalmasinad või host-süsteemi administraatori sekkumise eest.
    • SELinux’i mandaadi kontrollimise süsteemi on lisatud xperm-reeglite tugi, võimaldades siduda SELinux’i poliitikad teatud ioctl() üleskutsete või netlink sõnumitega.
    • Kerneli moodulite digitaalallkirjastamiseks on vaikimisi kasutusele võetud SHA512 algoritm SHA1 asemel.
    • VirtualBoxi külalisüsteemide draiverites on lisatud ARM64 arhitektuuri tugi.
    • Hüperviisorisse KVM On jätkatud tööd Intel TDX (Trusted Domain Extensions) mehhanismi rakendamise nimel külalisüsteemide mälu krüptimiseks.
    • virtio_blk’is on lisatud vigade taastamise režiimi tugi.
  • Võrgu alamsüsteem
    • RxRPC protokolli rakenduses on nüüd võimalik kasutada suuremaid UDP kaadreid, et suurendada läbilaskevõimet.
    • TCP-le on lisatud RACK-TLP algoritmi tugi pakettide kadumise määramiseks.
    • Uus sysctl parameeter tcp_tw_reuse_delay on lisatud, toimides nimede ruumiga (network namespace) ning võimaldades määrata viivituse, enne kui süsteem saab uuesti kasutada TCP-socketi sulgemise järel vaba võrguporti numbrit.
    • Lisa võimalus valida täpset aega pakkuv teenusepakkuja (PTP), et genereerida ajatempleid PHY ja MAC tasanditel.
    • IPsec puhul on rakendatud kapseldatud IP-pakettide aggregeerimise ja fragmenteerimise mehhanismi toe — IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
    • Võrgusokkide süsteemi on lisatud toe prioriteedi edastamisele (SO_PRIORITY) juhtivate sõnumite (cmsg - control messages) kujul. Võrgusokkide jaoks on lisatud valik SO_RCVPRIORITY, mis võimaldab funktsiooni recvmsg() kaudu edastada soketi prioriteedi teavet.
  • Seadmed
    • Lisa draiver amdxdna AMD CPU-sse integreeritud NPU (Neural Processing Unit) kiirenditele, mis põhinevad XDNA arhitektuuril, et kiirendada masinõppega seotud operatsioone. XDNA arhitektuuril põhinevad NPU-d on saadaval AMD Ryzen 7040 ja 8040 seeriate, AMD Alveo V70 kiirendite ning AMD Versal SoC juurde.
    • I915 draiverisse on lisatud uute GPU-de identifikaatorid, rakendatud HDMI algseadistamise tõrke töötleja ning parandatud GPU mootori taaskäivitamise usaldusväärsust Haswelli ja vanemates süsteemides.
    • Jätkub Intel Xe arhitektuuriga GPU-de drm-draiveri (Direct Rendering Manager) Xe arendamine, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest.
    • Nouveau draiverisse on lisatud võimalus edastada GSP-RM logide puhvrit läbi debugfs.
    • AMDGPU draiverisse on rakendatud DRM panic mehhanismi tugi, mis näitab sarnast "sinise surmaekraani" tõrke korral. Jätkub ettevalmistus tulevaste Radeon RX 9000 seeria graafikakaartide toetamiseks, mis põhinevad RDNA4 arhitektuuril. Uuendatud on DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS ja ISP tugi.
    • DRM draiverisse msm (Qualcomm Adreno GPU) on lisatud Qualcomm SM6150 (QCS615) platvormi tugi.
    • DRM draiverisse panfrost on lisatud MediaTek MT8188 SoC tugi, mille GPU on Mali-G57.
    • DRM draiverisse vc4 on lisatud Broadcom BCM2712 SoC (Raspberry Pi 5) tugi.
    • Vfio draiverisse nvgrace-gpu on lisatud toetus NVIDIA Grace Blackwell 200 kiipidele.
    • Mugavusse on lisatud Intel THC (Touch Host Controller) draiver, mida kasutatakse mõningate sülearvutite puutetundlike ekraanide ja puuteplaatidega suhtlemiseks. Lisatud on tugi PCI-liidese Wacom seadmetele. Lisatud on tugi QH Electronics mängukontrolleritele.
    • Lisatud on ARM-plaatide, SoC ja seadmete tugi: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, Microchip SAMA7D65, Renesas R-Car V4H ES3.0, Renesas RZ/G3E. Lisatud on RISC-V arhitektuuril põhineva SoC SpacemiT K1 tugi.
    • ALSA helialusüsteemis on MIDI 2.0 jaoks laiendatud rawmidi ja sekkuja API-d. Helikaardi pingestatud kompressioonitöötluse API-sse on lisatud tugi ASRC (Asynchronous Sample Rate Conversion).
    • Lisatud on toetavad helisüsteemid seadmetele Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 ja 18i20. Lisatud on tugi SteelSeries Arctis 9 juhtmevabade kõrvaklappide jaoks.

Allikas: opennet.ru

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