Linux 6.7 branduolio leidimas

Po dviejų mėnesių kūrimo Linusas Torvaldsas pristatė Linux branduolio 6.7 versiją. Tarp ryškiausių pakeitimų: Bcachefs failų sistemos integravimas, Itanium architektūros palaikymo pabaiga, Nouvea galimybė dirbti su GSP-R programine įranga, TLS šifravimo palaikymas NVMe-TCP, galimybė naudoti išimtis BPF. , futex palaikymas io_uring, fq (Fair Queuing) planavimo priemonės našumo optimizavimas, TCP-AO plėtinio palaikymas (TCP autentifikavimo parinktis) ir galimybė apriboti tinklo ryšius Landlock saugos mechanizme, pridėta prieigos prie vartotojo vardų erdvės kontrolė ir io_uring per AppArmor.

Naujoje versijoje yra 18405 2066 pataisymai iš 72 13467 kūrėjų, pataisos dydis – 906147 MB (pakeitimai palietė 341048 15291 failus, pridėta 2058 39 kodo eilutės, ištrinta 45 6.7 eilutės). Paskutinėje laidoje buvo 14 pataisymas iš 13 kūrėjų, pataisos dydis buvo 5 MB. Apie 3% visų pakeitimų, pateiktų XNUMX versijoje, yra susiję su įrenginių tvarkyklėmis, maždaug XNUMX% pakeitimų yra susiję su aparatinės įrangos architektūroms būdingo kodo atnaujinimu, XNUMX% yra susiję su tinklo dėku, XNUMX% yra susiję su failų sistemomis ir XNUMX% yra susiję su vidiniais branduolio posistemiais.

Pagrindinės 6.7 branduolio naujovės:

  • Disko posistemis, I/O ir failų sistemos
    • Branduolys priima Bcachefs failų sistemos kodą, kuris bando pasiekti XFS našumą, patikimumą ir mastelio keitimą kartu su pažangių funkcijų elementais, esančiais Btrfs ir ZFS. Pavyzdžiui, „Bcachefs“ palaiko tokias funkcijas, kaip kelių įrenginių įtraukimas į skaidinį, kelių sluoksnių disko išdėstymas (apatinis sluoksnis su dažnai naudojamais duomenimis, pagrįstais greitais SSD diskais, o viršutinis sluoksnis su mažiau naudojamais duomenimis iš standžiųjų diskų), replikacija (RAID). 1/10), talpyklos kaupimas , skaidrus duomenų glaudinimas (LZ4, gzip ir ZSTD režimai), būsenos pjūviai (momentinės nuotraukos), vientisumo patikrinimas naudojant kontrolines sumas, galimybė saugoti Reed-Solomon klaidų taisymo kodus (RAID 5/6), informacijos saugojimas šifruota forma (naudojami ChaCha20 ir Poly1305 ). Kalbant apie našumą, „Bcachefs“ lenkia „Btrfs“ ir kitas failų sistemas, pagrįstas „Copy-on-Write“ mechanizmu, ir demonstruoja veikimo greitį, artimą Ext4 ir XFS.
    • Btrfs failų sistemoje įdiegtas supaprastintas kvotos režimas, leidžiantis pasiekti didesnį našumą stebint apimtis tik tame poskyryje, kuriame jie sukurti, o tai žymiai supaprastina skaičiavimus ir pagerina našumą, tačiau neleidžia atsižvelgti į apimtis, bendrinamus keliuose. poskyriai.
    • „Btrfs“ pridėjo naują „juostelių medžio“ duomenų struktūrą, tinkančią loginiam masto atvaizdavimui tais atvejais, kai fiziniai atvaizdai nesutampa skirtinguose įrenginiuose. Struktūra šiuo metu naudojama RAID0 ir RAID1 diegimuose zoniniams blokiniams įrenginiams. Ateityje jie planuoja naudoti šią struktūrą aukštesnio lygio RAID, o tai išspręs daugybę dabartinio diegimo problemų.
    • Ceph failų sistema įgyvendina prijungtų failų sistemų vartotojo ID susiejimo palaikymą, naudojamą konkretaus vartotojo failams prijungtame svetimame skaidinyje suderinti su kitu esamos sistemos vartotoju.
    • Pridėta galimybė nurodyti uid ir gid on mount prie efivarfs, kad ne šakniniai procesai galėtų keisti UEFI kintamuosius.
    • Į exFAT įtraukti ioctl iškvietimai, skirti skaityti ir keisti FS atributus. Pridėtas nulinio dydžio katalogų tvarkymas.
    • F2FS įgyvendina galimybę naudoti 16K blokus.
    • Autofs automatinio prijungimo mechanizmas buvo perjungtas, kad būtų naudojama nauja skaidinio montavimo API.
    • OverlayFS siūlo „lowerdir+“ ir „datadir+“ montavimo parinktis. Pridėtas įdėto OverlayFS montavimo su xattrs palaikymas.
    • XFS optimizavo procesoriaus apkrovą realiojo laiko blokų paskirstymo kode. Suteikiama galimybė vienu metu atlikti skaitymo ir FICLONE operacijas.
    • EXT2 kodas buvo konvertuotas į puslapių aplankus.
  • Atminties ir sistemos paslaugos
    • „Intel Itanium“ procesoriuose, kurie buvo visiškai nutraukti 64 m., ia2021 architektūros palaikymas buvo nutrauktas. Itanium procesorius Intel pristatė 2001 m., tačiau ia64 architektūra nesugebėjo konkuruoti su AMD64, daugiausia dėl didesnio AMD64 našumo ir sklandesnio perėjimo nuo 32 bitų x86 procesorių. Dėl to „Intel“ interesai nukrypo į x86-64 procesorius, o „Itanium“ dalis liko „HP Integrity“ serveriai, kurių užsakymai buvo sustabdyti prieš trejus metus. ia64 palaikymo kodas buvo pašalintas iš branduolio daugiausia dėl ilgalaikio šios platformos palaikymo trūkumo, o Linusas Torvaldsas išreiškė norą grąžinti ia64 palaikymą branduoliui, tačiau tik tuo atveju, jei yra prižiūrėtojas, galintis parodyti aukštą kokybę. šios platformos palaikymas už pagrindinio branduolio ribų mažiausiai metus.
    • Pridėtas branduolio eilutės komandos parametras „ia32_emulation“, leidžiantis įjungti arba išjungti 32 bitų režimo emuliacijos palaikymą branduoliuose, sukurtuose x86-64 architektūrai įkrovos etape. Kalbant apie praktinę pusę, naujoji parinktis leidžia sukurti branduolį, palaikantį suderinamumą su 32 bitų programomis, tačiau pagal numatytuosius nustatymus išjunkite šį režimą, kad sumažintumėte branduolio atakos vektorių, nes suderinamumo API yra mažiau išbandyta nei pagrindinis branduolys. sąsajos.
    • Tęsiamas pakeitimų perkėlimas iš Rust-for-Linux šakos, susijusių su Rust kalbos kaip antrosios kalbos naudojimu kuriant tvarkykles ir branduolio modulius (Rust palaikymas pagal numatytuosius nustatymus nėra aktyvus ir dėl to Rust neįtraukiama tarp reikalingos branduolio surinkimo priklausomybės). Naujoji versija pereina prie „Rust 1.73“ leidimo ir siūlo susiejimo rinkinį darbui su darbo eilėmis.
    • Galima naudoti mechanizmą binfmt_misc, kad būtų galima pridėti naujų vykdomųjų failų formatų palaikymą (pavyzdžiui, paleisti sukompiliuotas Java arba Python programas) atskirose neprivilegijuotose vardų erdvėse.
    • Cgroup valdiklis cpuset, leidžiantis valdyti procesoriaus branduolių naudojimą vykdant užduotį, suteikia padalijimą į vietinius ir nuotolinius skaidinius, kurie skiriasi tuo, ar pagrindinė cgroup yra teisinga šakninė sekcija, ar ne. Nauji nustatymai „cpuset.cpus.exclusive“ ir „cpuset.cpus.excluisve.effective“ taip pat buvo įtraukti į cpuset, kad būtų galima išskirtinai susieti CPU.
    • BPF posistemis įgyvendina išimčių palaikymą, kurios apdorojamos kaip avarinis išėjimas iš BPF programos su galimybe saugiai išvynioti krūvos rėmus. Be to, BPF programos leidžia naudoti kptr rodykles, susijusias su CPU.
    • Operacijų su futex palaikymas buvo įtrauktas į io_uring posistemį ir įdiegtos naujos operacijos: IORING_OP_WAITID (asinchroninė waitid versija), SOCKET_URING_OP_GETSOCKOPT (getsockoptand parinktis), SOCKET_URING_OP_SETSOCKOPT (setsockopt parinktis) ir IOROTING_M, kuri nesustabdo operacijos_OPpleIS_REAHODORULT. yra duomenų arba nėra pilnas buferis).
    • Pridėtas paprastų, vieną kartą sujungtų FIFO eilių, kurioms reikalingas sukimosi užraktas tik norint pašalinti iš eilės proceso kontekste, diegimas, o be sukimosi blokavimo, norint bet kuriame kontekste eilę papildyti atomais.
    • Pridėtas žiedinis buferis „objpool“ su keičiamu didelio našumo eilės įgyvendinimu objektams paskirstyti ir grąžinti.
    • Pradinė pakeitimų dalis buvo pridėta siekiant įgyvendinti naują futex2 API, kuri geriau veikia NUMA sistemose, palaiko kitus nei 32 bitų dydžius ir gali būti naudojama vietoj multipleksuoto futex() sistemos iškvietimo.
    • ARM32 ir S390x architektūroms pridėtas dabartinio BPF instrukcijų rinkinio (cpuv4) palaikymas.
    • RISC-V architektūrai galima naudoti „Clang 17“ pasiekiamą „Shadow-Call Stack“ tikrinimo režimą, skirtą apsaugoti nuo funkcijos grąžinimo adreso perrašymo, jei krūvoje perpildomas buferis. Apsaugos esmė – grąžinimo adreso išsaugojimas atskirame „šešėliniame“ krūvelėje, perdavus valdymą funkcijai ir gavus šį adresą prieš išeinant iš funkcijos.
    • Prie identiškų atminties puslapių sujungimo mechanizmo (KSM: Kernel Samepage Merging) pridėtas naujas išmanusis atminties puslapių nuskaitymo režimas, kuris seka nesėkmingai nuskaitytus puslapius ir sumažina jų pakartotinio nuskaitymo intensyvumą. Norint įjungti naują režimą, buvo pridėtas parametras /sys/kernel/mm/ksm/smart_scan.
    • Pridėta nauja ioctl komanda PAGEMAP_SCAN, kuri, naudojant su userfaultfd(), leidžia nustatyti įrašymo į konkretų atminties diapazoną faktus. Pavyzdžiui, naujoji funkcija gali būti naudojama sistemoje norint išsaugoti ir atkurti CRIU procesų būseną arba žaidimų kovos su sukčiavimu sistemose.
    • Surinkimo sistemoje, jei yra Clang kompiliatorius, perf posistemio naudojimo pavyzdžių surinkimas, parašytas kaip BPF programos, yra įjungtas pagal numatytuosius nustatymus.
    • Senasis „videobuf“ sluoksnis, kuris buvo naudojamas žiniasklaidos posistemio kadrų buferiams valdyti ir buvo pakeistas nauju „videobuf10“ diegimu daugiau nei prieš 2 metų, buvo pašalintas.
  • Virtualizacija ir saugumas
    • Galimybė šifruoti duomenis blokais, mažesniais už bloko dydį failų sistemoje, buvo įtraukta į fscrypt posistemį. To gali prireikti norint įjungti aparatinės įrangos šifravimo mechanizmus, kurie palaiko tik mažus blokus (pavyzdžiui, UFS valdikliai, palaikantys tik 4096 bloko dydį, gali būti naudojami su failų sistema, kurios bloko dydis yra 16K).
    • „iommufd“ posistemis, leidžiantis valdyti IOMMU (I/O Memory-Management Unit) atminties puslapių lenteles naudojant failų deskriptorius iš vartotojo erdvės, įtraukė duomenų, kurie dar nebuvo išplauti iš talpyklos (nešvarių) DMA, stebėjimą. operacijos, reikalingos norint nustatyti atmintį su neišsausintais duomenimis proceso migracijos metu.
    • Prie „Landlock“ mechanizmo buvo pridėtas TCP lizdų prieigos kontrolės taisyklių apibrėžimo palaikymas, leidžiantis apriboti procesų grupės sąveiką su išorine aplinka. Pavyzdžiui, galite sukurti taisyklę, leidžiančią pasiekti tik 443 tinklo prievadą HTTPS ryšiams užmegzti.
    • AppArmor posistemis papildė galimybę valdyti prieigą prie io_uring mechanizmo ir kurti vartotojų vardų erdves, kas leidžia pasirinktinai leisti prieiti prie šių galimybių tik tam tikriems procesams.
    • Pridėta virtualios mašinos atestavimo API, kad patikrintų virtualios mašinos įkrovos proceso vientisumą.
    • „LoongArch“ sistemos palaiko virtualizaciją naudojant KVM hipervizorių.
    • Naudojant KVM hipervizorių RISC-V sistemose, atsirado Smstateen plėtinio palaikymas, kuris blokuoja virtualią mašiną prieiti prie CPU registrų, kurių hipervizorius aiškiai nepalaiko. Taip pat pridėtas „Zicond“ plėtinio naudojimo svečių sistemose palaikymas, leidžiantis naudoti kai kurias sąlygines sveikųjų skaičių operacijas.
    • x86 pagrįstose svečių sistemose, veikiančiose pagal KVM, leidžiama naudoti iki 4096 virtualių procesorių.
  • Tinklo posistemis
    • NVMe-TCP (NVMe per TCP) tvarkyklė, leidžianti pasiekti NVMe diskus tinkle (NVM Express over Fabrics), naudojant TCP protokolą, papildė duomenų perdavimo kanalo šifravimo naudojant TLS palaikymą (naudojant KTLS ir foninį procesą). vartotojo erdvėje tlshd deryboms dėl ryšio).
    • Buvo optimizuotas fq (Fair Queuing) paketų planuotojo našumas, todėl tcp_rr (TCP Request/Response) teste esant didelei apkrovai pralaidumas buvo padidintas 5%, o naudojant neribotą UDP paketų srautą - 13%.
    • TCP prideda pasirenkamą mikrosekundžių tikslumo laiko žymos (TCP TS) galimybę (RFC 7323), kuri leidžia tiksliau įvertinti delsą ir pažangesnius perkrovos valdymo modulius. Norėdami tai įjungti, galite naudoti komandą „ip route add 10/8 ... features tcp_usec_ts“.
    • TCP dėklas papildė TCP-AO plėtinį (TCP autentifikavimo parinktis, RFC 5925), kuris leidžia patikrinti TCP antraštes naudojant MAC kodus (pranešimo autentifikavimo kodą), naudojant modernesnius algoritmus HMAC-SHA1 ir CMAC-AES- 128 vietoj anksčiau galimos TCP-MD5 parinkties, pagrįstos senuoju MD5 algoritmu.
    • Pridėtas naujas virtualaus tinklo įrenginių tipas „netkit“, kurio duomenų perdavimo logika nustatoma naudojant BPF programą.
    • KSMBD, SMB serverio branduolio lygio diegimas, pridėjo palaikymą, sprendžiant failų pavadinimus, kuriuose yra pakaitinių sudėtinių simbolių porų.
    • NFS patobulino gijų diegimą su RPC paslaugomis. Pridėtas rašymo delegavimo palaikymas (skirtas NFSv4.1+). NFSD pridėjo rpc_status tinklo nuorodos tvarkyklės palaikymą. Patobulintas NFSv4.x klientų palaikymas reeksportuojant į knfsd.
  • įranga
    • Pradinis GSP-RM programinės aparatinės įrangos palaikymas buvo įtrauktas į Nouveau branduolio modulį, kuris naudojamas NVIDIA RTX 20+ GPU inicijavimo ir GPU valdymo operacijoms perkelti į atskirą GSP mikrovaldiklį (GPU sistemos procesorių). GSP-RM palaikymas leidžia Nouveau tvarkyklei dirbti naudojant programinės įrangos skambučius, o ne tiesiogiai programuojant aparatinės įrangos sąveikas, todėl daug lengviau pridėti naujų NVIDIA GPU palaikymą naudojant iš anksto sukurtus inicijavimo ir energijos valdymo iškvietimus.
    • AMDGPU tvarkyklė palaiko GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 ir DML2. Pagerintas sklandaus įkėlimo palaikymas (jokio mirgėjimo perjungiant vaizdo režimą).
    • „i915“ tvarkyklė palaiko „Intel Meteor Lake“ lustus ir prideda pradinį „Intel LunarLake“ (Xe 2) diegimą.
    • Pridėtas asimetrinių perdavimo kanalų palaikymas, pridėtas prie USB4 v2 (120/40G) specifikacijos.
    • Pridėtas ARM SoC palaikymas: Qualcomm Snapdragon 720G (naudojamas Xiaomi išmaniuosiuose telefonuose), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (naudojamas maršrutizatoriuose ir NAS).
    • Pridėtas „Fairphone 5“ išmaniojo telefono ir ARM plokščių „Orange Pi 5“, „QuartzPro64“, „Turing RK1“, „Variscite MX6“, „BigTreeTech CB1“, „Freescale LX2162“, „Google Spherion“, „Google Hayato“, „Genio 1200 EVK, RK3566 Powkiddy RGB30“ palaikymas.
    • Pridėtas palaikymas RISC-V plokštėms Milk-V Pioneer ir Milk-V Duo.
    • Pridėtas HUAWEI nešiojamųjų kompiuterių, tiekiamų su AMD procesoriais, garso sąsajų palaikymas. Pridėtas papildomų garsiakalbių, įdiegtų Dell Oasis 13/14/16 nešiojamuosiuose kompiuteriuose, palaikymas. Pridėtas įmontuotų garsiakalbių ASUS K6500ZC palaikymas. Pridėtas nutildymo indikatoriaus palaikymas nešiojamuosiuose kompiuteriuose HP 255 G8 ir G10. Pridėtas acp6.3 garso tvarkyklių palaikymas. Pridėtas Focusrite Clarett+ 2Pre ir 4Pre profesionalių įrašymo sąsajų palaikymas.

Tuo pačiu metu Lotynų Amerikos laisvosios programinės įrangos fondas sukūrė visiškai nemokamo branduolio 6.7 versiją - Linux-libre 6.7-gnu, išvalyta nuo programinės aparatinės įrangos elementų ir tvarkyklių, kuriuose yra nelaisvų komponentų ar kodo skyrių, kurių apimtis yra ribota. gamintojo. 6.7 versijoje blob valymo kodas buvo atnaujintas įvairiose tvarkyklėse ir posistemiuose, pavyzdžiui, amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs ir btqca tvarkyklėse. Kodas, skirtas išvalyti „localtalk“ ir „rtl8192u“ tvarkykles, buvo pašalintas, nes jos neįtrauktos į branduolį. Pašalinti nereikalingi komponentai xhci-pci, rtl8xxxu ir rtw8822b tvarkyklių valymui, anksčiau pridėti per klaidą. Išvalyti Aarch64 architektūros dts failų blob pavadinimai. Pašalintos dėmės iš naujųjų tvarkyklių mt7925, tps6598x, aw87390 ir aw88399.

Šaltinis: opennet.ru

Добавить комментарий