Linuxi tuuma 6.16 väljaanne

Pärast kahte kuud arendust esitles Linus Torvalds Linuxi tuuma 6.16 versiooni. Tõstatatavad peamised muudatused on: OpenVPN-i kiirusdruiver, Kexec HandOver mehhanism, vaikimisi viieastmeliste mälulehtede tabelite aktiveerimine x86 jaoks, DCCP protokolli eemaldamine, zloop plokkdruiver, võimalus saata core-dumpe UNIX-pistikupesa kaudu, XFS-s suurteandmete aatomise kirjutamise toetus, USB-seadmete heliprosessi offload, optimeerimised Ext4-s, virtuaalne TPM (Trusted Platform Module) draiver, Device Memory TCP täielik teostus, nimetamata kanalite tugi io_uringis, ettevalmistus Asahi DRM-draiveri integratsiooniks, „usermode queue“ mehhanism AMDGPU draiveris, Intel TDE (Trusted Domain Extensions) ja Intel APE (Advanced Performance Extensions) toetus.

Uude versiooni on lisatud 15924 parandust 2145 arendajalt, patši suurus on 50 MB (muudatused puudutasid 13793 faili, lisatud 655451 koodi rida, eemaldatud 316441 rida). Eelmises väljaandes oli 15945 parandust 2154 arendajalt, patši suurus oli 59 MB. Umbes 45% 6.16-s esitatud muudatustest on seotud seadme draiveritega, umbes 16% muudatustest on seotud riistvaraplatvormide jaoks spetsiifilise koodi uuendamisega, 13% on seotud võrgušlemmiga, 4% -ga failisüsteemidega ja 3% -ga tuuma sisemiste alamsüsteemidega.

