Linuxi 6.15 tuuma väljaanne

Pärast kaht kuud arendust tutvustas Linus Torvalds Linuxi 6.15 tuuma väljaannet. Kõige silmapaistvamad muudatused: auditeerimismehhanism Landlockis, mälu kaardistamise fikseerimise režiim, fwctl alamsüsteem, NVIDIA GPU-draiver Nova, Hyper-V hüperviisori host-süsteemi rakendamine, XFS jaotatud salvestusseadmete tugi, võrgualamsüsteemi optimeerimine, Bcachefsi scrub-kontroll, võimalus kontrollida operatsioone io_uring kaudu.

Uude versiooni on lisatud 15 945 parandust 2 154 arendajalt, patši suurus on 59 MB (muudatused puudutasid 13 596 faili, lisatud 739 608 koodireal, kustutatud 312 168 rida). Eelmises väljaandes oli 12 115 parandust 1 984 arendajalt, patši suurus oli 39 MB. Ligikaudu 41% kõikidest 6.15 väljaandes esitatud muudatustest on seotud seadme draiveritega, umbes 16% muudatustest puudutab riistvaraliselt spetsiifilise koodi värskendamist, 13% on seotud võrguvirnastusega, 5% failisüsteemidega ja 4% tuuma sisemiste alamsüsteemidega.

