Linuxi 6.14 tuuma väljalaskmine

Kaks kuud kestnud arendustööde järel esitles Linus Torvalds Linuxi 6.14 tuuma väljalaskmist. Kõige silmapaistvamad muudatused hõlmavad Windows NT sünkroniseerimise primitööriistadega ntsync draiverit, Btrfs RAID1 lugemisoperatsioonide tasakaalu seadistust, XFS reaalajas reflink'i toetust, võimalust mitte-vahemällustatud puhverdatud sisendi/väljundi, GPU mälu piiramise dmem cgroup'i, io_uring'i kaasamist FUSE's, atribuutide delegeerimist NFS's, aatomse kirjutamise toetust seadmete kaardistamisel, sümboolsete linkide kiirendamist, skriptide täitmise haldamist, Qualcomm Snapdragon 8 Elite kiipide toetust ja AMD NPU draiverit.

Uude versioonisse on sisse võetud 12115 parandust 1984 arendajalt, plaastri suurus on 39 MB (muudatused mõjutavad 10170 faili, lisatud on 531586 koodirida, eemaldatud 235999 rida). Eelmises väljalaskes oli 14172 parandust 2086 arendajalt, plaastri suurus oli 46 MB. Umbes 41% kõikidest 6.14 esitatud muudatustest on seotud seadme draiveritega, umbes 13% muudatustest on seotud praeguste riistvaraarhitektuuride koodeksiga, 14% on seotud võrgu protokolliga, 7% -ga failisüsteemidest ja 4% tuuma sisestes alamsüsteemides.

Peamised uuendused tuumas 6.14:

  • Diskisüsteem, sisend/väljund ja failisüsteemid
    • Btrfs failisüsteemis on nüüd toetatud uusi lugemiste tasakaalustamise meetodeid RAID1 massiivi kuuluvate salvestite vahel. Lisaks varem kehtinud koormuse jaotamisele protsessi identifikaatorite (pid) alusel on uues versioonis pakutud kolme uut tasakaalustamismoodust: „rotation“ (koormuse ühtlane jaotamine kõikide salvestite vahel, režiim on vaikimisi sisse lülitatud); „latency“ (jaotus arvestades viivitusi, võib olla kasulik rike või ebastabiilse töö korral); devid (käega juhtimine). Tasakaalu režiimi muutmiseks on lisatud liides „/sys/fs/btrfs//read_policy“. Teiste Btrfs muudatuste seas on rakendatud ioctl FS_IOC_READ_VERITY_METADATA.
    • Lisatud on mittevahemäluga puhverdamise režiim, kus andmed eemaldatakse lehe vahemälust kohe pärast nende lugemis- või kirjutamistoimingute lõpetamist. See muudatus võib olla kasulik väga kiirete salvestusseadmete kasutamisel, mille andmete vahemällu salvestamine on ülearune. Selliste seadmete puhul võimaldab uus režiim vältida tarbetut mälukasutust lehe vahemälus, kasutamata keerulist otse sisendi/väljundi (Direct I/O) API-d.
    • Fsnotify, faili süsteemi muudatuste jälgimise mehhanism, on saanud uue FS_PRE_ACCESS sündmuse, mis genereeritakse enne faili sisu juurde pääsemist. Sündmust töödeldakse sünkroonselt, st tuuma saadab sündmuse ja ootab vastust. Kui vastus on saadud, siis teostatakse toiming ja kui toimub viga, tagastab süsteemikõne veakoodi kasutaja ruumi. FS_PRE_ACCESS võimaldab kasutaja ruumi protsessidel näiteks faili täitmist korraldada, kui aeglases salvestuses andmed valmis on.
    • FUSE alam-süsteemi, mis võimaldab luua faili süsteemide elluviimise kasutaja ruumis, on lisatud tugi andmevahetuseks tuuma ja kasutaja ruumi töötleja vahel io_uring sisendi/väljundi mehhanismi abil. See muudatus parandab FUSE jõudlust, vähendades konteksti vahetusi tuuma ja kasutaja ruumi vahel.
    • XFS faili süsteemi on lisatud tagasikaardistamise (rmap, reverse-mapping) tugi, mis töötab ettenähtud viivitustega («realtime device»). Tagasikaardistamine võimaldab kindlaks teha, millise faili salvestamiseks kasutatakse antud plokki salvestusseadmest. Rmap abil on XFS realtime-režiimis rakendatud reflink operatsiooni tugi, mis võimaldab luua failide koopiaid failide metaandmete kloonimise ja juba olemasolevatele andmetele viite loomise teel, ilma et neid tegelikult kopeeritaks.
    • VFS-is on rakendatud sümboolsete linkide suuruse vahemälumine, mis on võimaldanud kiirendada readlink operatsiooni täitmist 1,5% võrra (testis koos /initrd.img ext4-s). Vahemälu on aktiveeritud ext4 ja tmpfs failisüsteemides.
    • NFSv4.2 versiooni on lisatud failiattribuutide delegatsiooni tugi, mis võimaldab hallata selliseid failiattribuute nagu muutmisaeg (mtime) NFS-i kliendi poolel, ilma et oleks vaja muudatusi serverisse edastada. Samuti on NFS-is paranenud «LOCALIO» protokolli tugi, mis võimaldab määrata, kas NFS-i klient ja server asuvad samal hostil, et rakendada vastavaid optimeerimisi, näiteks otse sisendi/väljundi (Direct I/O) kasutamine kliendi poolt.
    • Kasvatanud on NETFS, CIFS ja AFS (Andrew File System) failisüsteemide lugemisoperatsioonide jõudlus.
    • Squashfs-is on sisse lülitatud otseblokksisendi režiim (SQUASHFS_FILE_DIRECT), mis võimaldab vältida eraldi read_page vahemälu kasutamist. Muudatus on vähendanud Squashfs-iga töötamiseks vajaliku mälu suurust.
    • Statx() süsteemi kutses on rakendatud STATX_DIO_READ_ALIGN lipp, mis määrab nõutava ühtluse failist lugemise operatsioonide jaoks.
    • Bcachefs failisüsteemis on uuendatud ja stabiliseeritud kettastruktuuride formaat. Kõik edasised formaadi muutused kuuluvad volitusteta kategooriasse ja viiakse läbi valikuliste lisanditena. Failisüsteemi terviklikkuse kontrollimise kiirus on oluliselt suurenenud. Lisaks on Bcachefs-is paranenud töö ainult lugemisrežiimis; lahendatud on probleemid, mis viisid mälu juurde pääsemiseni pärast selle vabastamist (use after free); lahendatud on reflink-ikutajatega seotud probleemid fsck-is; parandatud on tehingute taaskäivitamise käsitlemine.
    • Return to md-linear moodul, mis on mõeldud blokiseadmestike ühendamiseks. See moodul kuulutati varem vananeks ja eemaldati tuumast 6.8, kuid tundub, et see oli nõutud ja seetõttu taastati.
    • F2FS ja SQUASHFS failisüsteemid on üle viidud mälulehe folio kasutamisele.
    • OCFS2 ja DLMFS failisüsteemid on üle viidud uue partitsioonide mountimise API kasutamisele.
    • Null_blk draiveris on rakendatud «rotational» atribuut, mis määratakse läbi configfs ja simuleerib pöörlevate kettaseadmete töö jäljendamiseks, et lihtsustada tuuma funktsioonide testimist.
    • Seadme kaardistamise süsteemis ja moodulites dm-mirror, dm-io, dm-table, dm-linear, dm-stripe ja dm-raid1 on rakendatud aatomite kirjutamise tugi.
  • Mälu ja süsteemiteenused
    • Nsynci draiveri tuumaku sees on lõpule viidud, rakendades sümboolset seadet /dev/ntsync ja komplekti sünkroniseerimisprimitive, mida kasutatakse Windows NT-i tuumas. Sarnaste primitiivide rakendamine tuuma tasandil võimaldab oluliselt suurendada Windowsi mängude jõudlust, mida käivitatakse Wine'i kaudu. Jõudlus suureneb tänu RPC kasutamisest tingitud kulude kaotamisele kasutaja ruumis. Eraldi draiveri loomise vajadus Linuxi tuumas tuleneb API sünkroniseerimise korrektse rakendamise keerukusest olemasolevate primitiivide peal.
    • Uus DMEM cgroup kontroller on lisatud seadmete mälu piirkondade eraldi arvepidamiseks, näiteks GPU-de puhul. DMEM võimaldab luua eraldi cgroup-e erinevate GPU-d kasutavate ülesannete jaoks, et need saaksid töötada üksteist segamata. Uus funktsioon lahendab probleemi GPU-de operatsioonide sunnitud lõpetamisega, kui saadaval olev mälu on ammendatud, arvestades eraldi cgroup-des GPU peegeldatud mälu ja CPU draiverite kasutatud mälu.
    • Optimeerimine TLB (Translation Lookaside Buffer) vahemälu tühjendamise (flush) operatsioonide skaaleerimisel on viidud ellu, et kiirendada virtuaalsete aadresside füüsilisteks aadressideks teisendamist. Lisatud optimeerimised seisnevad teatud andmestruktuuride edasilükkamises konteksti vahetamise ajal, mis võimaldab suurendada jõudlust teatud testide läbimise korral.
    • MGLRU (Multi-Generational LRU) mehhanismi jõudlust on suurendatud, mida kasutatakse, et määrata, millised mälu lehed on kasutusel ja millised saab sõnadesse kirjutada.
    • Jätkatakse Rust-for-Linux haru muudatuste üleviimist, mis on seotud Rusti keele kasutamisega teise keele näol draiverite ja täiendmodulite arendamisel (Rusti tugi ei ole vaikimisi aktiveeritud ja see ei too kaasa Rusti kohustuslikku kaasamist tuuma koostamis sõltuvustesse). Kerneli koodis on võimalus kasutada makrot "derive(CoercePointee)", mis võimaldab nutikaid pointereid trait-objektide puhul. Kerneli koostisse on lisatud Rusti sidumised PCI, platvormide, Open Firmware'i, sümboolsete seadmete ja teatud sisendi/väljundi funktsioonide jaoks. Greg Kroah-Hartman, kes on Linuxi tuuma stabiilse haru toe eest vastutav, iseloomustas praegust seisundit kui "peaaegu valmis reaalse Rusti draiveri kirjutamiseks."
    • Kogumisskeemides on ette nähtud uus kood laaditavate moodulite silumis sümbolite versioonide genereerimiseks, mis nüüd kasutab teavet DWARF vormingu silumisfailidest, mitte ei analüüsi otse lähtekoodi. Muudatus võimaldab rakendada silumis sümbolite versioonimist Rustis kirjutatud moodulite jaoks. Vana rakendus on samuti tuumas alles, valik generaatori osas tehakse kogumise valikute tasemel.
    • PowerPC arhitektuurile on rakendatud laiskade ülesannete vältimise režiimi (PREEMPT_LAZY), mis vastab täis vältimise režiimile (full preemption) reaalajasülesannete (RR/FIFO/DEADLINE) jaoks, kuid viivitab tavalisete ülesannete (SCHED_NORMAL) vältimise piigiga.
    • Jõudluse profileerimise alamsüsteemi "perf" on lisatud AMD protsessorite energiatarbimise loendurite tugi. Lisa võimalus töötada süsteemides, mis sisaldavad kuni 2048 CPU tuuma.
    • Tasub võimalus kasutada sysctl parameetrit pid_max protsessi identifikaatorite nimedega (ID namespace). Parameeter pid_max on mõeldud protsessi identifikaatorite (PID) maksimaalse väärtuse piiramiseks ning seda saab nüüd kasutada määratud nimespetsiifiliste protsesside maksimaalse arvu piiramiseks. Parameetri töötlemine toimub hierarhiliselt, st piirangud väliste nimede ruumides laienevad sisemistele nimedele.
    • Kui kasutate execveat süsteemikõne käivitamiseks, kuvatakse nüüd /proc failisüsteemis käivitatud faili nimi, mitte faili deskriptorinumber.
    • Tuuma allikakoodis (kaustas samples/vfs) on lisatud mountinfo utiliit, mis demonstreerib statmount() ja listmount() süsteemikõnede kasutamist.
    • BPF alamsüsteemis on ette pandud uued funktsioonid bpf_local_irq_save() ja bpf_local_irq_restore(), mis võimaldavad lokaalse CPU katkestuste ajutist keelamist. Funktsioone saab kasutada struktuuride rakendamiseks, mille töötlemist katkestused ei peata.
    • Süsteemikõnes madvise() tagab, et MADV_DONTNEED ja MADV_FREE lippude kasutamisel vabastatakse mälulehe tabelid, mis on seotud vabastatava aadressivahemikuga, kuna mõnel juhul võivad tühjad mälulehed võtta piisavalt mälu.
    • OpenRISC arhitektuurile on rakendatud toetust uuendatavate järjestuste (rseq, restartable sequences) mehhanismile, mis on mõeldud kiireks aatomseks toimingute täitmiseks, mis katkestamise korral teise lõime poolt puhastatakse ja katsetatakse uuesti.
    • Kood on reorganiseeritud, rakendades CRC32 ja CRC-T10DIF algoritme, mis ei ühti enam krüpto alamsüsteemiga ja kutsutakse otse välja raamatukogu liidest. Muudatus on võimaldanud koodi lihtsustada ja selle tõhusust suurendada.
    • Asünkroonse sisendi/väljundi io_uring süsteemi on lisatud liides täiendavate metainformatsiooni edastamiseks integriteedi kohta lugemis- ja kirjutamisoperatsioonide täitmisel.
  • Virtualiseerimine ja turvalisus
    • Süsteemikutsesse execveat on lisatud lipp AT_EXECVE_CHECK, mis võimaldab kontrollida faili käitamise lubatavust selle faktilisest käivitamisest tulenevalt, arvestades samas turvapoliitikaid, juurdepääsuõigusi ja aktiivseid LSM-mooduleid. AT_EXECVE_CHECKi kasutamiseks on soovitatud securebit-lippe SECBIT_EXEC_RESTRICT_FILE ja SECBIT_EXEC_DENY_INTERACTIVE, mida saab kasutada skriptifailide käitamise piiramiseks tõlgendatavates programmeerimiskeeltes. Lipp SECBIT_EXEC_RESTRICT_FILE käsib kogumoodulitel ja tõlgendajatel kasutada valikut AT_EXECVE_CHECK käitamise lubatavuse kontrollimiseks, samas kui lipp SECBIT_EXEC_DENY_INTERACTIVE keelab interaktiivsete käskude töötlemise. Muutuse põhiline idee on rakendada turvapoliitikaid mitte ainult traditsioonilistele käideldavatele failidele, vaid ka tekstifailidele skriptidega, mida saab laadida tõlgendaja käivitamise kaudu (st käitamise keeld saab rakenduda mitte ainult "./script.sh" käivitamisel vaid ka "sh script.sh" vormis).
    • x86 süsteemides on rakendatud kaitstud ajaloendurite tugi külalisüsteemide jaoks, mis ei luba hostikeskkonnast külalisüsteemi süsteemikellasid muuta. See võimalus on rakendatud AMD SEV (Secure Encrypted Virtualization) mehhanismi alusel, mida kasutatakse virtualiseerimissüsteemides kaitsmiseks. virtuaalmasinate võõrustajate või host-süsteemi administraatori sekkumise eest.
    • SELinuxi mandsitemperatuuri kontrolli süsteemi on lisatud tugi xperm-reeglitele, mis võimaldavad siduda SELinuxi poliitikaid teatud ioctl() kõnede või netlinki sõnumitega.
    • Tuuma moodulite digitaalse allkirjastamise kinnitamiseks on vaikimisi kasutusel 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üpteerimiseks.
    • virtio_blk'is on lisatud tugi veakorrektiivrežiimi jaoks.
  • Võrgusüsteem
    • RxRPC protokolli rakenduses on saadud võimalus kasutada suuri UDP pakette läbilaskevõime suurendamiseks.
    • TCP-le on lisatud tugi RACK-TLP algoritmi jaoks pakettide kadumise määramiseks.
    • Lisatud uus sysctl tcp_tw_reuse_delay parameeter, mis toimib nimekirja (network namespace) konteksti raames ja võimaldab määrata viivituse, enne kui süsteem saab uuesti kasutada võrguportide numbreid pärast TCP-soketi sulgemist.
    • Lisatud võimalus valida täpset ajateenust pakkuja (PTP) ajatempli genereerimiseks PHY ja MAC tasanditel.
    • IPsec-i jaoks on rakendatud kapseldatud IP-pakettide aggregeerimise ja fragmenteerimise mehhanismi toetus — IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
    • Võrgu soketite süsteemi on lisatud toetus prioriteedi (SO_PRIORITY) edastamiseks juhtmessaside (cmsg — kontrollsõnumid) kujul. Võrgusoketitele on lisatud valik SO_RCVPRIORITY, mis lubab funktsioonis recvmsg() edastada soketi prioriteedi teavet.
  • Varustus
    • Lisatud amdxdna draiver integreeritud CPU AMD kiirendite NPU (Neural Processing Unit) jaoks, mis põhineb XDNA arhitektuuril ning on mõeldud masinõppe seotud toimingute kiirendamiseks. XDNA arhitektuuri põhised NPU-d on saadaval 7040 ja 8040 seeria AMD Ryzen protsessorites, AMD Alveo V70 kiirendites ja SoC AMD Versal.
    • i915 draiverisse on lisatud uute GPU identifikaatorite toetus, HDMI initsialiseerimise tõrgete töötlemine ja GPU mootorite ümberlülitamise usaldusväärsuse tõus Haswelli ja vanemates süsteemides.
    • Tööd jätkatakse drm-draiveri (Direct Rendering Manager) Xe kallal, mis on mõeldud Intel Xe arhitektuuril põhinevatele GPU-dele, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest.
    • Nouveau draiverisse on lisatud GSP-RM logi puhverdate edastamise võimalus läbi debugfs.
    • AMDGPU draiverisse on rakendatud DRM panic mehhanismi toetus, mis kuvab „sinise ekraani” sarnase tõrkeekraani. Jätkatakse ettevalmistusi tulevaste Radeon RX 9000 graafikakaartide toeks, mis põhinevad RDNA4 arhitektuuril. Toetust on uuendatud 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.
    • DRM-draiverisse msm (Qualcomm Adreno GPU) on lisatud toetust Qualcomm SM6150 (QCS615) platvormile.
    • DRM-draiverisse panfrost on lisatud toetust SoC MediaTek MT8188 koos GPU Mali-G57-ga.
    • DRM-draiverisse vc4 on lisatud toetust SoC Broadcom BCM2712 (Raspberry Pi 5).
    • vfio-draiverisse nvgrace-gpu on lisatud toetust NVIDIA Grace Blackwell 200 kiipidele.
    • Komplekti kuulub Intel THC (Touch Host Controller) draiver, mida kasutatakse puutetundlike ekraanide ja puuteplaatidega suhtlemiseks mõnede sülearvutitega. Lisatud on Wacom seadmete tugi PCI liidese kaudu. Lisatud on tugi QH Electronics mängu juhtimisseadmetele.
    • Lisatud on ARM-plokkide, SoC-de 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 SpacemiT K1 SoC tugi RISC-V arhitektuuril.
    • ALSA heliallisüsteemis on MIDI 2.0 jaoks laienenud rawmidi ja sequencer API-d. Helikaardi poolsete kokkusurutud operatsioonide väljaviimise API-sse on lisatud ASRC (Asün krooniline näidustuse konversioon) tugi.
    • Lisatud on Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4. genereerimise 16i16, 18i16 ja 18i20 helisüsteemide tugi. Lisatud on ka SteelSeries Arctis 9 juhtmevabade kõrvaklappide tugi.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster