Linuxi tuuma versioon 6.16.

Pärast kahte kuud arendust esitles Linus Torvalds Linuxi tuuma versiooni 6.16. Peamised märkimisväärsed muudatused hõlmavad: OpenVPN-i kiirendamise draiverit, Kexec HandOver mehhanismi, viie taseme lehe tabelite vaikimisi aktiveerimist x86 jaoks, DCCP protokolli eemaldamist, zloop blokdraiverit, võimalust saata tuuma dump'e UNIX soketi kaudu, atomaarse kirjutamise toetust XFS-is, USB seadmete heli offload-töötlust, optimeerimisi Ext4-s, virtuaalset TPM (Trusted Platform Module) draiverit, täielikku seadme mälutegevust TCP, anonüümsed kanalite toetust io_uring-s, ettevalmistused Asahi DRM draiveri integreerimiseks, „usermode queue” mehhanismi AMDGPU draiveris, Intel TDE (Trusted Domain Extensions) ja Intel APE (Advanced Performance Extensions) toetust.

Uue versiooni jaoks on tehtud 15 924 parandust 2 145 arendajalt, puhversuurus on 50 MB (muudatused mõjutasid 13 793 faili, lisatud 655 451 koodirida, eemaldatud 316 441 rida). Eelnevas väljaandes oli 15 945 parandust 2 154 arendajalt, puhversuurus oli 59 MB. Umbes 45% kõigist 6.16 väljaandes esitatud muudatustest on seotud seadme draiveritega, umbes 16% muudatustest puudutavad kodeerimise värskendusi, mis on spetsiifilised riistvaraarhitektuuridele, 13% on seotud võrgu kihtide, 4% failisüsteemide ja 3% tuumasiseste alamsüsteemidega.