Peamised uuendused tuumas 6.16:

  • Diskisüsteem, sisend/väljund ja failisüsteemid
    • Zloop draiver on lisatud, et luua jaotatud plokkkäivitusseadmeid, mida monteeritakse ringrežiimis. Draiver simuleerib tavapäraste plokiseadmete tööd, kasutades mitmeid faile olemasolevast failisüsteemist (üks fail iga tsooni hoidmiseks). See võimalus võib olla kasulik failisüsteemide testimisel, seadmete kaardistamise töötlejatel tõhususe testimiseks ja rakendustes tsoonide seadmeid toetamise osas, mille korral grupid või sektorid, kuhu andmeid saab järjestikuste täiendamisega lugeda, jagatakse tsoonideks.
    • XFS failisüsteemis on rakendatud suurte andmete aatomilise kirjutamise toetus — nüüd saab mitmeid blokke kirjutada aatomilises režiimis (kas kõik blokid kirjutatakse edukalt või ei kirjutata ühtegi blokk).
    • Ext4 failisüsteemis on paranenud "fast commit" mehhanismi jõudlus. Lisatud on tugi suurte mälulehtede (large folios) jaoks tavaliste failide puhul, mis on testide käigus 37% tõstnud jõudlust intensiivse järjestikuse sisendi/väljundi korral. Lisatud on toetav atomaarsetele kirjutamisoperatsioonidele, mis katab mitu bloki.
    • Ext2 failisüsteemi draiveris on kuulutatud vananenuks DAX mehhanismi tugi, mis võimaldab faile juurdepääsu failisüsteemile vahetult läbi lehe vahemälu. DAX eemaldamine ext2 draiverist on plaanis aasta lõpuks. Põhjuseks on peetud ext2 draiveri mõistmist stabiilse viitena, milles ei ole lubatud kasutada spetsiifilisi funktsioone, mis ei ole saanud laialdast kasutust.
    • Failisüsteemid OrangeFS, UFS, BFS ja OMFS on üle viidud uue partitsioonide mälestuse API kasutamisele.
    • Sysctlisse on lisatud seadistus vfs_cache_pressure_denom, et hallata "dentry" vahemälu (kaustade elementide sisemine esitamine) kirje arvu süsteemi mälupuuduse tingimustes. Mida kõrgem on seatud väärtus, seda rohkem kirjeid saab vahemälust välja tõrjuda (vähem kirjeid jääb vahemällu) mälupuuduse korral.
    • Bcachefs failisüsteemis on lisatud valik "rebalance_on_ac_only", mis keelab rebalanceerimise ja taustcompressiooni toimingute tegemise, kui süsteem on akutoitel. Kõrvaldades jääd ja seadmed, on operatsioonid kiirendatud. Mälutarbimist on vähendatud ainult lugemisrežiimis mountimisel. On lisatud võimalus käivitada teatud rikete taastamisoperatsioonid taustal, peatamata failisüsteemiga töötamist.
    • Toitehalduse alamsüsteemil on lubatud iseseisvalt külmutada failisüsteeme ja EFI muutujaid ooterežiimi ja unerežiimi jaoks (kui failisüsteemid on juba kasutaja ruumis külmutatud, ei toimu uuesti külmutamist).
    • EROFS töökiirus on kiirusestatud Intel'i protsessoritesse integreeritud QAT (QuickAssist Technology) kiirendaja abil, mis pakub vahendeid, mis kiirendavad kompressiooniga ja krüptimisega seotud arvutusi.
    • NFS-is on andmepartii maksimaalne suurus lugemis- ja kirjutamisoperatsioonide jaoks tõstetud 1 MB-st 4 MB-ni (vaikeseade on 1 MB, kuna mitte kõik kliendid ei toeta suuremat suurust).
    • Tavakasutajatele, kellel on CAP_SYS_ADMIN õigused kasutajate identifikaatorite ruumis (user namespace), kuid kellel ei ole ulatuslikke õigusi juurruumis, on antud võimalus kasutada fanotify mehhanismi failisüsteemide muutuste jälgimiseks.
    • FUSE alusel töötavates failisüsteemides on lisatud funktsionaalsus, mis võimaldab korraga puhastada kõiki vahemälus hoitavaid kataloogisissekandeid (dentries). FUSE alusesse on lisatud tugi suurte lehefailide mälu jaoks.
    • OverlayFS failisüsteemis on implementeeritud tugi andmepikkuste loomiseks häired. Sellistele andmepikkustele, mille integreerimist kontrollitakse dm-verity mooduli abil, on antud võimalik kombineerida usaldusväärseid kihte metainfoga koos mitteusaldusväärsete andmekihidega, mida töödeldakse mitteprivileegitud ruumides.
  • Mälu ja süsteemiteenused
    • Lisatud on KHO (Kexec HandOver) mehhanism, mis võimaldab vanast keelest uue käivitamist ilma süsteemi seisundit kaotamata. Enne juhtimise edastamist uue versiooni kellele võib KHO abil peamised kõigi sisemiste süsteemide seisundi serialiseerida mällu, mida järgmised toimingud ei mõjuta. Uus keel, kui see on saanud juhtimise, taastab serialiseeritud seisundi tagasi. KHO alusel arendatakse Live Update Orchestrator (LUO) alistust, mis võimaldab kernelit taaskäivitada seadmete tööd katkestamata.
    • Lisatud on kernelikogumise parameeter CONFIG_X86_NATIVE, mis võimaldab kompilatsiooni ajal kasutada valikut "-march=native" optimeerimiseks olemasoleva protsessori võimete arvessevõtmiseks.
    • Lisatud on tugi Intel APX (Advanced Performance Extension) käskude komplekti arhitektuuri laiendusele, mis pakub 16 täiendavat üldkasutatavat registrit (lisaks 16 olemasolevale), mis võimaldab koodis kasutada vähem mälu lugemise ja kirjutamise operatsioone, et tõsta jõudlust ja vähendada energiatarvet.
    • Lisatud on automaatse mälu jaotuspoliitika reguleerimise režiim NUMA-süsteemides, kus kõik sõlmede kaalud arvutatakse ümber, kui ilmneb uus teave läbilaskevõime kohta käivitamise ajal või kuuma mälu ühendamise ajal.
    • Futexite rakendamisel on lisatud kohaliku protsessi hash-tabeli (local futex_hash_bucket) tugi, mis erineb varem toetatud ühise hash-tabeli variandist, olles kohaliku protsessi jaoks ja kõigi selle protsessi niitide poolt ühiselt kasutatav. Kohalikke hash-tabeleid kasutatakse ainult futex-operatsiooni PROCESS_PRIVATE jaoks. Lisaks on uues versioonis lisatud tugi valikutele FUTEX2_NUMA ja FUTEX2_MPOL, mis võimaldavad mõjutada futexite asukohta mälus, tuues need lähemale protsessidele, mis neid kasutavad.
    • x86_64 süsteemide jaoks on sisse lülitatud viie taseme mälulehtede pidev tugi (CONFIG_X86_5LEVEL parameeter, mis juhtis viie taseme lehtede sisse lülitamist, on eemaldatud).
    • Intel protsessoritega süsteemides energia tarbimise parameetreid (P-state) juhtivas intel_pstate draiveris on lisatud tugi energiat arvestava ajakava (EAS — Energy Aware Scheduling) rakendamiseks hübriidprotsessorites, mis koosnevad kõrge jõudlusega ja energiatõhusatest CPU tuumadest, nagu Intel Lunar Lake.
    • Sysfs-sse on lisatud liidesed: '/sys/devices/system/cpu/cpuN/cpu_capacity', et saada teavet erinevate CPU võimekuste kohta hübriidprotsessorites, ja '/sys/devices/system/cpu/cpuidle/intel_c1_demotion', et hallata võimalust hoida CPU rohkem energiatootlikes tingimustes, isegi kui tuum püüab CPU madalamasse energiatarbimise olekusse viia (näiteks tuum võib taotleda üleminekut C6 energiatarbimise seisu, kuid suure ärkamisintensiivsuse korral võib püsivara jätta selle C1 olekusse).
    • ARM64 arhitektuuril on sisse lülitatud laiskade ülesannete tõrjerežiimi (PREEMPT_LAZY, lazy preemption) tugi, mis vastab täieliku tõrjerežiimi (full preemption) versioonile realtime-ülesannete jaoks (RR/FIFO/DEADLINE), kuid viib tavaliste ülesannete (SCHED_NORMAL) tõrje edasi tiksi piirini.
    • ARM64 arhitektuurile on lisatud tugi SME (Scalable Matrix Extension) laiendite kasutamiseks, mis võimaldatakse CONFIG_ARM64_SME parameetri kaudu.
    • Jätkub muudatuste ülekandmine Rust-for-Linux harust, mis on seotud Rusti keele kasutamisega teise keelena seadmete ja tuumamoodulite arendamisel (Rusti toetus ei ole vaikimisi aktiveeritud ja see ei too kaasa Rusti lisandumist tuuma kohustuslike ehitust sõltuvuste hulka). Rusti keeles kirjutatud moodulite jaoks on antud võimalus kasutada configfs-i. Lisatud vajalikud abstraktsioonid graafika draiverite arendamiseks. Laiendatud moodulite alloc, time, str, list, workqueue ja page võimalusi. Lisatud macro „assert!“ KUnit-põhistes testides. Lisatud abstraktsioonide komplekt CPU sageduse juhtimise ja energiatõhususe haldamise API kasutamiseks. Lisatud andmestruktuuri ‘xarray’ tugi.
    • RISC-V arhitektuuri jaoks on häälestatud getrandom() süsteemi kutse rakendus, optimeeritud vDSO (virtuaalne dünaamiline jagatud objekt) mehhanismi abil, mis võimaldab süsteemi kutse töötlejat tuumast kasutaja ruumi viia ja konteksti vahetust vältida. Testide käigus kiirus tõusis juhuslike arvude saamisel 17 korda. RISC-V jaoks on samuti rakendatud Zicbop, Zabha ja Svinval vektorexpansiooni tugi, mida kasutavad SiFive protsessorid.
    • LoongArch arhitektuuri jaoks on CPU arv piir tõstetud 256-lt 2048-le. Lisatud SCHED_MC (Multi-core) ülesande planeerimise tugi.
    • Lisatud Unix-soketite kasutamise võimalus failide descriptorite edastamiseks. Sellise võimaluse keelamiseks saavad rakendused kasutada setsockopt() funktsioonis SO_PASSRIGHTS lippu.
    • Pakutakse võimalust ringbufri mappimiseks, mida kasutatakse tuuma töö jälgimiseks, kasutaja mälu ruumidesse.
    • Krahhi dumpi töötlejad, mida kasutatakse tuuma krahhi aruande koostamiseks, saavad nüüd kasutada krahhi tekitamiseks kehtinud LUKS-võtmeid, et salvestada krahhi dumpid krüpteeritud failisüsteemidesse.
    • Asünkroonse sisendi/väljundi io_uring süsteemi on lisatud IORING_OP_PIPE operatsioon, mis loob anonymiseeritud torusid, sarnane süsteemi kutsega pipe2, välja arvatud fikseeritud failides descriptorite toe juures.
    • Tuumal on lisatud käsurea võimalus „rt_group_sched“ realtime-ülesannete (SCHED_RR) grupi täitmise planeerija kasutuselevõtu juhtimiseks. See valik on sarnane RT_GROUP_SCHED seadistusega Kconfigis.
    • CXL (Compute Express Link) baasil olevate seadmete jaoks, mida kasutatakse CPU ja mälu seadmete kiireks suhtlemiseks, on rakendatud RAS (Reliability, Availability, Serviceability) laienduste tugi, mis võimaldab rakendada erinevaid vigade tuvastamise ja parandamise skeeme. CXL võimaldab ühendada uusi mälu alasid, mida pakuvad välist mälu seadmed, ja kasutada neid füüsilise aadressiruumi täiendavate ressurssidena süsteemi operatiivmälu (DDR) või alalise mälu (PMEM) laiendamiseks.
    • Kerneli kokkupanekuks vajalik minimaalne GCC versioon kõigi arhitektuuride jaoks on tõstetud GCC 8 haru. Nüüd on kokkupanekuks vajalik ka vähemalt versioon pakettidest binutils 2.30.
    • Süsteemikutsung uselib() on eemaldatud, kuna see on juba pikka aega vananenud ning selle asemel, et võimaldada programmide jagatud raamatukogude kasutamist, kasutatakse mmap().
  • Virtualiseerimine ja turvalisus
    • Algselt on lisatud tugi Intel TDX (Trusted Domain Extensions) mehhanismi kasutamiseks, et kaitsta KVM hüperviisori all töötavaid külgsüsteeme host-süsteemi administraatori sekkumise ja seadme füüsiliste rünnakute eest. Kaitse tagatakse mälu krüpteerimise kaudu. virtuaalmasinate.
    • Lisatud on virtuaalne TPM (Trusted Platform Module) draiver, mis võimaldab virtuaalsetel masinatel suhelda TPM-seadmetega (Trusted Platform Module), mida emuleerib SVSM (Secure VM Service Module).
    • GCC plugin randstruct, mis randomiseerib andmestruktuuride paigutust kompileerimise ajal, et muuta haavatavuste kuritarvitamine keerukamaks, on taas kasutatav.
    • Lisa on antud IMA (Integrity Measurement Architecture) tehnoloogia kasutamiseks uute kerneli käivitamise terviklikkuse kontrollimiseks süsteemikutsungi kexec kaudu.
    • On tehtud tööd SELinuxi kasutamise mõju vähendamiseks jõudlusele. Töö kiirendamiseks on lisatud kaustade juurdepääsukontrollide tulemuste vahemälu. Genfscon reeglatesse on lisatud maskide kasutamise võimalus.
    • EFI-ga suhtlemise koodis on võimalus sisse embedida SBAT (UEFI Secure Boot Advanced Targeting) sektsioon koos käideldavatest laadimis komponentide versioonidest andmetega.
    • Laaditavates moodulites on piirkond " .static_call_sites" muudetud ainult lugemisrežiimiks pärast initsialiseerimise lõpetamist.
    • 64-bit ARM süsteemides KVM hypervisoris on rakendatud sisemise virtualiseerimise tugi (vaikimisi keelatud).
    • KVM hüpervisoris on kuulutatud stabiilse toetuse alla RISC-V arhitektuur.
  • Võrgusüsteem
    • Vastu võetud on ovpn draiver, mis võimaldab oluliselt kiirendada OpenVPN jõudlust, suunates krüpteerimise, pakettide töötlemise ja sidekanali haldamise Linuxi tuuma poole. Draiver võimaldab vältida konteksti vahetamisega seotud kulusid, annab võimaluse optimeerida tööd täiendava juurdepääsu kaudu tuuma sisemistele API-dele ja välistab aeglase andmeedastuse tuuma ja kasutaja ruumi vahel (krüpteerimine, dekrüpteerimine ja marsruutimine toimub mooduli kaudu ilma liikluse edastamata kasutaja ruumi töötlejasse).
    • Device Memory TCP mehhanismi on lisatud tugi seadme mälust andmete edastamiseks (TX rada). Varem oli Device Memory TCP integreerimine tuuma lihtsustamiseks funktsionaalsus piiratud ainult andmete vastuvõtmisega (RX rada). Device Memory TCP võimaldab kasutada võrgu sokette seadme mälus oleva sisu otse saatmiseks üle võrgu (zero-copy režiim) ning ka võrgu pakettide sisu otse seadme mälu piirkonda adressaadi poolel. Paketis edastatud andmed edastatakse võrgu kaardilt seadme mälusse (DMABUF), näiteks GPU videomälu, või seadme mälust võrgu kaardile otse, vältides CPU-d, samas kui paketi päiseid saadetakse tavalistesse tuuma pufferitesse.
    • Pakutud on võimalus edastada core-dumpide sisu AF_UNIX socketi kaudu, mis võimaldab luua kasutaja ruumis turvalisemaid core-failide töötlejaid, mis ei ole seotud privileege protsesside tuuma kutsumisega.
    • Eemaldatud on DCCP (Datagram Congestion Control Protocol) võrgu protokolli tugi, mis ei ole laialdaselt levinud ja on juba viis aastat olnud tuumas hooldamata. DCCP eemaldamine tuumast avab takistused inet_connection_sock andmestruktuuri ümber töötlemiseks, et parandada TCP stacki efektiivsust. netfilter moodulite tugi DCCP pakettide filtreerimiseks jääb alles.
    • Viga vigastuste töötlemise lihtsustamiseks sokettide SO_PEERPIDFD kasutamisel suudab tuuma nüüd edastada pidfd juba lõpetatud protsesside jaoks (pidfd on seotud konkreetsete protsessidega ja erinevalt pid'ist ei määrata seda uuesti).
    • BPF-i abil on nüüd võimalik luua pakettide järjekorra haldurid võrgu kiirusestikule (qdiscs), et mõjutada võrgu pakettide töötlemise järjekorda.
    • Aadressi failisüsteemis AFS on kasutusele võetud GSSAPI (Üldine Turvateenuste API) ühenduste krüpteerimise haldamiseks koos serveritega YFS-i ja OpenAFS-iga.
    • Tänu põhjalikele optimeerimistele on IPv6 marsruutimistabelite lukustamise korraldus ümber töötatud (mõned marsruutide toimingud on nüüd kuni 3 korda kiirem). crc32c kontrollsummade arvutamine on kiirem. GRO mootori tööd on kiirus tõstetud 10% võrra tunneldatud UDP liikluses. TCP vastuvõtupuhver on automaatselt seadistatud ja vaikimisi piirmäärad on tõstetud (katsetes oli 200Gbs kanali kaudu ühitavusi kiirus 60% tõusnud).
    • Netfilterisse on lisatud võimalus kasutada maske võrgu seadmete nimedes, mida kasutatakse netdev's ja flowtable's. NTF trace infrastruktuuri on integreeritud seose jälgimise teave (conntrack). Conntrack jälgimistabelite väljavõtmine läbi procfs on kiirem.
  • Varustus
    • Toetatakse helivoogude töötlemise edastamist USB (USB audio offload) liidese heliseadmete külge. See muudatus võimaldab oluliselt vähendada kaasaskantavate seadmete energiatarbimist, jätkates helivoogude töötlemist, kui ülejäänud süsteem on ooterežiimis. Varasemalt oli Androidi platvormi tuumadesse lisatud spetsiifiline helide offload töötlemise teostus USB seadmete jaoks, kuid nüüd on põhituumas saadaval universaalne teostus, mida saavad kasutada kõik projektid.
    • NVIDIA GSP-firmware'iga varustatud GPU-de Nova draiveri komponentide integreerimist on jätkatud, alustades Turingi mikroarhitektuuri põhjal loodud NVIDIA GeForce RTX 2000 seeriast. Draiver on kirjutatud Rust keeles. Väljalaske 6.16 koosseisu on lisatud algne DRM-draiveri nova-drm (Direct Rendering Manager) teostus, mis võimaldab GPU-d kasutada kasutajaruumi kaudu, lisaks novembris tutvustatud nova-core komponendile, mis rakendab GSP-firmware'ide programmiliideste üle abstraktsioonide põhitaset.
    • Alustati Asahi DRM-draiveri edendamise protsessi, mis on mõeldud Apple AGX GPU-dele, mida kasutatakse Apple Siliconi kiipides. Draiver on kirjutatud Rust keeles. Praegu sisaldab tuum ainult Asahi draiveri UAPI pealkirjafailide osasid, mis on vajalikud Mesa jaoks, samas kui Asahi draiveri põhikood integreeritakse hiljem.
    • Draiverisse Nouveau on lisatud toetus NVIDIA Hopper ja Blackwell GPU-dele.
    • Intel Xe arhitektuuril põhineva GPU Xe DRM-draiveri (Direct Rendering Manager) kallal on jätkatud tööd, mida kasutatakse Intel Arc videokaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Lisatud on võimalus kasutada erinevaid firmware faile erinevate Intel GPU perekondade jaoks.
    • AMD GPU draiveris on rakendatud "usermode queue" mehhanismi tugi, mis võimaldab luua oma tööde järjekordi kasutajaruumi ja saata need otse GPU-le, ilma et oleks vaja tuuma ajakava. "Usermode queue" toetus on aktiveeritud Navi 4X ja GFX 12 GPU-dele.
    • Lisatud on tugi Intel WCL (Whiskey Lake), AMD ACP 7.x (Audio Co-Processor), Cirrus Logic CS35L63, CS48L32, Everest Semiconductor ES8375 ja ES8389, Pioneer DJM-V10, Longsoon-1 AC’97, NVIDIA Tegra264, Richtek ALC203, RT9123 ja Rockchip SAI, samuti Intel AVS uutele platvormidele.
    • Lisatud tugi ARM plattidele, SoC-dele ja seadmetele: 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.
    • Kaotatud on videote konverteerimise draiver STA2X11 kiipide jaoks.

Samael Latino-Ameerika vaba tarkvara fond vormis täielikult vaba südamiku versiooni 6.16 — Linux-libre 6.16-gnu, puhastatud jupidest ja draiveritest, mis sisaldavad mitte-vabasid komponente või koodilõike, mille kasutusala on tootja poolt piiratud. Versioonis 6.16 on neutraliseeritud blobi laadimine uutest Intel qat 6xxx krüpto, ST vd55g1 sensori, ath12k AHB wifi, Aeonsemi AS21xxx ja MediaTek 25Gb Etherneti draiveritest. DTS-failides (seadmestiku puu) Qualcommi ja MediaTeki ARM-kiipide blobi nimed on puhastatud. Uuendatud on blobi puhastamise kood Nova Core'i, Nouveau, Realtek r8169 Etherneti, 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 veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster