PĂ€rast kahte kuud arendust esitles Linus Torvalds Linuxi kernelit versioonis 6.7. MĂ€rkimisvÀÀrsemad muudatused hĂ”lmavad: Bcachefs failisĂŒsteemi integreerimist, Itanium arhitektuuri toe lĂ”petamist, Nouvea töötamise vĂ”imalust GSP-R pĂŒsivara kasutamisel, TLS-krĂŒpteerimise toetamist NVMe-TCP-s, erandite kasutamise vĂ”imalust BPF-is, futexi toe io_uring-is, fq (Fair Queuing) ajakava jĂ”udluse optimeerimist, TCP-AO (TCP Authentication Option) laienduse toe ja vĂ”imalust piirata vĂ”rgukohtumisi Landlocki kaitsemehhanismis, samuti juurdepÀÀsuhalduse lisamist user namespace ja io_uringi kaudu AppArmor-i.
Uude versiooni on vastu vĂ”etud 18405 parandust 2066 arendajalt, plaastri suurus on 72 MB (muudatused puudutasid 13467 faili, lisati 906147 koodirida, kustutati 341048 rida). Eelmises vĂ€ljaandes oli 15291 parandust 2058 arendajalt, plaastri suurus oli 39 MB. Umbes 45% kĂ”igist 6.7 esitatud muudatustest on seotud seadme draiveritega, umbes 14% muudatustest on seotud riistvaraspetsiifilise koodi uuendamisega, 13% on seotud vĂ”rgu kihiga, 5% failisĂŒsteemidega ja 3% tuuma sisemiste sĂŒsteemidega.
Peamised uuendused kerneli 6.7-s:
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- Kerneli koosseisu on aktsepteeritud Bcachefs failisĂŒsteemi kood, kus pĂŒĂŒtakse saavutada XFS-le omane jĂ”udlus, usaldusvÀÀrsus ja skaleeritavus, kombineerituna laienenud funktsionaalsuse elementidega, mis on olemas Btrfs ja ZFS-s. NĂ€iteks toetab Bcachefs selliseid vĂ”imalusi nagu mitme seadme kaasamine ja mitmekihilised salvestuse seadistused (alumine kiht kiiresti kasutatavate andmete jaoks kiirete SSD-de alusel, ĂŒlemine kiht vĂ€hem nĂ”utud andmete jaoks kĂ”vakettadelt), replikatsioon (RAID 1/10), vahemĂ€lu, andmete lĂ€bipaistvad tihendamisreĆŸiimid (LZ4, gzip ja ZSTD), olekuseisundite lĂ”iked (snapshotid), kontrollsummade kaudu terviklikkuse verifitseerimine, vĂ”imalus salvestada Reed-Solomoni paranduskoodid (RAID 5/6) ja teabe salvestamine krĂŒpteeritud kujul (kasutatakse ChaCha20 ja Poly1305). JĂ”udluse poolest ĂŒletab Bcachefs Btrfs-i ja teisi Copy-on-Write mehhanismil pĂ”hinevaid failisĂŒsteeme ning nĂ€itab jĂ”udlust, mis on lĂ€hedane Ext4-ile ja XFS-ile.
- Btrfs faili sĂŒsteemis on saadaval lihtsustatud kvoodireĆŸiim, mis vĂ”imaldab saavutada kĂ”rgemat jĂ”udlust, jĂ€lgides ekstensioone ainult seal, kus need on loodud, mis oluliselt lihtsustab arvutusi ja suurendab jĂ”udlust, kuid ei vĂ”imalda arvestada ekstensioone, mida jagavad mitmed osad.
- Btrfs-s on lisatud uus andmestruktuur "stripe tree", mis sobib loogiliseks ekstensioonide kaardistamiseks olukordades, kus fĂŒĂŒsiline kaardistamine ei ĂŒhti erinevatel seadmetel. Struktuuri kasutatakse praegu RAID0 ja RAID1 rakendustes tsoonitud plokiseadmete jaoks. Tulevikus plaanitakse kasutada seda struktuuri ka kĂ”rgema taseme RAIDis, mis lahendab mitmeid praegusest rakendusest tulenevaid probleeme.
- Ceph faili sĂŒsteemis on rakendatud kasutajate identifikaatorite kaardistamise tugi monteeritud faili sĂŒsteemide jaoks, mida kasutatakse konkreetse kasutaja failide seostamiseks monteeritud vÔÔrasse partitsiooni teise kasutajaga praeguses sĂŒsteemis.
- efivarfs-s on lisatud vÔimalus mÀÀrata uid ja gid monteerimise ajal, et vÔimaldada UEFI muutujaid muuta protsesside poolt, mis on kÀivitatud ilma root Ôigusteta.
- exFAT-s on lisatud ioctl-kutsed faili sĂŒsteemi atribuutide lugemiseks ja muutmiseks. Null-suurusega kataloogide töötlemine on lisatud.
- F2FS-s on rakendatud 16K suuruste plokkide kasutamise vÔimalus.
- autofs automonteerimise mehhanism on ĂŒle viidud uue partitsioonide monteerimise API kasutamisele.
- OverlayFS-is on ettepanekud monteerimise valikute "lowerdir+" ja "datadir+" osas. Lisatud tugi OverlayFS sisemise monteerimise jaoks koos xattrs-iga.
- XFS-is on optimeeritud CPU koormust reaalajas plokkide jaotamise koodis. Tagatud on samal ajal lugemise ja FICLONE toimingute teostamise vÔimalus.
- EXT2 kood on ĂŒle viidud mĂ€lu lehtede folioide kasutamisele.
- MĂ€lu ja sĂŒsteemiteenused
- Ia64 arhitektuuri tugi on lĂ”petatud, mida kasutasid Intel Itanium protsessorid, mille mĂŒĂŒk lĂ”petati tĂ€ielikult 2021. aastal. Itanium protsessorid esitles Intel 2001. aastal, kuid ia64 arhitektuur ei suutnud konkureerida AMD64-ga, peamiselt tĂ€nu AMD64 kĂ”rgemale jĂ”udlusele ja sujuvama ĂŒleminekule 32-bitistelt x86 protsessoritelt. LĂ”puks nihkus Intel'i huvi x86-64 protsessorite suunas, samas kui Itanium jĂ€i kĂ”rvale. serverid HP Integrity, mille tellimuste vastuvĂ”tt lĂ”petati kolm aastat tagasi. Kood ia64 toe jaoks on eemaldatud tuumast pikkade hooldamispauside tĂ”ttu selle platvormi puhul; samas on Linus Torvalds vĂ€ljendanud valmisolekut taastada ia64 tugi tuumas, kuid ainult siis, kui leitakse hooldaja, kes nĂ€itab selle platvormi kvaliteetset hooldust vĂ€hemalt aasta jooksul vĂ€ljaspool peatuuma.
- TuumakĂ€skude read on tĂ€iendatud parameetriga "ia32_emulation", mis vĂ”imaldab kĂ€ivitamisel sisse ja vĂ€lja lĂŒlitada 32-bitise reĆŸiimi emulatsiooni toe x86-64 arhitektuuril valmistatud tuumades. Praktikas vĂ”imaldab uus parameeter ehitada tuuma, mis toetab ĂŒhilduvust 32-bitiste rakendustega, kuid vaikimisi on see reĆŸiim vĂ€lja lĂŒlitatud, et vĂ€hendada tuuma rĂŒndevĂ”ttu, kuna ĂŒhilduvuse API-d on vĂ€hem testitud kui pĂ”hituuma liidesed.
- JĂ€tkub muudatuste ĂŒleviimine Rust-for-Linux harust, mis on seotud Rust keele kasutamisega teise keelena draiverite ja tuuma moodulite arendamisel (Rust tugi ei ole vaikimisi aktiivne ja ei too Rust'i arendust sĂ”ltuvuste kohustuslikuks tuuma koostisosaks). Uues versioonis on ĂŒleminek loodud Rust 1.73 vĂ€ljaanne ja pakutud sidumise komplekt tööde jĂ€rjekordadega (workqueues).
- Kasutamiseks on vÔimaldatud binfmt_misc mehhanismi toetamine uuteks tÀidesaatvate failide formaatide jaoks (nÀiteks Java vÔi Python keeles kompileeritud rakenduste kÀivitamiseks) eraldi privileege mitteomavates nimede ruumides (namespace).
- Cgroup-kontrolleris cpuset, mis vĂ”imaldab hallata CPU tuumade kasutamist ĂŒlesande tĂ€itmisel, on tagatud kohaliku ja eemaloleva sektsioonimise (remote partition) jagamine, mis erineb selle poolest, kas vanem cgroup on Ă”ige juuresektsioon vĂ”i mitte. Cpusetisse on lisatud ka uued seaded âcpuset.cpus.exclusiveâ ja âcpuset.cpus.exclusive.effectiveâ eksklusiivseks sidumiseks CPU-le.
- BPF-alamsĂŒsteemis on rakendatud erandi tugi, mis töödeldakse kui hĂ€davajalik vĂ€ljumine BPF-programmist koos ohutu stacki raamide avamise vĂ”imalusega. Lisaks on BPF-programmides lubatud kptr-punktide kasutamine CPU sidumisel.
- AlamsĂŒsteemi io_uring on lisatud toe operatsioonide jaoks futexitega, samuti on rakendatud uusi operatsioone: IORING_OP_WAITID (asĂŒnkroonne versioon waitid), SOCKET_URING_OP_GETSOCKOPT (getsockopt variatsioon) ja SOCKET_URING_OP_SETSOCKOPT (setsockopt variatsioon) ning IORING_OP_READ_MULTISHOT (korduvad lugemistoimingud, mis ei peatu, kuni andmed on olemas vĂ”i puhver on tĂ€is).
- Lisatud on kergekaaluliste ĂŒhekaupa FIFO-jĂ€rjekordade rakendamine, mis nĂ”uab spin-lock'i vaid jĂ€rjekorrast eemaldamiseks protsessi kontekstis ja mitte nĂ”udvat spin-lock'i aatomseks lisamiseks jĂ€rjekorda igas kontekstis.
- Lisatud on ringpuhver âobjpoolâ koos skaleeritava kĂ”rge jĂ”udlusega jĂ€rjekorra rakendusega objektide eraldamiseks ja tagastamiseks.
- Lisatud on muudatuste algne osa uue API futex2 rakendamiseks, mis paistab silma kĂ”rgema jĂ”udlusega NUMA-sĂŒsteemides, toetab mitte 32-bitiseid suurusi ja vĂ”ib asendada multiplexer-sĂŒsteemikutsungi futex().
- ARM32 ja S390x arhitektuuride jaoks on lisatud toetus ajakohastele BPF kÀsu kogumitele (cpuv4).
- RISC-V arhitektuuri jaoks on rakendatud vĂ”imalus kasutada Clang 17-s saadaval olevat Shadow-Call Stack kontrollimise reĆŸiimi, mis on ette nĂ€htud tagasipööramise aadressi kaitsmiseks funktsioonist vĂ€ljumisel, kui siiras on ĂŒletatud. Kaitse olemus seisneb selles, et pĂ€rast funktsioonile kontrolli ĂŒleandmist salvestatakse tagasipööramise aadress eraldi âvarjatudâ stekkis ning see aadress kaevatakse vĂ€lja enne funktsioonist vĂ€ljapÀÀsu.
- KSM-i (Kernel Samepage Merging) mehhanismi on lisatud uus nutikas mĂ€lulehtede skaneerimise reĆŸiim, mis jĂ€lgib skaneerimisest ebaĂ”nnestunud lehti ja vĂ€hendab nende taasoskansimise intensiivsust. Uue reĆŸiimi aktiveerimiseks on lisatud seade /sys/kernel/mm/ksm/smart_scan.
- Lisatud uus ioctl-kĂ€sk PAGEMAP_SCAN, mis kasutamisel koos userfaultfd()-ga vĂ”imaldab mÀÀrata kirjutamiste faktid kindlasse mĂ€luribasse. Uut funktsionaalsust saab nĂ€iteks kasutada CRIU protsesside oleku salvestamiseks ja taastamiseks vĂ”i mĂ€ngude anti-petmissĂŒsteemides.
- EhitusĂŒsteemis on vaikimisi, kui kasutusel on Clang kompilaator, aktiveeritud perf alamsĂŒsteemi kasutusnĂ€idete kogumine, mis on kirjutatud BPF-programmidena.
- Eemaldatud on vana videobuf kiht, mis oli kasutusel raamivoo juhtimiseks meediaalamsĂŒsteemis ja asendatud ĂŒle 10 aasta tagasi uue videobuf2 teostusega.
- Virtualiseerimine ja turvalisus
- Fscrypt alamsĂŒsteemi on lisatud vĂ”imalus krĂŒpteerida andmeid plokkides, mille suurus on vĂ€iksem kui failisĂŒsteemi ploki suurus. Seda vĂ”ib vajada riistvaraliste krĂŒpteerimismehhanismide rakendamiseks, mis toetavad ainult vĂ€ikseid plokke (nĂ€iteks UFS-kontrollerid, mis toetavad ainult 4096 ploki suurust, saavad kasutada FS-i, mille ploki suurus on 16K).
- Iommufd alamsĂŒsteemi, mis vĂ”imaldab hallata sisse-/vĂ€ljundmĂ€lu IOMMU (I/O Memory-Management Unit) lehekĂŒljed lĂ€bi kasutaja ruumi failide descriptorite, on lisatud mitte veel vahemĂ€lust kustutatud (dirty) andmete jĂ€lgimine DMA operatsioonide jaoks, mis on vajalik mĂ€lu mÀÀratlemiseks, millel on kustutamata andmed protsesside migratsiooni ajal.
- Landlock mehhanismi, mis vĂ”imaldab piirata protsessigruppide suhtlemist vĂ€liskeskkonnaga, on lisatud tugi TCP-sokettide juurdepÀÀsu reeglite mÀÀratlemiseks. NĂ€iteks vĂ”ib luua reegli, mis lubab juurdepÀÀsu ainult 443 vĂ”rguporti kaudu HTTPS-ĂŒhenduste loomisel.
- AppArmore alamsĂŒsteemi on lisatud vĂ”imalus hallata juurdepÀÀsu io_uring mehhanismile ja luua kasutaja identifikaatori (user namespace) nimesid, mis vĂ”imaldab valikuliselt lubada juurdepÀÀsu nendele vĂ”imalustele ainult teatud protsessidele.
- Lisatud on atesteerimise API virtuaalmasinate protsesside laadimise terviklikkuse kinnitamiseks.
- LoongArch-sĂŒsteemides on rakendatud virtualiseerimise tugi KVM-hĂŒperviisori abil.
- RISC-V sĂŒsteemides, kus kasutatakse KVM-hĂŒperviisorit, on lisatud Smstateen laiend, mis blokeerib virtuaalmasina juurdepÀÀsu CPU register'itele, mida hĂŒperviisor selgelt ei toeta. Samuti on lisatud tugi Zicond laiendusele, mis vĂ”imaldab teatud tingimuslike tĂ€isarvutegevuste kasutamist kĂŒlgsete sĂŒsteemide sees.
- KVM-hĂŒperviisori all töötavates x86 arhitektuuriga kĂŒlgsete sĂŒsteemide puhul on lubatud kasutada kuni 4096 virtuaalset CPU-d.
- VĂ”rgusĂŒsteem
- NVMe-TCP (NVMe ĂŒle TCP) draiverisse, mis vĂ”imaldab juurdepÀÀsu NVMe-kettale ĂŒle vĂ”rgu, on lisatud andmeedastuskanali krĂŒpteerimise tugi TLS-i abil (kasutatakse KTLS-i ja kasutaja ruumi tausta protsessi tlshd ĂŒhendumise kokkuleppimiseks).
- Pakettide plaanijate fq (Fair Queuing) jÔudluse optimeerimisel on saavutatud 5% suurune lÀbilaskevÔime tÔus suure koormuse korral tcp_rr (TCP Request/Response) testis ja 13% piiramatute UDP-pakkide voogudes.
- TCP-protokolli on lisatud valikuline ajamĂ€rkide (TCP TS) kasutamise vĂ”imalus mikrosekundi tĂ€psusega (RFC 7323), mis vĂ”imaldab tĂ€psemalt hinnata viivitusi ja luua tĂ€iustatud ĂŒlekandeĂŒlesande mooduleid. Lubamiseks vĂ”ib kasutada kĂ€sku âip route add 10/8 ⊠features tcp_usec_tsâ.
- TCP-kihis on lisatud tugi TCP-AO (TCP Authentication Option, RFC 5925) laiendusele, mis vÔimaldab verifitseerida TCP-pealkirju MAC-koodide (Message Authentication Code) abil, kasutades kaasaegseid algoritme HMAC-SHA1 ja CMAC-AES-128, jÀttes kÔrvale vananenud MD5 pÔhise TCP-MD5 valiku.
- Lisatud on uus virtuaalsete vĂ”rgu seadmete tĂŒĂŒp ânetkitâ, mille andmeedastuslogika on mÀÀratud BPF-programmi abil.
- KSMBD-s, mis töötab tuumatasandil SMB-serverina, on lisatud toetust kaheosalistest sĂŒmbolitest koosnevate failinimede muutmiseks.
- NFS-is on parandatud RPC-teenustega voogude rakendust. Lisatud on kirjutamise delegeerimise tugi (NFSv4.1+ jaoks). NFSD-s on lisatud netlink-töötleja rpc_status. Parandatud on NFSv4.x klientide toetust korduvatel eksportimistel knfsd-s.
- Varustus
- Nouveau tuuma moodulisse on lisatud esmase tugi GSP-RM firmware'ile, mida kasutatakse NVIDIA RTX 20+ GPU-de puhul GPU initsialiseerimise ja haldamise operatsioonide edastamiseks eraldi GSP (GPU System Processor) mikrokontrollerile. GSP-RM tugi vÔimaldab Nouveau draiveril töötada lÀbi firmware'i, mitte otse riistvaraga suhtlemise operatsioonide programmeerimise kaudu, mis lihtsustab uute NVIDIA GPU-de toe lisamist, kasutades juba olemasolevaid kutseid initsialiseerimiseks ja energiatarbimise haldamiseks.
- AMDGPU draiverisse on rakendatud tugi GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 ja DML2. Ăksikasjalikku tuge on parandatud sujuva laadimise (ilma vilkuvuseta videoreĆŸiimi vahetamisel) osas.
- i915 draiverisse on lisatud tugi Intel Meteor Lake kiipidele ja algne rakendus Intel LunarLake (Xe 2).
- On lisatud tugi asĂŒmmeetriliste edastuskanalite jaoks, mis on lisatud USB4 v2 spetsifikatsiooni (120/40G).
- On lisatud ARM SoC tugi: Qualcomm Snapdragon 720G (kasutatakse Xiaomi nutitelefonides), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (kasutatakse ruuteri ja NAS jaoks).
- On lisatud tugi nutitelefonile Fairphone 5 ja ARM-plaatidele Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30.
- On lisatud tugi RISC-V plaatidele Milk-V Pioneer ja Milk-V Duo.
- On lisatud HUAWEI sĂŒlearvutite heliliidese tugi, mis on varustatud AMD CPU-dega. On lisatud tugi tĂ€iendavatele kĂ”laritele, mis on paigaldatud Dell Oasis 13/14/16 sĂŒlearvutitele. On lisatud tugi ASUS K6500ZC integreeritud kĂ”laritele. On lisatud tugi HP 255 G8 ja G10 sĂŒlearvutite vaikuseindikaatorile. On lisatud tugi helidraiveritele acp6.3. On lisatud tugi professionaalsetele helisalvestusliidesele Focusrite Clarett+ 2Pre ja 4Pre.
Samaaeg Latin-Ameerika Vaba Tarkvara Fond esitas tĂ€ielikult tasuta sĂŒdamiku variandi 6.7 â Linux-libre 6.7-gnu, kustutatud kindla tootja poolt piiratult kasutatavatest mittetĂ€iustavatest koostisosadest ja koodilĂ”ikudest. VĂ€ljalaskes 6.7 on vĂ€rskendatud blobs-puhastuskoode erinevates draiverites ja alamsĂŒsteemides, nagu amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs ja btqca. Eemaldatud on localtalk ja rtl8192u draiverite puhastuskoode, kuna need on tuumast vĂ€lja jĂ€etud. ĂlejÀÀnud xhci-pci, rtl8xxxu ja rtw8822b draiverite puhastuskomponendid, mis olid varem vale lisandid, on eemaldatud. Aarch64 arhitektuuri dts-failides on tehtud blobide nimede puhastus. Uute draiverite mt7925, tps6598x, aw87390 ja aw88399 blobs on eemaldatud.
Allikas: opennet.ru