Peamised uuendused tuumas 6.16:

  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Lisatud on zloop draiver, mis võimaldab luua tsoonitud blokaalseid loopback-seadmeid, mis monteeritakse loop-režiimis. Draiver simuleerib tavaliste blokaalseadmete tööd, kasutades mitmeid faile olemasolevast failisüsteemist (iga tsooni jaoks üks fail). See funktsioon võib olla kasulik failisüsteemide, seadme mappimise töötlejate ja rakenduste testimiseks, et kontrollida nende toimetulekut tsoonitud seadmetega, mis rakendavad blokaalsete või sektorite gruppide jagamist, kus on lubatud ainult järjestikune andmete lisamine, värskendades kogu blokaalsete gruppide komplekti.
    • Failisüsteemis XFS on ellu viidud suurte andmeosade atomaarse kirjutamise tugi - nüüd saab kirjutada mitu bloki atomaarse režiimiga (kui kõik blokid kirjutatakse edukalt, või ei kirjutata ühtegi bloki).
    • Ext4 failisüsteemis on paranenud „kiire commit“ mehhanismi jõudlus. Lisatud on tugi suurte mälulehtede (large folios) jaoks tavaliseks failideks, mis on läbi viidud katsetes suurendanud jõudlust 37% intensiivse järjestikuse sisendi/väljaandmise korral. Lisatud on toetus atomaarsetele kirjutamistegudele, mis katab mitu plokki.
    • Ext2 failisüsteemi draiveris on DAX mehhanismi, mis võimaldab otsepääsu failisüsteemile mälukaudse puhasti vältimisega, kuulutatud aegunuks. DAX eemaldamine ext2 draiverist on planeeritud aasta lõpuks. Põhjuseks on, et ext2 draiverit peetakse stabiilseks etaloniks, kus ei ole lubatud kasutada spetsiifilisi funktsioone, mis ei ole piisavalt laialdaselt levinud.
    • OrangeFS, UFS, BFS ja OMFS failisüsteemid on üle viidud uue osade monteerimise API kasutamisele.
    • Sysctl on lisatud seade vfs_cache_pressure_denom, et hallata "dentry" vahemälu (kataloogielementide sisemine esitus) sisenemise arvu, kui süsteemis puudub mälu. Mida suurem on seatud väärtus, seda rohkem saab vahemälust välja tõrjuda kirjeid (vahemälus jääb vähem kirjeid), kui mälu on nappuses.
    • Failisüsteemis Bcachefs on lisatud valik "rebalance_on_ac_only", mis keelab tasakaalustamise ja taustcompressiooni toimingu, kui süsteem töötab akutoitel. Suurendatud on mängijaid ja seadmete kustutamise operatsioone. Mälu tarbimine lugemise režiimis mountimisel on vähenenud. Lisatud on võimalus käivitada teatud tõrke taastamise operatsioone taustal, ilma failisüsteemi töö katkestamata.
    • Toitehalduse alamliidule on lubatud iseseisvalt külmutada failisüsteeme ja EFI muutujad ooterežiimis ja magamerežiimis (kui failisüsteemid on juba külmutatud kasutaja ruumis, ei toimu korduvat külmutamist).
    • EROFSi töö kiirus on paranenud Intel'i QAT (QuickAssist Technology) protsessorite integreeritud kiirendaja abil, mis pakub lahendusi andmete tihendamise ja krüpteerimise arvutuste kiirendamiseks.
    • NFSi maksimaalne andmepaketi suurus lugemis- ja kirjutamisoperatsioonide jaoks on suurendatud 1 MB-lt 4 MB-le (vaikeväärtuseks on seatud 1 MB, kuna mitte kõik kliendid ei toeta suuremat suurust).
    • Tavakasutajatele, kellel on CAP_SYS_ADMIN õigused eraldi kasutaja identifikaatorite (user namespace) ruumis kuid mitte juurruumis, on antud võimalus kasutada fanotify mehhanismi failisüsteemide muudatuste jälgimiseks.
    • FUSE alusel töötavates failisüsteemides on lisatud funktsionaalsus, mis võimaldab korraga eemaldada kõik vahemälus olevad kataloogide (dentry) kanded. FUSE alamhäärmesse on lisatud tugi suurte mälulehtede jaoks.
    • OverlayFS-is on rakendatud andmekihide loomise tugi privileegideta nimede ruumides, mille puhul kasutatakse integriteedi kontrolli dm-verity mooduli põhjal. Antud võimalus võimaldab kombineerida usaldusväärseid kihte metainformatsiooniga ja mitteusaldusväärseid andmekihte, mida töödeldakse privileegideta nimede ruumides.
  • Mälu ja süsteemiteenused
    • Lisatud KHO (Kexec HandOver) mehhanism, mis võimaldab käivitada uut kernelit vanast ilma süsteemi seisundi kaotamata. Enne kui uus kernel üle võtmiseks kontrolli, võib KHO kaudu serialiseerida oluliste kernelialusüsteemide seisundi mälu piirkonda, mida ei mõjuta edasised operatsioonid. Uus kernel, mis võtab üle kontrolli, taastab serialiseeritud seisundi tagasi. KHO baasil areneb välja Live Update Orchestrator (LUO) alusüsteem, mis võimaldab kernelit taaskäivitada ilma seadmete töö peatamata.
    • Lisatud kernelikogumise parameeter CONFIG_X86_NATIVE, mis võimaldab kompileerimisel kasutada valikut «-march=native» optimeerimiseks praeguse süsteemi protsessori omaduste arvestamisega.
    • Lisatud on Intel APX (Advanced Performance Extension) käsu komplekti arhitektuuri laienduse tugi, mis pakub 16 täiendavat üldkasutatavat registrit (lisaks olemasolevatele 16-le), mis vähendab koodi töötlemiseks vajalike mälule siinide lugemis- ja kirjutamisoperatsioonide arvu, et parandada jõudlust ja vähendada energiatarvet.
    • NUMA-süsteemides on lisatud automaatse mälu jaotuse poliitika häälestamise režiim, kus kõik sõlmede kaalud arvutatakse uuesti, kui vahepeal saadakse uusi andmeid ribalaiuse kohta laadimise ajal või mälu kuumühenduse korral.
    • Futexite rakenduses on nüüd saadaval kohaliku protsesside räsitabeli (local futex_hash_bucket) tugi, mis on erinev varasemalt toetatud kõigi protsesside ühisest räsitabelist ning on spetsiifiline ainult ühele protsessile, jagades seda protsessi kõigi lõimedega. Kohalikud räsitabelid kehtivad ainult futex-operations PROCESS_PRIVATE jaoks. Lisaks on uus versioon lisanud toetuse valikutele FUTEX2_NUMA ja FUTEX2_MPOL, mis võimaldavad mõjutada futexite paiknemist mälu, et need oleksid lähemal protsessidele, mis neid kasutavad.
    • x86_64 süsteemidele on aktiveeritud viie taseme lehekülgede mälutabelite püsitoetamine (CONFIG_X86_5LEVEL, mis juhtis viie taseme tabelite aktiveerimist, on eemaldatud).
    • intel_pstate draiverisse, mis haldab energiasäästu (P-state) seadistusi Intel'i protsessoritega süsteemides, on lisatud toimetaja toetamine, mis arvestab energiatootmisega (EAS — Energy Aware Scheduling) hübriidprotsessoritel, mis ühendavad kõrge jõudluse ja energiatõhusad CPU tuumad, näiteks Intel Lunar Lake.
    • sysfs'i on lisatud liidesed: '/sys/devices/system/cpu/cpuN/cpu_capacity' erinevate CPU võimete kohta hübriidprotsessoritel teabe saamiseks ja '/sys/devices/system/cpu/cpuidle/intel_c1_demotion' CPU hoidmise võimaluse haldamiseks efektiivsemas olekus, isegi kui tuum üritab CPU madalamasse energiatootmise olekusse viia (näiteks tuum võib küsida üleminekut energiatootmise olekusse C6, kuid suure ärkveloleku intensiivsuse korral võib püsivara jätta selle C1 olekusse).
    • ARM64 arhitektuurile on lisatud režiimi PREEMPT_LAZY (mugav ennetamine) tugi, mis vastab täisennetamise režiimile (‘full preemption’) reaalajas ülesannete (RR/FIFO/DEADLINE) jaoks, kuid viib tavade ülesannete (SCHED_NORMAL) ennetamise edasi tiksi piirini.
    • ARM64 arhitektuurile on lisatud SME (Scalable Matrix Extension) laienduste kasutamise tugi, mis aktiveeritakse CONFIG_ARM64_SME parameetri kaudu.
    • Jätkub muudatuste üleviimine Rust-for-Linux harust, mis puudutab Rusti kasutamist teise keele kui C jaoks draiverite ja tuuma moodulite arendamisel (Rusti tugi pole vaikimisi aktiveeritud ning ei too kaasa Rusti lisamist tuuma kohustuslike koostamise sõltuvuste hulka). Rusti keeles kirjutatud moodulite jaoks on pakutud võimalus kasutada configfs-i. Lisatud on abstraktsioonid, mis on vajalikud graafiliste draiverite arendamiseks. Laiendatud on moodulite alloc, time, str, list, workqueue ja page võimalusi. Testimisel, mis põhinevad KUnit-il, on lisatud makro ‘assert!’. Lisatud on abstraktsioonide kogum CPU sageduse ja energiahaldusega seotud API-de haldamiseks. Andmestruktuuri ‘xarray’ tugi on lisatud.
    • RISC-V arhitektuuri jaoks on ellu viidud getrandom() süsteemikõnede rakendus, mis on optimeeritud vDSO (virtuaalne dünaamiline jagatud objekt) mehhanismi abil. See võimaldab süsteemikõnede töötleja viia tuuma ruumist kasutajaruumi, vältides konteksti vahetusi. Teostatud testid näitasid, et optimeerimine kiirusestab juhuslike arvude saamist 17 korda. RISC-V jaoks on rakendatud ka Zicbop, Zabha ja Svinval vektorexpansioone, mida kasutatakse SiFive protsessorites.
    • LoongArch arhitektuuri puhul on CPU arv süsteemis tõstetud 256-lt 2048-ni. Lisatud on toetus SCHED_MC (multi-core) planeerimisse.
    • Unix-sokete kasutamise võimalus failikirjete edastamiseks on lisatud. Sellise võimaluse keelamiseks saavad rakendused kasutada setsockopt() funktsioonis SO_PASSRIGHTS lippu.
    • Kasutajaruumi mällu on antud võimalus kaartida rõngaspuud, mida kasutatakse tuuma töö jälgimiseks.
    • Krahh-dumpide töötlejad, mida kasutatakse tuuma ootamatu lõpetamise järel probleemiaruande koostamiseks, saavad nüüd kasutada ebaõnnestunud tuuma poolt kasutatud LUKS võtmeid crash-dumpide salvestamiseks krüpteeritud failisüsteemides.
    • Asünkroonse io_uring sisend/väljundi süsteemi on lisatud IORING_OP_PIPE operatsioon nimetu torude loomiseks, mis sarnaneb süsteemikõne pipe2-ga, välja arvatud fikseeritud failikirjeldajate toe osas.
    • Kernel'i käskluste rida on lisatud valik 'rt_group_sched', et hallata realtime-ülesannete grupi ajakava (SCHED_RR) lubamist. Valik sarnaneb RT_GROUP_SCHED seadistusega Kconfig'is.
    • CXL (Compute Express Link) bussil põhinevate seadmete jaoks, mida kasutatakse CPU ja mälu seadmete vaheliste kiirete ühenduste loomise jaoks, on rakendatud RAS (Reliability, Availability, Serviceability) laienduste tugi, mis võimaldab erinevate vigade määramise ja parandamise skeemide rakendamist. CXL võimaldab ühendada uusi mälu alaehti, mida pakuvad välist mälu seadmed, ja kasutada neid täiendavate füüsilise aadressiruumi ressurssidena süsteemi töömälude (DDR) või püsiva mälu (PMEM) laiendamiseks.
    • Kerneli koostamiseks vajalik GCC minimaalne versioon on tõstetud GCC 8 haruni kõikide arhitektuuride jaoks. Koostamiseks on nüüd vajalik vähemalt versioon 2.30 binutils paketist.
    • Eemaldatud on süsteemi kutsung uselib(), mis on pikka aega olnud aegunud, ja selle asemel kasutatakse programmide vaheliste jagatud raamatukogude jaoks mmap().
  • Virtualiseerimine ja turvalisus
    • Lisatud on algtoetuse mehanismi Intel TDX (Trusted Domain Extensions) kasutamiseks, et kaitsta KVM hüperviisori all töötavaid külalinukesüsteeme administraatori sekkumise ja füüsiliste rünnakute eest riistvarale. Kaitse tagatakse mälu krüpteerimisega. virtuaalmasinad.
    • Lisatud on virtuaalne TPM (Trusted Platform Module) draiver, mis võimaldab virtuaalsetel masinatel suhelda TPM-seadmetega, mida emuleerib SVSM (Secure VM Service Module).
    • Taaskäivitati GCC pistiku randstruct kasutamise võimalus, mis randomiseerib andmestruktuuride paigutust kompileerimise ajal, et keerulisemaks muuta haavatavuste kasutamist.
    • Lisatud on IMA (Integrity Measurement Architecture) tehnoloogia kasutamise võimalus uute kerneli käivitamise terviklikkuse kontrollimiseks süsteemi kutsungi kexec abil.
    • Tehtud tööd SELinux'i kasutamise jõudluse mõju vähendamiseks. Töö kiirendamiseks lisati kaustade juurde pääsukontrollide tulemuste vahemälu.
    • EFI'ga suhtlemisel koodis on võimaldatud SBAT (UEFI Secure Boot Advanced Targeting) sektsiooni paigaldamine, kus on metaandmed tagasi kutsutud käivituskomponentide versioonide kohta.
    • Laaditavates moodulites on sektsioon "static_call_sites" viidud ainult lugemisrežiimi pärast initsialiseerimise lõpetamist.
    • 64-bitistes ARM süsteemides KVM hüperviisoris on rakendatud sisemise virtualiseerimise tugi (vaikimisi keelatud).
    • KVM hüperviisis on RISC-V arhitektuuri toetamine kuulutatud stabiilseks.
  • Võrgu alamsüsteem
    • Võrguühendus on parendatud ovpn draiveri abil, mis võimaldab oluliselt kiirendada OpenVPN-i jõudlust, viies šifreerimise, paketihaldamise ja sidekanali juhtimise protsessid Linuxi tuuma külge. Draiver aitab vähendada kontekstivahetuse kulu, võimaldab optimeerida tööd, pääsedes otse tuuma sisemiste API-de juurde, ning välistab aeglase andmeedastuse tuuma ja kasutajaruumi vahel (šifreerimine, dešifreerimine ja suunamine toimub mooduli poolt, ilma et liiklust saadetaks kasutajaruumi töötlejasse).
    • Device Memory TCP mehhanismi on nüüd toe andmine seadme mälu kaudu andmete edastamiseks (TX path). Varem oli Device Memory TCP integreerimise lihtsustamiseks funktsionaalsus piiratud ainult andmete vastuvõtmisega (RX path). Device Memory TCP võimaldab kasutada võrgu sokette seadme mälu sisu otse edastamiseks võrgus (zero-copy režiim) ja samuti võrgu pakettide sisu otse seadme mälu alasse asetamiseks vastuvõtja küljes. Pakettides edastatavad andmed liiguvad võrgukaardilt seadme perifeersesse mällu (DMABUF), nagu näiteks GPU videomälu, või seadme mälust võrgu kaardile otse, mööda CPU-d, samas kui paketihädalad satuvad tavapärastesse tuuma puhverdesse.
    • On seadme nutitelefonide kaudu AF_UNIX soketi kasutamisel edastamisvõimekuse loomine core-dumpide sisu saatmiseks, mis võimaldab luua kasutaja ruumis turvalisemaid core-dumpide töötlejaid, mis ei ole seotud privileege protsesside tuuma kutsumisega.
    • Võrgu protokolli DCCP (Datagram Congestion Control Protocol) tugi on eemaldatud, kuna see ei leidnud laialdast kasutamist ja on olnud tuumas toetamata juba viis aastat. DCCP eemaldamine tuumast avab võimalused inet_connection_sock andmestruktuuri ümbertegemiseks, et parandada TCP ​​steki tõhusust. Tugi DCCP paketifiltreerimise netfilter-moodulite jaoks jääb alles.
    • Vea töötlemise lihtsustamiseks sokettide SO_PEERPIDFD kasutamise korral saab tuum nüüd edastada pidfd juba lõpetatud protsesside jaoks (pidfd on seotud konkreetsete protsessidega ja erinevalt pid-st ei määrata seda uuesti).
    • BPF-i abil on nüüd võimalik luua paketijärjekordade haldurid võrgu teekides (qdiscs), et mõjutada võrgu paketide töötlemise järjekorda.
    • Võrgufailisüsteemis AFS on sisse lülitatud GSSAPI (Generic Security Services API), et hallata ühenduste krüpteerimist. serveritega YFS ja OpenAFS.
    • Tekkis suur hulk optimeerimisi. IPv6 marsruutimistabelite blokeeringute korraldus on ümber töötatud (teatud marsruutide toimingud toimuvad nüüd kuni 3 korda kiiremini). CRC32C kontrollsummade tarkvaraarvutamine on kiirem. GRO mootori ringhääling UDP liikluse tunnelimise jaoks on kiirem 10%. TCP vastuvõtupuhvri automaatse seadistamise parendamine ja vaikimisi limiitide suurendamine (teostatud testide põhjal kasvas ühe voo läbilaskevõime 200 Gbps kanali kaudu 60% võrra).
    • Netfilterisse on lisatud võimalus kasutada maskide nimede võrgu seadmetes, mida kasutatakse netdev ja flowtable. Nf trace infrastruktuuri on integreeritud ühenduste jälgimise (conntrack) teave. Ühenduste jälgimise tabelite (conntrack) päring läbi procfs on kiirem.
  • Seadmed
    • Lisatud tugi helivoogude töötlemise suunamiseks USB-liidesega heliseadmete poole (USB audio offload). Muudatus võimaldab oluliselt vähendada kantavate seadmete energiatarbimist, jätkates helivoogude töötlemist samal ajal, kui ülejäänud süsteem on unerežiimis. Varem pakkusid Androidi platvormide kernelid USB-seadmete jaoks spetsiifilist helid töötleva offload-implementatsiooni. Nüüd on põhikeerulisse lisatud universaalne implementatsioon, mida saavad kasutada kõik projektid.
    • Jätkub Nova draiveri komponentide integreerimine NVIDIA GPU-dele, mis on varustatud GSP-firmware'idega, mida kasutatakse alates NVIDIA GeForce RTX 2000 seeriast, mis põhineb Turingi mikroarhitektuuril. Draiver on kirjutatud Rusti keeles. Lisaks eelmisel väljaandel lisatud nova-core komponendile, mis rakendab baastasemel abstraktsioone GSP firmware programmiliideste üle, sisaldab versioon 6.16 algset DRM-draiveri nova-drm (Direct Rendering Manager) teostust, et suhelda GPU-ga kasutaja ruumist.
    • On alustanud Asahi DRM-draiveri tuuma edendamise protsess Apple Silicon'i kiipides kasutatavatele Apple AGX GPU-dele. Draiver on kirjutatud Rustis. Praegu on tuuma integreeritud vaid Asahi draiveri UAPI päise failid, mis on vajalikud Mesa jaoks, peamine Asahi draiveri kood integreeritakse hiljem.
    • Nouveau draiverisse on lisatud toetus NVIDIA Hopper ja Blackwell GPU-dele.
    • Jätkatakse Intel Xe arhitektuuril põhineva GPU Xe draiveri (Direct Rendering Manager) arendamist, mida kasutatakse Intel Arc'i graafikakaartides ja integreeritud graafikas alates Tiger Lake'i protsessoritest. Lisatud on võimalus kasutada erinevaid püsivara faile erinevate Intel GPU perede jaoks.
    • AMDGPU draiveris on rakendatud 'usermode queue' mehhanismi toetus, mis võimaldab luua kasutaja tasemel tööde järjekordi ja saata need otse GPU-le ilma tuuma planifikaatoriga ühendust võtmiseks. 'Usermode queue' toetus on sisse lülitatud Navi 4X ja GFX 12 GPU-de jaoks.
    • Lisa toetust Intel WCL (Whiskey Lake), AMD ACP 7.x (Audio Co-Processor), Cirrus Logic CS35L63 ja CS48L32, Everest Semiconductor ES8375 ja ES8389, Pioneer DJM-V10, Longsoon-1 AC’97, NVIDIA Tegra264, Richtek ALC203, RT9123 ning Rockchip SAI, samuti uutele Intel AVS platvormidele.
    • Lisatud tugi ARM-plaatide, SoC-ide ja seadmete jaoks: Samsung Exynos7870, Qualcomm Snapdragon X1P42100, Qualcomm MSM8926, RK3562, NXP i.MX94, Renesas RZ/V2N, Amlogic S6/S7/S7D, WonderMedia wm8950, Amlogic s805y, Allwinner A523, Toradex Verdin AM62P, ROCK 5B+, Nitrogen8M Plus, Retronix R-Car V4H Sparrow Hawk, MT8186 Ponyta Chromebook, VIA APC Rock/Paper, Renesas rz/t2h, ASUS Transformer Pad LTE TF300TL, LG Nexus 4, Google Pixel 4a, Raspberry Pi 2.
    • Eemaldatud video salvestamise plaatide draiverid STA2X11 kiipidel.

Samaaegselt on Ladina-Ameerika Tasuta Tarkvara Fond välja töötanud täiesti avatud tuuma versiooni 6.16 — Linux-libre 6.16-gnu, mis on puhastatud tootja poolt piiratud kasutusala sisaldavatest mitteavatud komponentide või koodilõikude elementidest. Väljaandes 6.16 on neutraliseeritud blobe laadimine uutes Intel qat 6xxx krüpto, ST vd55g1 andur, ath12k AHB wifi, Aeonsemi AS21xxx ja MediaTek 25Gb Ethernet draiverites. Blobe nimede puhastamine on tehtud dts-failides (seadmepuu) Qualcommi ja MediaTeki ARM-kiipide jaoks. Uuendatud on blobe puhastamise kood Nova Core, Nouveau, Realtek r8169 Ethernet, Qualcomm Iris, Venus, Mediatek mt7996 wifi, Qualcomm ath11k ja ath12k wifi, Texas Instruments tas2781 ja Renesas R-Car gen4 PCIe draiverites.

Allikas: opennet.ru

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