PĂ€rast kahte kuud arendust tutvustas Linus Torvalds Linuxi tuuma 6.17 vabastamist. KĂ”ige silmapaistvamad muudatused on: Btrfs jĂ”udluse paranemine, sĂŒsteemikutsed file_getattr() ja file_setattr(), ĂŒhtlustamine ĂŒhetuumaliste ja mitme tuumaga konfiguratsioonide vahel ĂŒlesannete planeerijas, DAMON_STAT moodul mĂ€lus juurdepÀÀsu statistika jaoks, Live-patchide tugi ARM64 sĂŒsteemides, core-dumpide edastamine AF_UNIX soketi kaudu, SCHED_EXT-i piiramine cgroupi kaudu, protsessorite haavatavuste kaitse lihtsustamine, muutuja initsialiseerimine stekis Clangis, /proc asendamise kaitse, RV (Runtime Verification) alamkategoria laiendamine, AF_UNIX soketite piiramine AppArmoriga, TCP DualPI2 ĂŒlekande koormuse kontrolli algoritm.
Uude versiooni on lisatud 14334 parandust 2118 arendajalt, patĆĄi suurus on 46 MB (muudatused hĂ”lmasid 12841 faili, lisatud 646654 koodirea, eemaldatud 398782 rida). Eelmises vĂ€ljaandes oli 15924 parandust 2145 arendajalt, patĆĄi suurus oli 50 MB. Umbes 43% kĂ”igist 6.17 versioonis esitatud muutustest on seotud seadme draiveritega, umbes 12% muudatusi on seotud riistvarakoodide ajakohastamisega, 14% on seotud vĂ”rgu pĂ”hikihiga, 4% -ga failisĂŒsteemide ja 3% -ga tuuma sisemistest alamsĂŒsteemidest.
Peamised uuendused tuumas 6.17 (1, 2, 3):
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- Btrfs-ile on lisatud katsetehnoloogia tugivĂ”ime suurte mĂ€lulehtede (large folios) jaoks, mis vĂ€hendab kulusid ja suurendab mitmete toimingute jĂ”udlust. Implementeritud on vaba ruumi jaotamise bitmapide pĂ€ringute vahemĂ€lu, mis on suurendanud tĂŒhjade failide loomise jĂ”udlust 20%. Parandatud on eelarve lugemist sĂŒsteemides, mis kasutavad andmete tihendamist. XArray struktuuris on tagatud tihedam vĂ”tmete paigutamine, mis on suurendanud ulatusseente puude sĂ”lmede kompaktsust ja vĂ”imaldanud vĂ€hendada lĂ”pp-sĂ”lmede arvu 50â70%. Pakkumised on tĂ€iendavad sĂ€tetega tihendamiseks defragmentitud ulatuses.
- FailisĂŒsteemis ext4 on lisatud RWF_DONTCACHE lipuga vahemĂ€lutatud sisendi ja vĂ€ljundi tugi, mille puhul andmed eemaldatakse lehe vahemĂ€lust kohe pĂ€rast toimingu lĂ”petamist.
- FailisĂŒsteemis EROFS on rakendatud metainformatsiooni tihendamise tugi.
- NFS-server suudab nĂŒĂŒd delegeerida kirjutamisoperatsioonid klientidele, kes avavad faile ainult lugemismoodis.
- SĂŒsteemikĂ”ne fallocate() on saanud lipu FALLOC_FL_WRITE_ZEROES, mis vĂ”imaldab tĂ€ita mÀÀratud vahemiku failis nullidega, kasutades mĂ”nede SSD-kettaste toetatud WRITE_ZERO kĂ€sku, mis teostab nullimist ilma sisend-/vĂ€ljundoperatsioonideta. Valik on praegu saadaval ainult faalisĂŒsteemis ext4.
- Lisatud on sĂŒsteemikĂ”ned file_getattr() ja file_setattr() mÀÀratud faili inode'i atribuutide haldamiseks.
- Optiliste meediumite paketireĆŸiimis töötav âpktcdvdâ draiver on eemaldatud, kuna see kuulutati vananenuks 2016. aastal.
- Bcachefs faalisĂŒsteem Linuxi tuumas on viidud vĂ€lise hoolduse reĆŸiimi, mis tĂ€hendab muudatuste vastuvĂ”tmise lĂ”petamist Bcachefsi jaoks peamesse tuumakoodisse, sĂ€ilitades selle faalisĂŒsteemi tuuma koodibaasis. Bcachefsi arendamine toimub vĂ€ljaspool tuumakoodibaasi, kuni Kent Overstreet tĂ”endab vĂ”imalust korrektselt suhelda teiste tuuma arendajatega ja jĂ€rgida vĂ€ljakujunenud arendusreegleid.
- MĂ€lu ja sĂŒsteemiteenused
- Ăheprotsessoriliste konfiguratsioonide tugi on ĂŒlesande planeerijast eemaldatud. Ăhe protsessoriga sĂŒsteemides tuleks nĂŒĂŒd kasutada mitme protsessoriga sĂŒsteemidele (SMP) koostatud tuumasid. Koode ĂŒhe- ja mitme protsessori sĂŒsteemide jaoks on unifitseeritud ja vabastatud liigsetest seotud konfiguratsioonidest, nagu CONFIG_SMP.
- Kerneli moodul DAMON_STAT (Data Access Monitoring Results Stat) on lisatud, mis vÔimaldab jÀlgida juurdepÀÀsu juhtmemoryle, kasutades DAMON (Data Access MONitor) alamvÔrku. Moodul pakub statistikat mitteaktiivsuse (memory_idle_ms_percentiles) ja prognoositud mÀlu lÀbilaskevÔime (estimated_memory_bandwidth) kohta.
- ARM64 arhitektuuriga sĂŒsteemides on realiseeritud Live-patchide tugi, mis vĂ”imaldab Linuxi tuuma parandusi rakendada reaalajas, ilma taaskĂ€ivituseta ja sĂŒsteemi peatamata.
- Minimalistlikus C-raamatukogus nolibc, mis on tarnitud Linuxi tuuma allikate koosseisus ja pakub liidest pĂ”hikoosolekute sĂŒsteemikĂ”nede jaoks, on toetatud SuperH, x32, MIPS n32 ja MIPS n34 arhitektuure.
- Laienud core-dumpide saatmise vĂ”imalust AF_UNIX soketi kaudu, mis vĂ”imaldab luua kasutajaruumis turvalisemaid core-dumpide töötlejat, mis ei sĂ”ltu tuumajĂ”udluse privileegide vĂ€ljakutsest. Uues versioonis on lisatud protokoll, et luua serverid, mis suudavad hallata core-dumpide töötlemist eraldi ĂŒlesannete tasemel. NĂ€iteks on vĂ”imalik mĂ”ne protsessi puhul core-dumpid ignoreerida, teisele aga edastada need soketi kaudu. Eraldi on valmistatud serveri prototĂŒĂŒp core-dumpide haldamiseks.
- Tuuma kÀsurea valik «crashkernel=size,cma» on lisatud, et reserveerida CMA (Contiguous Memory Allocator) kaudu mÀlu space tuuma crash-dumpi salvestamiseks.
- Pidfd mehhanismi vĂ”imalusi on laiendatud, vĂ”imaldades kasutada identifikaatoreid, mis on seotud teatud protsessidega ja millelt ei saa pidiga kĂ”rvale juhtida. Lisatud on vĂ”imalus siduda pidfd laiendatud atribuudid kasutajaruumist. Lubatud on avada failide deskriptorid pidfd jaoks open_by_handle_at() funktsiooni kaudu ilma failisĂŒsteemiga sidumiseta. Tuuma poolt koos pidfd-ga loodud siseteave on nĂŒĂŒd seotud protsessiga, mitte pidfd-ga ja salvestatakse sama protsessi korduvatel avamistel.
- BPF alam sĂŒsteemi on lisatud funktsioon bpf_cgroup_read_xattr(), et lugeda failide laiendatud atribuute. Antud on vĂ”imalus kasutada BPF-programmides tĂŒĂŒpilisi stringi operatsioone nagu bpf_strcmp, bpf_strnchr, bpf_strchrnul, bpf_strlen ja bpf_strspn, mis töötavad ainult lugemisreĆŸiimis. Lisatud on tavavoolude stdout ja stderr kasutamise vĂ”imalus, et suhelda kasutajaruumi komponentidega. LoongArch arhitektuuriga sĂŒsteemide jaoks on BPF-is rakendatud dĂŒnaamilise koodi modifitseerimise vĂ”imalus, mehhanismi âBPF trampolineâ (mis vĂ€hendab tuuma ja BPF-programmide vaheliste kĂ”nede edastamise kulusid) ja programmide kĂ€ivitamine, mis kasutavad struct_ops'i tuumafunktsioonide töötlejate loomiseks BPF kaudu.
- AjaarvestussĂŒsteemis on rakendatud abikellade (auxiliary) toetust, mis ei sĂ”ltu tavalistest sĂŒsteemi kelladest ning kulgevad oma rĂŒtmi jĂ€rgi (varem liikusid kĂ”ik kellad sama rĂŒtmi ja erinesid ainult nihkega).
- Lisatud esialgne tugi proxy-kĂ€itamise (Proxy Execution) jaoks, et leevendada prioriteetide pöördumise probleeme. Proxy-kĂ€itamine vĂ”imaldab tehtel, mis ootab lukustuse vabastamist, edastada oma tĂ€itmisĂŒhe lukustust hoidvale tegevusele, et kiirendada selle lukustuse vabastamist.
- KĂ€ib Rust-for-Linux haru muudatuste edasiviimine, mis on seotud Rusti kasutamisega teise keele asemel draiverite ja tuumamoodulite arendamisel (Rusti tugi ei ole vaikimisi aktiivne ja ei too kaasa Rusti lisamist tuuma kohustuslike sĂ”ltuvuste hulka). Lisatud abstraktsioonid pingeregulaatorite ja voolu reguleerimiseks, pĂŒsivara omaduste, sisend-/vĂ€ljundressursside ja mĂ€lu sisend-/vĂ€ljundressursside haldamiseks. Tehtud makro âwarn_on!()â rakendamine. Lisatud UserPtr tĂŒĂŒp kasutajaruumi nĂ€idikute jaoks. TĂ€iendatud funktsioone moodulites workqueue, uaccess, dma, time ja list. Lisatud moodul 'bits' funktsioonide 'bit' ja 'genmask' abil.
- CRC kontrollsummade arvutamise kood ĂŒmber kirjutatud ja lisatud uued kĂ”ned SHA-1 ja SHA-2 hashide genereerimiseks. Lisatud arhitektuurispetsiifilised optimeerimised. Funktsiooni crc32c() jĂ”udlust on parandatud uute x86_64 CPUde puhul, mis toetavad VPCLMULQDQ (Vector Carry-Less Multiplication of Quadwords) laiendust.
- S390 sĂŒsteemidele on loodud tugi katkestuste haldamiseks vahetusfaili ja suurte mĂ€lulehtede (transparent huge page) migratsiooniks.
- Lisatud vĂ”imalus seadistada mĂ€lulehtede agressiivsuse vabastamist (proactive-reclaim) nende puudumise korral, sidudes selle eraldi NUMA sĂ”lmedega, vĂ”imaldades valida NUMA sĂ”lmed, mille jaoks rakendatakse efektiivsemat mĂ€luruumi vabastamist. NĂ€iteks: âecho â512M swappiness=10âł > /sys/devices/system/node/node1/reclaimâ.
- SCHED_EXT mehhanismi, mis vÔimaldab BPF-i kasutada CPU planeerijate loomiseks, on lisatud vÔimalus hallata ribalaiust cgroupi kaudu. NÀiteks saab kasutada cpu.max parameetrit CPU koormuse piiramise jaoks.
- Teatatud on tracefsi virtuaalse FS automaatse mountimise mahajÀtmisest katalooge /sys/kernel/debug/tracing ja selle asemel tuleks kasutada /sys/kernel/tracing.
- Virtualiseerimine ja turvalisus
- Lisatud vĂ”imalus aktiveerida CPU ohjeldus haavatavuste eest rĂŒnnakute takistavate vektorite valimise abil. kui teatud haavatavusi seadetes ei ole. Blokeerimise meetodid valitakse sĂ”ltuvalt eraldusvĂ”ime rikkumise tĂŒĂŒbist: kasutaja ja tuuma (user-kernel), kasutaja ja teise kasutaja (user-user), kĂŒlalisĂŒsteemi ja hostkeskkonna (guest-host), erinevate kĂŒlalisĂŒsteemide (guest-guest) ning erinevate voogude (cross-thread) vahel. Pakutud lĂ€henemine vĂ”imaldab aktiveerida ainult need kaitseklassid, mis kasutajat tĂ”eliselt huvitavad. NĂ€iteks saavad pilvesĂŒsteemide omanikud aktiveerida guest-host ja guest-guest reĆŸiimid, pĂ€rast mida aktiveeritakse kaitsemeetmed haavatavuste vastu BHI, GD, L1TF, MDS, MMIO, Retbleed, RFDS, Spectre_v2, SRBDS, SRSO ja TAA.
- Lisatud tugi Clangi kompilaatori ehitusele, kus on aktiveeritud stack depth tracking reĆŸiim, milles algsetakse kĂ”ik steigis hoitavad muutujad. Algseadmine toimub, et vĂ€ltida teabe lekkimist tuumast mittealgsetest muutujatest, mis vĂ”ivad sisaldada jÀÀke varem steigis salvestatud andmetest. Enne seda toetas sarnane vĂ”imalus GCC plugina STACKLEAK kasutamisel.
- Lisatud kaitse rĂŒndaja failisĂŒsteemi /proc simuleerimise vastu, monteerides reĆŸiimis 'bind'. /proc juurkĂ”vaketta inode number on nĂŒĂŒd fikseeritud (PROCFS_ROOT_INO) ja seda saab kontrollida kasutajaruumi protsessi abil.
- RV (Runtime Verification) alamsĂŒsteemi, mis on ette nĂ€htud kĂ”rge usaldusvÀÀrsusega sĂŒsteemide toimimise kontrollimiseks, on lisatud rtapp (Reaalajas rakenduste monitor) komponent, et jĂ€lgida tĂŒĂŒpilisi probleeme reaalajas töötavates rakendustes, samuti komponendid rp, sssw ja opid ĂŒlesande ajakava testimiseks. On rakendatud vĂ”imalus luua jĂ€lgimiskomponente, mis kasutavad kĂ€itumismudeli mÀÀramiseks lineaartseid ajaloogikaid detsise automatismi asemel. Kontroll toimub tĂ€itmise ajal, kinnitades kĂ€sitlejaid jĂ€lgimispunktidele, mis vĂ”rreldavad tegelikku tĂ€itmisprotsessi eelnevalt mÀÀratletud viidete mudeliga, mÀÀrates sĂŒsteemi oodatud kĂ€itumise.
- AppArmouri sĂŒsteemi on lisatud tugi AF_UNIX soklitele juurdepÀÀsu haldamiseks.
- KVM hĂŒperviisoril ARM sĂŒsteemides on rakendatud GICv5 katkestuste kontrollimise tuge.
- Lisatud seadistus CONFIG_KVM_IOAPIC, mis vÔimaldab KVM-is APIC, PIC ja PIT emulatsiooni toe keelata.
- Lisatud kaitse VMSCAPE haavatavuse vastu.
- Lisatud ioctl-kÀsk FS_IOC_GETLBMD_CAP, et saada kasutajaruumi kaudu faili terviklikkuse kaitseks rakendatud vahendite teavet.
- Vahetus /sys/fs/selinux/user liides on kuulutatud vananenuks, mille kasutamine toob kaasa viie sekundi viivituse ja logisse hoiatuse.
- VĂ”rgusĂŒsteem
- PSE (Power Sourcing Equipment) tehnoloogia rakendusse, mida kasutatakse toitmiseks Etherneti kaudu selliste seadmete nagu IP-kaamerad ja traadita juurdepÀÀsupunktid, on lisatud konfigureeritavad toite hindamise strateegiad. Need strateegiad mÀÀravad, milliseid porte tuleb esimesena keelata, et vĂ€ltida ĂŒlekoormust.
- MCTP (Management Component Transport Protocol) protokolli rakendusse on lisatud paketihaldus vÀliste sÔlmede kaudu vahe sÔlmede (gateway-routing) kaudu. NÀiteks allolevad reeglid suunavad paketid, mille identifikaator on 10 (Endpoint ID 10), seadme mctpi2c0 kaudu, kasutades aadressi 0x1d, mis on otse seotud sÔlmega, mille identifikaator on 9. mctp route add 9 via mctpi2c0 mctp neigh add 9 dev mctpi2c0 lladdr 0x1d mctp route add 10 gw 9
- UNIX-soketitele (AF_UNIX) on rakendatud vÔimalus SO_INC ja VSOCK aadressipere puhul vÔimalus SIOCINQ. Need rakendatud vÔimalused on sarnased TCP-le mÔeldud TCP_INQ vÔimalusega ja vÔimaldavad juhtimisteate kaudu saada teavet soketis lugemiseks saadaval olevate baitide arvu kohta.
- TCP puhul on rangelt jĂ€rgitud kuulutatud vastuvĂ”tu akna suurust, mis mÀÀrab andmete suuruse, mille saatmine on lubatud, enne kui teine osapool saadab ACK-kinnituse. Varasemalt töötles kernel andmeid, mis tulid ĂŒle kuulutatud vastuvĂ”tu akna, kuid nĂŒĂŒd lĂ”petab see selle tegemise.
- MPTCP (Multipath TCP) rakendusse on lisatud vÔimalus kasutada TCP_MAXSEG soketi valikut, et piirata saadetavate segmentide maksimaalset suurust. MPTCP on TCP protokolli laiendus, mis korraldab pakettide edastamist samaaegselt mitme marsruudi kaudu erinevate vÔrguliideste kaudu, mis on seotud erinevate IP-aadressidega.
- Lisatud tugi TCP koormuse kontrollimise algoritmile DualPI2 (RFC 9332), mis vÔimaldab kasutada skaleeritavaid koormuse kontrollereid liiklusele, millel on kÔrged teenuse kvaliteedi nÔudmised (nt TCP-Prague ja DCTCP), ilma et see vÀhendaks klassikalise liikluse jÔudlust, mille jaoks kasutatakse selliseid koormuse kontrollereid nagu Reno ja Cubic.
- Lisatud sysctl "force_forwarding", mille kaudu saab aktiveerida liikluse suunamise valitud vÔrgu liidestel IPv6-ga.
- Eemaldatud pakettide kaotuse mÀÀramise algoritmi SACK (Selective Acknowledgment) tugi, mis on kirjeldatud RFC 6675-s. See algoritm kuulutati 2018. aastal aegunuks. TCP-pakettide kaotuse mÀÀramiseks soovitatakse kasutada RACK-TLP algoritmi.
- Varustus
- JÀtkub Intel Xe arhidektuuril pÔhineva GPU drm-draiveri (Direct Rendering Manager) arendamine, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Uues versioonis on vaikimisi lisatud tugi Panthor Lake mikroarhidektuuril pÔhinevatele kiipidele ja WildCat Lake mikroarhidektuurile.
- AMDGPU draiveris GFX9.x GPU jaoks on rakendatud Cleaner Shader mehhanismi tugi, mis tagab GPU mĂ€lu puhastamise enne selle uuesti kasutamist, et vĂ€ltida andmelekkeid, mis jÀÀvad pĂ€rast muu protsessi tööd. Parandatud ootereĆŸiimi tugi. Lisatud suutlikkus uinuda keskkondades, kus on AMD SR-IOV. Parandatud taustvalgustuse juhtimist.
- i915 draiveris on rakendatud drm_panic mehhanismi tugi, mis kuvab tÔrgete korral sarnase "sinise ekraani". Lisatud tugi ekraanide kontrollerile, mida kasutatakse Wildcat Lake seeria kiipides.
- JĂ€tkub NVIDIA GSP-firmware'iga varustatud Nova draiveri komponentide integreerimine, mida kasutatakse alates NVIDIA GeForce RTX 2000 seeriast, mis pĂ”hinevad Turing mikroarhidektuuril. Draiver on kirjutatud Rust keeles. Uues versioonis on lisatud abstraktsioonikiht DMA töötlemiseks, rakendatud VBIOS parseerija, lisatud kood frame bufferi seadistamiseks ja tagatud kiirendatud laadimise tugi Falcon reĆŸiimis.
- Adreno draiveris on lisatud Qualcomm Adreno x1-45 ja x1-85 GPU tugi.
- msm draiveris on lisatud tugi Adreno SM8750 GPU ja videomÀlu (VM_BIND) seotud kaardistamise jaoks.
- panfrost draiveris on lisatud Mali GPU tugi, mida kasutatakse Mediatek mt8370 SoC-des.
- Lima draiverisse on lisatud GPU tugi, mida kasutatakse SoC Rockchip RK3528-s.
- Lisatud on mtd (Memory Technology Devices) draiver, et pÀÀseda juurde Intel GPU-sse integreeritud NVM-mÀlule.
- Lisatud toetust ASoC helisĂŒsteemidele: IMX WM8524, AMD ACP7.2, SoundWire ACP 7.1, Fairphone 4 & 5, Qualcomm QCS8275, Framework Laptop 13 (AMD Ryzen AI 300), CS35L41 HDA (kasutatav ASUS sĂŒlearvutites), Richtek RTQ9124, TI TAS5753, HP EliteBook x360 830 G6, EliteBook 830 G6, LG 16Z90R-A, HP 15-fc000. HD-audio kood on ĂŒmber korraldatud.
- Lisatud tugi ARM-plaatidele, SoC-dele ja seadmetele: NVIDIA Tegra264, Marvell PXA1908 (esimene 64-bitine kiip Marvelli poolt nutitelefonide jaoks), CIX P1, Axiado AX3000, Sophgo SG2000 (kombineerib ARM ja RISC-V tuumad), Mediatek mt6572, exynos2200 (kasutatav Samsung Galaxy S22-s), Renesas R-Car V4M-7, TI am62d2 ja Sophgo sg2042, sĂŒlearvutid Mediatek mt8186 ja Qualcomm Snapdragon X1 baasil, nutitelefonid ja tahvelarvutid SoC-dega mt6572, tegra30 ja msm8976.
Samas on Ladina-Ameerika Vaba Tarkvara Fond loonud tĂ€iesti vaba Linuxi 6.17 tuuma versiooni â Linux-libre 6.17-gnu, mis on puhastatud tootja poolt piiratud komponendidega vĂ”i koodilĂ”ikudega, mis sisaldavad mitte-vabu elemente. Versioonis 6.17 on uuendatud amdgpu, prueth, iwlwifi, btusb, pci mhi host, adreno a6xx, nova-core ja Intel AVS draiverite blobide puhastamise koodi. Puhastatud on blobide nimekirjad dts-failides (devicetree) ARM-kiipidele ja Intel IPU7-le. Uute pci hda draiverite blobide laadimine on neutraliseeritud. Blobide puhastamine QLogic infiniband draiveris, mis on tuumast eemaldatud, on lĂ”petatud.
Allikas: opennet.ru