Peamised uuendused tuumas 6.15:

  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Fanotify mehhanismi on lisatud võimalus jälgida mountimise ja unmountimise sündmusi.
    • XFS-is on nüüd toetatud tsoonitud salvestusseadmed (blokkide või sektorite gruppide jagamine, kuhu on lubatud ainult järjestikune andmete lisamine, värskendades kogu bloki gruppi). Lisatud on rwf_dontcache lipp kirjutamise kätetõmbe eemaldamiseks.
    • Btrfs-is on rakendatud võimalus määrata montimise ajal negatiivsed zstd-surutise tasemed (-15 kuni -1, näiteks "compress=zstd:-5"), mis tagavad kõrgema töökiirus, ohverdatuna surumise efektiivsuses. Parandatud on failiteede vahemälu (katsetes kiirenes "send" operatsioon 30% võrra). Lisatud on 2Kb blokitaseme tugi.
    • EXT4-s on paranda jõudlust väga suure tagasivõetud kirjetearvu korral (koormus, mis iseloomustab Lustre-failisüsteemi osi). On teostatud lineaarne otsing "dentry" kirjeid (kaustade elementide sisemine esitus), mis lahendab probleemid mõnedele failidele ligipääsuga, ignoreerides sümbolite suure- ja väiketähe vahet. On kehtestatud montaaži valiku "errors=remount-ro" töö. Suurenenud vastupidavus kahjustatud failisüsteemide töötlemisel.
    • F2FS-is on rakendatud ioctl operatsiooni sisendi/väljundi prioriteedi teabe saamiseks määratud faili jaoks. On tehtud tööd mälulehtede kasutamiseks ülemineku suunas.
    • Bcachefs-i on lisatud "scrub" režiim, kus kontrollitakse kõigi andmete ja metaandmete lugemise õigsust failisüsteemist. Vigade avastamisel käivitub taastamisprotseduur. Bcachefs-is on samuti lisatud tugi failisüsteemide jaoks, mille ploki suurus on suurem kui mälulehe suurus. Bcachefs-i ketasstruktuuride formaat on stabiliseeritud (edasi muudatused formaadis viiakse ellu valikuliste lisanditena).
    • EROFS-is on lisatud 48-bitine plokkide aadressimise tugi.
    • FUSE alam sistemis on rakendatud sysctl default_request_timeout ja max_request_timeout, et määrata päringute täitmise ajakavad, mis võimaldab jälgida FUSE komponente, mis töötavad kasutaja ruumis. Failinimede maksimaalne pikkus FUSE'is on suurendatud 1024 sümbolini.
    • Süsteemi kutsesse statmount() on lisatud võimalus saada teavet montitud failisüsteemide kasutaja ID-de kaartimise kohta, mida kasutatakse teatud kasutaja failide sidumiseks montitud välisel jaotusel teise kasutaja süsteemis.
    • Rreleased on võimalus luua montaažipunkt, millel on kasutaja ID-de erinev kaartimine võrreldes algse montitud jaotusega.
    • Montaaži haldamise API-sse on tehtud muudatusi, et lihtsustada keerukate failisüsteemide hierarhiate koostamist, ilma et avataks eraldi failisüsteemi osi, mida tuleb hoida varjatud.
    • Blokiseadmete töötlussüsteemi on lisatud toetus riistvaralistele krüpteerimise võtme kaitse seadmetele.
    • SMB failisüsteemis on rakendatud is_network_name_deleted valik ja smb_server_kerberos5 režiim on vaikimisi sisse lülitatud.
    • OverlayFS failisüsteemile on lisatud montaaži valik 'override_creds', mille korral alampiiride juurdepääsuks kasutatakse kutse kasutaja volitusi, mitte montaaži tegemise ajal. See muudatus võimaldab, et OverlayFS-i montaaži nõudmine toimub kasutajalt, kellel on CAP_SYS_ADMIN volitused, kuid failisüsteemi kasutatakse ilma nende õigusteta.
    • exFAT-is on failide kustutamise operatsioonid kiiruselt tõhustatud. Kustutatavale failile kuuluvate klastrite 'discard' päringute saatmine toimub nüüd rühmitatult, mitte eraldi iga klastrite kohta. Testi käigus vähenes 80 GB suuruse faili kustutamise aeg 286 sekundilt 1,6 sekundile.
    • Kõik pseudofailisüsteemid ja EXT2 failisüsteem on üleminekul uuele partitioning API-le.
    • Toetuse eemaldamiseks on kood SYSV (SystemV/386, Xenix ja Coherent) failisüsteemide jaoks, mis on alates 2023. aastast märgitud kui toetamata (orphaned).
  • Mälu ja süsteemiteenused
    • Kerneli koostamiseks vajalik GCC miniversioon on tõstetud 8.1-le ja Clang 15.0.0-le.
    • Lisatud on fwctl (Firmware Control) alamsüsteem, mis pakub API-d turvaliseks firmware'ide haldamiseks ja töötlejate käivitamiseks firmware'ide poolt ettevõtte kasutajaruumi. fwctl põhjal on valmistatud draivereid CXL (Compute Express Link) seadmete, Mellanox ConnectX (mlx5) Ethernet-adapterite ja AMD/Pensando teenuskaartide jaoks.
    • Pidfd mehhanismi funktsioone on laiendatud, võimaldades kasutada identifikaatoreid, mis on seotud konkreetsete protsessidega ja mida ei saa uuesti määrata (erinevalt pid-st). Pakutakse võimalust väljavõtte tegemiseks protsessi lõpetamise olekust, mida tuvastatakse läbi pidfd pärast seda, kui vanemprotsess on saanud kinnituse lapsprotsessi lõpetamisest (reaped) ning tema ressursid on vabastatud. Süsteemikõnedele on lisatud PIDFD_SELF lipp, mille abil protsess saab viidata iseendale.
    • RISC-V arhitektuurile on rakendatud BFloat16, Zaamo (mäluga seotud aatomilised operatsioonid), Zalrsc (Load-Reserved/Store-conditional) ja ZBKB (bittide operatsioonid krüptograafias) laienduste toimet.
    • Jälgimisel on tagatud võimalus salvestada kutsutud funktsioonide argumendid ja kuvada need jälgimislogides.
    • Asünkroosse sisendi/väljundi io_uring süsteemi on lisatud tugi epoll'i sündmuste teabe lugemiseks. io_uring'i kasutamine epoll'i sündmuste töötlemiseks vähendab konteksti vahetuste arvu ja võimaldab korraga töödelda mitmeid epoll'i sündmusi.
    • eBPF alamsüsteemis on parandatud tsüklitega programmide valideerimist. Uued käsud «timed_may_goto», «load-acquire» ja «store-release» on lisatud. BPF-programmid võimaldavad nüüd muuta failide laiendatud atribuudid. Lisatud on funktsioon try_alloc_pages(), mis on ette nähtud mälu eraldamiseks, kui operatsiooni ebaõnnestumise tõenäosus on kõrge (BPF-programmide käivitamisel piiratud kontekstides).

      Uus lukustusprimitiv — rqspinlock (Resilient Queued Spin Lock) on rakendatud, mis tuvastab täitmise ajal olukorrad, mis viivad ummikseisudeni. Uus primitiv võimaldab laadida BPF-programme, millele valideerija ei ole taganud lukustustega töötamise korrektsust.

    • Suurenenud on suurte mälulehtede (huge-page) eraldamise usaldusväärsus.
    • CRC64 kontrollsummade arvutamine on x86 süsteemidel oluliselt kiirenenud. Muuhulgas kasutatakse kiirusest tulenevalt uusi AVX-512 vektorkäske. Mõnes olukorras on tulemuslikkus tõusnud 100 korda.
    • Jätkub muudatuste ülekandmine Rust-for-Linux harust, mis on seotud Rust keele kasutamisega teise keeltena draiverite ja kernelimoodulite arendamisel (Rust-i tugi ei ole vaikimisi aktiveeritud ning see ei muuda Rusti kohustuslikuks koostamis sõltuvuseks kernelis). Kernelikoodis on nüüd saadaval makro "#[kunit_tests()]" ükstestide käivitamiseks. ARMv7 arhitektuuri tugi on lisatud. Rakendatud on dma ja hrtimer moodulid Rusti seotud rakendustega DMA jaoks (lisatud Linus'e poolt, mööda peahooldajat, kes lahkus pärast seda oma kohalt) ja täpsed ajataimerid. Laiendatud on mooduleid 'list', 'str', 'sync', 'error' ja 'alloc'. Uue süntaksi 'raw' (raw_ref_op) tugi on lisatud.
    • Perf alamsüsteemis on realiseeritud viivituste profiilimise võimalus, kasutades teavet ülesande graafikust.
    • Lisatud on käsklus "traceoff_after_boot", mis keelab jälgimise pärast seda, kui tuum on käivitunud ja init-protsess on alustatud. Seda parameetrit saab kasutada laadimisprobleemide tõrkeotsingul, tagades, et laadimise ajal kogutud jälgimisandmeid ei kirjutata üle.
    • Toetamine 32-bitiste x86 süsteemide jaoks on lõpetatud, millel on rohkem kui 8 CPU-d ja 4 GB RAM-i. Selliseid seadmeid ei ole pikka aega enam tootmises, ning selliseid ressursse vajavad süsteemid on viidud 64-bitistele CPU-dele.
    • POSIX-timerite rakendusse on tehtud muudatusi, mis võimaldavad CRIU (Checkpoint/Restore in Userspace) tööriistakomplektil salvestada ja taastada taimerite ID-sid.
  • Virtualiseerimine ja turvalisus
    • Lisatud on võimalus kasutada Linuxit Hyper-V hüperviisori (Microsoft Hypervisor) juurekeskkonnana (Dom0, root partition). Host-ökosüsteem vastutab hüperviisori haldamise, külalis süsteemide käivitamise korraldamise, ressursside eraldamise ja seadmega suhtlemise eest. virtuaalmasinad Hyper-V hüperviisori haldamine Linuxis toimub seadme /dev/mshv kaudu.
    • Landlock moodulis, mis pakub privileege mitteomavate programmidele võimalusi Linuxi südamiku objektide (failihierarhiad, võrgu soklid, ioctl jms.) kasutamise piiramiseks, on lisatud auditeerimise mehhanism. Auditeerimine võimaldab põhjalikult hinnata juurdepääsulukkude põhjuseid, mis tekivad Landlock'i kasutamisel, ning mõista, millal ja milline operatsioon oli blokeeritud, miks blokeerimine toimus ja milline reegel kehtis.
    • Lisatud võimalus LSM-moodulite (Linuxi turvamoodulid) rakendamiseks, mis kontrollivad asynchronous I/O süsteemide juurdepääsu io_uring ja võimaldavad blokeerida io_uring'i kasutamise, et vältida juurdepääsu piirangute möödasõitu süsteemikõnede jaoks. Sarnane töötleja on rakendatud LSM-moodulis SELinux.
    • SELinux'is on rakendatud poliitikate kohaldamise võimalus igasuguste kernel'is laaditud andmete tüüpide jaoks, sealhulgas püsivara pildid, turvapoliitikad ja sertifikaadid.
    • Lisatud mälukaardistuse (seal) teatud operatsioonide fikseerimise režiim, mida tuum teostab protsessi aadressiruumis. Fikseerimine viib kaardistuse ainult lugemise režiimi ja ei luba muuta, kui haavatavust kasutatakse. See kehtib vDSO, vsyscall, vvar, sigpage ja uprobes kaardistuste kohta. Vaikimisi režiim on välja lülitatud, kuna see võib teatud rakenduste toimimist häirida. Aktiveerimiseks on lisatud kompileerimise seadistus CONFIG_MSEAL_SYSTEM_MAPPINGS.
  • Võrgu alamsüsteem
    • Jätkub töö võrgu staki vabastamiseks globaalsetest RTNL lukustustest (rtnl_lock) ja nende ümberkujundamine lukustusteks, mis on seotud eraldi võrgu nimede ruumidega.
    • Lisatud algne võimalus saada võrgu pakette läbi io_uring, kopeerides sisu kohe kasutaja ruumis olevasse mälu ilma vahemäluta (zero-copy). Teostatud testides võimaldas muudatus hallata liiklust läbi 200 gigabiti kanalit, kasutades ühte CPU tuuma.
    • Teostatud sysctl tcp_rto_max_ms ja TCP-socketite TCP_RTO_MAX_MS valik, mille kaudu saab seadistada maksimaalse aja pakettide uuesti edastamise katsete vahel.
    • BPF-i on lisatud callback-kutsete seeria, et saada teavet aja kohta erinevates kohtades võrgustiku virnas, mida saab kasutada võrgukeskkonna latentsusprobleemide diagnoosimiseks.
    • Lisatud võrgutegevuse jõudluse optimeerimisi:
      • GRO (Generic Receive Offload) optimeerimine, mis ühendab mitu väikest paketti üheks suureks, on nüüd aktiveeritud paketi töötlemise ülekandmisel teisele CPU-le (koormuse tasakaalustamiseks) ajal, mil kasutatakse XDP (eXpress Data Path) alamsüsteemi, võimaldades pakette töödelda võrgu draiveri tasemel enne nende edastamist võrgustiku virna. TCP-streamide töötlemise jõudluse tõus võib ulatuda kaks korda.
      • Suure koormuse tingimustes on connect() funktsiooni jõudlus suurenenud kuni kahekordseks, asendades spin-blokeerimise RCU (Read-Copy-Update) sünkroonimismehhanismiga, kui otsitakse ühenduse osaliste (algused ja sihid) teaberekke. IP-aadressid ja porte). Täiendavalt on tehtud ka häälestuse optimeerimine, tagades veel 229% jõudluse kasvu.
      • Kiirendatud MPTCP (Multipath TCP) teostus, TCP protokolli laiendus pakettide kohaletoimetamiseks samaaegselt mitme marsruudi kaudu erinevate võrguinterfeisside kaudu, mis on seotud erinevate IP-aadressidega. MPTCP ühes voos on kiirendatud 29%.
      • Netfilter'is lõpetatakse marsruutide otsimise toimingud FIB-is (Forwarding Information Base) olemasoleva sokli tõttu. Tänu sellele optimeerimisele on jõudlus kasvanud 20%.
      • UDP jõudlus fluda (flood) tingimustes on suurenenud 10% võrra, eemaldades liigsed toimingud struktuuri sk_tsflags'iga pakettide vastuvõtmise ajal.
    • Lisatud draiver MCTP-over-USB protokolli teostusega.
  • Seadmed
    • Kernisse on aktsepteeritud Nova draiveri algne teostus NVIDIA GPU-dele, mis on varustatud GSP-puhverserveritega, kasutatavate alates NVIDIA GeForce RTX 2000 seeriast, mis põhineb Turingi mikroarhitektuuril. Draiver on kirjutatud keeles Rust. Esimeses etapis on lisatud ainult nova-core karkass, mis sisaldab umbes 400 koodirida ja rakendab põhitasemel abstraktsioone GSP-puhverserverite tarkvaraliideste üle. Järgmises etapis plaanitakse tuumasse lisada DRM-draiver nova-drm (Direct Rendering Manager), et suhelda GPU-dega kasutajaruumi, samuti VFIO-draiver koos vGPU halduriga, mis võimaldab kasutada virtuaalseid NVIDIA GPU-sid virtualiseerimissüsteemides.
    • Tööd jätkatakse Xe drm-draiveriga (Direct Rendering Manager) Intel Xe arhitektuuri GPU-dele, mida kasutatakse Intel Arc graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Lisatud on SVM (Shared Virtual Memory) tugi, DRMi raamistiku komponent, mis haldab jagatud mälu, mida kasutavad nii CPU kui ka GPU.
    • i915 draiverisse on lisatud uute GPU-de identifikaatorid.
    • Draiveris Nouveau on ümber töötatud GSP RPC ja integreeritud drm_slave_encoder liides.
    • AMDGPU draiveris toetab DCN36 (Display Core Next) arhitektuuri. Lisatud on võimalus määrata oma heledus kõveraid, mida kasutatakse ekraani heleduse korrigeerimiseks.
    • Adreno draiverisse on lisatud tugi Qualcomm Adreno 623 GPU-le.
    • Lisatud tugi Apple Touch Bari puuteplaatidele.
    • Lisatud tugi eUSB2 (eUSB2V2 — Embedded USB2 Version 2.0) teise versiooni laiendusele, mis võimaldab vähendada toitepinget (kuni 1.2 volti) ja suurendada USB 2.0 jõudlust. eUSB2V2 andmeedastuskiirus võib ulatuda 4.8 Gbit sekundis, mis on 10 korda kiirem kui tavalised 480 Mbit sekundis, mis on iseloomulikud USB 2.0-le. eUSB2V2 võimaldab sülearvutite tootjatel varustada oma seadmeid kõrgema resolutsiooniga veebikaameratega, kasutades nende ühendamiseks Embedded USB2 bussi.
    • Lisatud tugi Intel Killer E5000 (RTL8126) Ethernet-adapteritele.
    • Lisatud tugi Visionox RM692E5, Rockchip w552793dba-v10, kingdisplay-kd110n11-51ie ja starry-2082109qfh040022-50e ekraanipaneelidele.
    • Lisatud draiver Samsung Galaxy Book sülearvutitele.
    • Lisatud tugi helisüsteemidele Presonus Studio 1824c, Jabra Evolve 65. Lisatud tugi DSP-moodulitele AMD ACP 7.x, AWINC WM88166, Everest ES8388, Intel AVS PEAKVOL ja GAIN. Parandatud helitugi ASUSi, HP ja Lenovo sülearvutites.
    • Lisatud tugi ARM-plaatidele, SoC-dele ja seadmetele: Arm Morello, AMD (Xilinx) Versal NET, Google Pixel Pro 6, NetCube Kumquat, MYIR Remi Pi, Huawei Matebook E Go, Milk-V Jupiter ST STM32MP2, Mediatek MT8370, Apple T2, Skov (i.MX8MP), EVK (i.MX95), Rockchip RK35xx, Allwinner A523, 11 Toradexi i.MX6 alusel olevat plaati.

Samaaegselt on Ladina-Ameerika Vaba Tarkvara Fond välja töötanud täiesti vaba tuuma variandi 6.15 — Linux-libre 6.15-gnu, mis on puhastatud kõikidest elementidest, mis sisaldavad mittevabasid komponente või koodilõike, mille kasutusala on tootja poolt piiratud. Versioonis 6.15 on neutraliseeritud blobbide laadimine draiverites nova, Qualcomm iris v4l2, Airoha NPU, Tehuti Networks TN40xx 10G ethernet, Realtek 8814A wifi, Apple Silicon SoC puutetundlik ekraan, Renesas UFS ja aw88166 audio. Peatatud draiveri Spider 1Gb ethernet puhastamine, mis on tuumast eemaldatud. Eemaldatud viidatud tivoiseeritud binaarfailide lingid. Rakendatud blobbide laadimise blokeerimine Rusti koodis.

Allikas: opennet.ru

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