Pärast kahte kuud arendusteline Linus Torvalds esitles Linux 6.14 tuum on välja antud. Kõige silmapaistvamad muudatused: ntsync draiver Windows NT sünkroniseerimisprimitivi, Btrfs RAID1 lugemisoperatsioonide tasakaalustamise seadistamine, reflink toe lisamine XFS reaalajas, võimalus mittevahemälu puhverdatud sisendi/väljundi, dmem cgroup GPU mälu piiramiseks, io_uring kasutamine FUSE'is, attribuutide delegeerimine NFS-is, seadmejuhtme atomaarne kirjutamise tugi, sümboolsete linkide kiirendamine, skriptide täitmise juhtimise haldamine, Qualcomm Snapdragon 8 Elite kiipide tugi, AMD NPU draiver.
Uude versiooni on lisatud 12115 parandust 1984 arendajalt, plaastri suurus on 39 MB (muudatused puudutasid 10170 faili, lisatud on 531586 koodirida, eemaldatud 235999 rida). Eelmises väljaandes oli 14172 parandust 2086 arendajalt, plaastri suurus oli 46 MB. Umbes 41% kõigist 6.14 versioonis olevatest muudatustest on seotud seadme draiveritega, umbes 13% muudatustest puudutavad riistvaraarhitektuuride spetsiifilise koodi värskendamist, 14% on seotud võrgustiku virnastamisega, 7% faili süsteemidega ja 4% tuuma sisemiste alamsüsteemidega.
- Disski alamsüsteem, sisend/väljund ja failisüsteemid
- Btrfs failisüsteemis ilmus uute lugemisoperatsioonide tasakaalustamise meetodite tugi RAID1 massiivi kuuluvate seadmete vahel. Lisaks varem toimivale koormuse jaotamisele protsessi identifikaatorite (pid) alusel, on uues versioonis pakutud kolme uut tasakaalustamise režiimi: 'rotation' (ühtlane koormuse jaotamine kõigi seadmete vahel, režiim on vaikimisi sisse lülitatud); 'latency' (koormuse jaotamine latentsuse alusel, võib olla kasulik tõrgete või ebastabiilse seadme töö korral); devid (käsi juhtimine). Tasakaalu muutmiseks lisatud liidesele /sys/fs/btrfs//read_policy. Btrfs-i teistes muudatustes - teostamine ioctl FS_IOC_READ_VERITY_METADATA.
- Lisatud mittevahemälu puhverdatud sisendi/väljundi režiim, kus andmed eemaldatakse leheküljekatavast vahemälust kohe pärast lugemise või salvestamise operatsioonide lõpetamist. Muudatus võib olla kasulik väga kiirete salvestusseadmete kasutamisel, kus operatsioonide vahemällu hoiaamine on üleliigne. Selliste seadmete jaoks uus režiim võimaldab vältida leheküljekavade kasutamise tõttu mälu liigset raiskamist, ilma et oleks vaja kasutada keerulist otsetsükkel (Direct I/O) API-d.
- fsnotify's, faili süsteemi muutuste jälgimise mehhanismis, lisatud uus sündmus FS_PRE_ACCESS, mis genereeritakse enne faili sisu juurde pääsemist. Sündmust töödeldakse sünkroonselt, s.t. tuum saadab sündmuse ja ootab vastuse saamist. Kui vastus on saadud - operatsioon täidetakse, kui esines tõrge - süsteemikutsumine tagastab veakoodi kasutajaruumi. FS_PRE_ACCESS-i abil saab kasutajaruumi protsess näiteks korraldada faili täitmise, kui aeglases salvestuses andmed on valmis.
- FUSE alamsüsteemi, mis võimaldab luua faili süsteemide teostusi kasutajaruumi, lisati toetamine andmevahetus tuuma ja kasutajaruumi töötleja vahel io_uring sisendi/väljastamise mehhanismi kasutades. Muudatus võimaldab FUSE-i tootlikkust suurendada, vähendades konteksti lülitusi tuuma ja kasutajaruumi vahel.
- XFS faili süsteemi on lisatud võimalus tagasipööramise kaardistamise (rmap, reverse-mapping) tugi ettearvatavate latentsusaja režiimis ('realtime device'). Tagasipööramise kaardistamine võimaldab määrata, millise faili hoidmiseks kasutatakse kindlat bloki salvestusseadmest. rmap-i abil on XFS-is reaalajas režiimi jaoks rakendatud reflink operatsiooni tugi, mis võimaldab luua faile kloonimise teel, kopeerides faili metaandmed ja luues lingi juba olemasolevatele andmetele ilma need tegelikult kopeerimata.
- VFS-s on rakendatud sümboolsete linkide suuruse vahemälu, mis võimaldas kiirus 1,5% võrra suurendada readlink'i töötlust (katse puhul /initrd.img ext4-s). Vahemälu on sisse lülitatud FS ext4 ja tmpfs.
- NFSv4.2 rakendusse on lisatud tugi failide atribuutide delegeerimisele, mis võimaldab hallata selliseid faili atribuutide, näiteks muutmise aega (mtime), NFS-klientide küljel ilma vajaduseta muudatusi serverile edastada. NFS-ile on ka täiustatud protokolli 'LOCALIO', mis võimaldab kindlaks teha, kas NFS klient ja server asuvad samas hostis, et rakendada sobivaid optimeerimisi, nagu kliendi kasutamine otsetsüklit (Direct I/O).
- Parandatud lugemise toimingute jõudlust NETFS, CIFS ja AFS (Andrew File System) failisüsteemides.
- Squashfs-s seal otse laadimise režiim leheküljekavasse (SQUASHFS_FILE_DIRECT), mis võimaldab vältida eraldi read_page vahemälu. Muudatus aitas vähendada Squashfs-i töö ajal tarbitud mälu suurust.
- süsteemikutses statx() rakendatud STATX_DIO_READ_ALIGN lipp, et kavatud mappimiseks failist lugemise operatsioonide jaoks.
- Failisüsteem Bcachefs uuendatud ja stabiliseeritud ketasstruktuuride formaat. Edasised muudatused formaadi osas loetakse mitte kohustuslikeks ning need rakendatakse valikulisena. Failisüsteemi integriteedi kontrollimise kiirus on märkimisväärselt paranenud. Lisaks on Bcachefs parandanud lugemisrežiimis toimetulekut, kõrvaldatud probleemid, mis põhjustasid mälu juurde pääsemise pärast selle vabastamist (use after free); lahendatud on reflink-öviitamise probleemid fsck-is; parendatud on tehingute taaskäivitamise töötlemist.
- Tagasi toodud md-linear moodul, mis on mõeldud bloki seadmete ühendamiseks. See moodul kuulutati varem aegunuks ja eemaldati kernelist 6.8, kuid osutus nõutuks ja seetõttu on see nüüd taastatud.
- Failisüsteemid F2FS ja SQUASHFS on üle viidud mälulehtede foliantide (lehe folios).
- Draiveris null_blk rakendatud atribuut „rotational“, mis on seatud läbi configfs ja võimaldab simuleerida töötamist pöörlevate ketaste põhjal, et lihtsustada kerneli funktsioonide testimist.
- Seadmestiku kaardistamise süsteemis ja moodulites dm-mirror, dm-io, dm-table, dm-linear, dm-stripe ja dm-raid1 on rakendatud tugiteenuse atomaarne kirjutamine.
- Mälu ja süsteemiteenused
- Lõpetatud draiveri integreerimine tuumasse ntsync, mis rakendab sümboolset seadet /dev/ntsync ja primitiive sünkroniseerimiseks, mida kasutatakse Windows NT tuumas. Selliste primitiivide rakendamine tuuma tasemel võimaldab oluliselt parandada Windowsi mängude jõudlust, mida käitatakse läbi Wine. Jõudluse tõus saavutatakse, elimineerides RPC kasutamisega seotud kulud kasutajaruumi. Eraldi draiveri loomine Linuxi tuumale selgitab, miks NT sünkroniseerimise API korrektne rakendamine olemasolevate primitiivide peal oli keeruline.
- Uus cgroup kontroller DMEM , et eraldi arvestada seadmete, nagu GPU, mälupiirkondi. DMEM võimaldab luua eraldi cgroup'e erinevatele ülesannetele, mis töötavad GPU-dega, et need saaksid töötada üksteist mõjutamata. Uus võimalus lahendab GPU operatsioonide sundlõpetamise probleemi, kui saadaval olev mälu on otsa saanud, tänu GPU kajastatud mälule ja CPU mälu kasutamisele, mis on eraldi cgroup'ides.
- Tõhususe suurem korrektuur TLB (Translation Lookaside Buffer) tühjendamise operatsiooni osas, mida rakendatakse virtuaalsete aadresside füüsilisteks muutmise kiirendamiseks. Lisatud optimiseerimised on seotud teatud andmestruktuuride viivitusega uuendamisega konteksti vahetamise ajal, mis aitab suurendada jõudlust teatud testide sooritamisel.
- Parandatud MGLRU mehhanismi jõudlus (Multi-Generational LRU), mis määrab, milliseid mälu lehti kasutatakse ja milliseid võib pagasisse tõugata. , seostatuna Rusti keele kasutamisega kui teise keelega draiverite ja tuumamoodulite arendamisel (Rust'i tugi ei ole vaikimisi aktiivne ja ei muuda Rust'i kohustuslikuks seadistamiseks tuuma sõltuvuseks). Tuuma koodis on võimalus kasutada makrot „
- Jätkub muudatuste üleviimine harust Rust-for-Linuxderive(CoercePointee)“, mis võimaldab kasutada nutikaid viidikuid, millel on trait-objektid. Tuuma kuulubRust'i mähised on lisatud platvormidele PCI, Open Firmware, sümboolsed seadmed, ja mõningad sisendi / väljundi funktsioonid . Greg Kroah-Hartman, kes vastutab Linuxi tuuma stabiilse haru toe eest,iseloomustas praegust seisu kui „peaaegu valmis kirjutama tõelist draiverit Rust'is.“ Kogumise stsenaariumites
- uus kood, mis genereerib versioone laaditavate moodulite silumis sümbolitest, mis kasutab nüüd teavet DWARF formaadis silumise kirjete kohta, mitte ei analüüsi lähtekoodi otse. Muudatus võimaldab rakendada silumis sümbolite versioonimist Rust keeles kirjutatud moodulitele. Vanem teostus on samuti kernelis alles, valik generaatori osas toimub kogumisvalikute tasemel. pakutud PowerPC arhitektuurile
- tugi laiskade ülesannete välja tõukamise režiimil (PREEMPT_LAZY), mis vastab täieliku välja tõukamise režiimile („full preemption“) reaalajas ülesannete (RR / FIFO / DEADLINE) jaoks, kuid lükkab tavaliste ülesannete (SCHED_NORMAL) tõukamise edasi kuni tiksooni piirini. on rakendatud Jõudluse profiilimoodulis perf
- tugi AMD protsessorite energiatarbimise arvestamiseks. on lisatud võime töötada süsteemidel, mis sisaldavad kuni 2048 CPU tuuma. Lisatud võimalus töötada süsteemides, mis sisaldavad kuni 2048 CPU tuuma.
- Soodustatud võimalus kasutada sysctl parameetrit pid_max koos protsesside tuvastamise nimede (ID namespace) ruumidega. Parameeter pid_max on ette nähtud protsesside tuvastamise (PID) maksimaalse väärtuse piiramiseks ja seda saab nüüd kasutada kaasneva prosesiu arvu maksimaalse piiri määramiseks määratud kaldpinnas. Parameetri käsitlemine toimub hierarhiliselt, s.t. piirangud välistes nimedruumides kehtivad ka sissekarditud nimedruumide kohta.
- Kasutades süsteemi kutset protsessi käivitamiseks execveat kuvatakse nüüd failisüsteemis /proc käivitatud faili nimi, mitte faili deskriptorite number.
- Tuuma lähtekoodi (kaustas samples) on lisatud utiliit mountinfo, mis demonstreerib süsteemi kutsete statmount() ja listmount() kasutamist.
- BPF-alamsüsteemis pakutakse uued funktsioonid bpf_local_irq_save() ja bpf_local_irq_restore() kohalike CPU katkestuste ajutiseks keelamiseks. Funktsioone saab rakendada struktuuride tegemiseks, mille töötlemist katkestused ei peata.
- süsteemi kutse madvise() flaamide MADV_DONTNEED ja MADV_FREE kasutamise puhul tagatud mälulehe tabelite vabastamine, mis on seotud vabastatava aadressivahemikuga, kuna mõnes olukorras võivad tühjad mälulehed tarbida piisavalt palju mälu.
- OpenRISC arhitektuurile on rakendatud taaskäivitatavate järjestuste (rseq) mehanismi toetamine, taaskäivitatavad järjestused, mis on mõeldud kiireks atomaarseks toimingute täitmiseks, mis katkestamise korral teise niidi poolt tühistatakse ja proovimiseks kasutatakse täitmist uuesti.
- 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ünkroonse sisendi/väljundi süsteemis io_uring lisatud liidese, mis edastab täiendavaid metaandmeid terviklikkuse kohta lugemise ja kirjutamise toimingute täitmisel.
- Virtualiseerimine ja turvalisus
- Süsteemi kutses execveat lisatud lipp AT_EXECVE_CHECK, mis võimaldab faili teostatavuse kontrollimist ilma selle tegeliku käivitamiseta, kuid arvesse võttes turvapoliitikaid, ligipääsuõigusi ja aktiivseid LSM-mooduleid. Koos AT_EXECVE_CHECK-ga on ette pandud securebit-lipud SECBIT_EXEC_RESTRICT_FILE ja SECBIT_EXEC_DENY_INTERACTIVE, mida saab kasutada skriptifailide täitmise piiramiseks interpreteeritavatel programmeerimiskeeltel. Lipp SECBIT_EXEC_RESTRICT_FILE käsib lingijatel ja interpreteerimisel kasutada AT_EXECVE_CHECK valikut teostatavuse kontrollimiseks, samas kui SECBIT_EXEC_DENY_INTERACTIVE luba keelab interaktiivsete käskude töötlemise. Peamine idee on muuta turvapoliitikate rakendamise võimalusi mitte ainult traditsiooniliste teostatavate failide, vaid ka tekstifailide jaoks, mis sisaldavad skripte, mille saab laadida interpreteerija käivitamise kaudu (st keelatud täitmine saab teostada mitte ainult käivitades «./script.sh», vaid ka käivitades «sh script.sh»). faili käivitamise lubatavus ilma selle tegeliku käivitamiseta, kuid arvesse võttes turvapoliitikaid, juurdepääsuõigusi ja aktiivseid LSM-mooduleid. AT_EXECVE_CHECK-a koos kasutamiseks on ette pandud securebit-lipud SECBIT_EXEC_RESTRICT_FILE ja SECBIT_EXEC_DENY_INTERACTIVE, mida saab kasutada skriptiga failide käivitamise piiramiseks interpreteeritavatel programmeerimiskeeltel. Lipp SECBIT_EXEC_RESTRICT_FILE kohustab linkereid ja interpretereid kasutama valikut AT_EXECVE_CHECK käivitamise lubatavuse kontrollimiseks, samas kui lipp SECBIT_EXEC_DENY_INTERACTIVE keelab interaktiivsete käsu töötlemise. Peamine idee muutustes on turvapoliitikate rakendamise võimaluste laiendamine mitte ainult traditsiooniliste täidetavate failide, vaid ka skriptifailide tekstifailide suhtes, mis saab laadida interpreteerija käivitamisest (st käivitamise keeld saab ellu viia mitte ainult käsu „./script.sh” käivitamisel, vaid ka „sh script.sh” täitmisel).
- x86 süsteemides on rakendatud kaitstud aja loendurite toetamine külalisüsteemide jaoks, mis ei luba host-ümbrusest külalisüsteemi süsteemi kellade muutmist. See võimalus on rakendatud mehhanismi põhjal AMD SEV (Secure Encrypted Virtualization), mida kasutatakse virtualiseerimissüsteemides virtuaalmasinate kaitsmiseks hüperviisori või host-süsteemi administraatori sekkumise eest.
- SELinuxi mandaadipõhise ligipääsu kontrolli süsteemi on lisatud toetamine xperm-reeglid, mis võimaldavad siduda SELinuxi poliitikaid teatud ioctl() kutsungite või netlinki sõnumitega.
- Kerneli moodulite digiallkirjastamiseks on vaikimisi SHA1 asemel kasutatakse SHA512 algoritm.
- VirtualBox külalisüsteemide draiverites lisatud on lisatud ARM64 arhitektuuri tugi.
- KVM hüperviisorisse on jätkuvalt töö on lisatud Intel TDX (Trusted Domain Extensions) mehhanismi rakendamine külalisüsteemide mäluefektiivne krüpteerimine.
- virtio_blk on lisatud on lisatud vigade taastamise režiimi tugi.
- Võrgu alamsüsteem
- Protokolli rakendamisel RxRPC ilmus on lisatud toetus suurte UDP kaadrite kasutamiseks, et suurendada läbilaskevõimet.
- TCP-le on lisatud toetus algoritmile RACK-TLP paketikaotuse tuvastamiseks.
- Lisatud uus sysctl tcp_tw_reuse_delay parameeter, mis toimib nimede ruumis (network namespace) ning võimaldab määrata viivituse, enne kui süsteem suudab pärast TCP-soketi sulgemist uuesti kasutada võrguporti numbrit.
- Lisatud on võimalik valida täpse aja pakkuja (PTP), et genereerida ajatempleid PHY ja MAC tasanditel.
- IPsec jaoks on rakendatud pakettide kapseldamise ja killustamise mehhanismi toetamine – IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
- Võrgusocketite süsteemi on lisatud toetamine teavet prioriteedi (SO_PRIORITY) edastamine juhuslike sõnumite (cmsg — juhtsõnumid) kujul. Võrgusoketid on lisatud on valik SO_RCVPRIORITY, mis kaasab recvmsg() funktsioonis prioriteedi teabe edastamise.
- Seadmed
- Lisatud kasvudrivi amdxdna AMD CPU-sse integreeritud NPU (Neural Processing Unit) kiirendite jaoks, mis põhineb aritektuuril XDNA, mis on kujundatud masinõppega seotud toimingute kiirendamiseks. XDNA arhitektuuriga NPU tarnitakse AMD Ryzen 7040 ja 8040 seeria protsessorites, AMD Alveo V70 kiirendites ja SoC AMD Versal.
- i915 draiveris lisatud uute GPU identifikaatorite toteerimine, HDMI algatamise tõrgete töötlemine, GPU mootori lähtestamise usaldusväärsuse tõstmine Haswelli ja vanemate süsteemide puhul.
- Jätkub tööd Intel Xe arhitektuuriga (Direct Rendering Manager) Xe draiveri arendamiseks, mis kasutatakse Intel Arc graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest.
- Nouveau draiverisse on lisatud võimalus edastada GSP-RM logide puhvrit läbi debugfs.
- AMDGPU draiveris on rakendatud DRM panic mehhanismi tugi, mis kuvab „sinise ekraani surma” sarnase pildi tõrketeates. Edasi on jätkatud ettevalmistusi tulevaste Radeon RX 9000 seeria graafikakaartide toe jaoks RDNA4 arhitektuuril. Uuendatud tugi 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 jaoks.
- MSM draiveris (Qualcomm Adreno GPU) on lisatud toete Qualcomm SM6150 (QCS615) platvormile.
- 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-draiver nvgrace-gpu on lisatud toetamine NVIDIA Grace Blackwell 200 kiipidele.
- Koosseis seal draaiver Intel THC (Touch Host Controller) kontrollerite jaoks, mida kasutatakse teatud sülearvutite puutetundlike ekraanide ja puuteplaatide jaoks. Lisatud on Wacomi seadmete tugi PCI liidese kaudu. Lisatud QH Electronics mängu kontrollerite tugi.
- Lisatud toetamine ARM platiformid, SoC ja seadmed: 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 SoC tugi SpacemiT K1 RISC-V arhitektuuril.
- ALSA helisüsteemis MIDI 2.0 laiendatud API rawmidi ja sekvencer. API-s, mis viib pingutustöötlusi helikaardi poole, on lisatud ASRC (Asynchronous Sample Rate Conversion) tugi.
- Kasutajakontrollide tugi seadmete helisüsteemide jaoks: Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 ja 18i20. Lisatud SteelSeries Arctis 9 juhtmevabad kõrvaklapid.
Allikas: linux.org.ru
