Linuxi 6.7 kerneli väljalase

Pärast kahekuulist arendustööd esitles Linus Torvalds Linuxi kerneli 6.7 väljalaset. Märkimisväärsemate muudatuste hulgas: Bcachefsi failisüsteemi integreerimine, Itaniumi arhitektuuri toe katkestamine, Nouvea võime töötada GSP-R püsivaraga, TLS-krüptimise tugi NVMe-TCP-s, võimalus kasutada BPF-is erandeid, futexi tugi io_uringis, fq (Fair Queuing) planeerija jõudluse optimeerimine, TCP-AO laienduse tugi (TCP Authentication Option) ja võimalus piirata võrguühendusi Landlocki turvamehhanismis, lisatud juurdepääsukontroll kasutaja nimeruumile ja io_uring AppArmori kaudu.

Uus versioon sisaldab 18405 2066 parandust 72 arendajalt, paiga suurus on 13467 MB (muudatused puudutasid 906147 341048 faili, lisati 15291 2058 koodirida, 39 45 rida kustutati). Viimasel väljaandel oli 6.7 parandust 14 arendajalt, paiga suurus oli 13 MB. Umbes 5% kõigist versioonis 3 sisse viidud muudatustest on seotud seadme draiveritega, ligikaudu XNUMX% muudatustest on seotud riistvaraarhitektuurile omase koodi uuendamisega, XNUMX% on seotud võrgupinuga, XNUMX% on seotud failisüsteemidega ja XNUMX% on seotud sisemiste tuuma alamsüsteemidega.

Peamised uuendused kernelis 6.7:

  • Ketta alamsüsteem, I/O ja failisüsteemid
    • Kernel võtab kasutusele Bcachefsi failisüsteemi koodi, mis püüab saavutada XFS-i jõudlust, töökindlust ja mastaapsust koos Btrfs-is ja ZFS-is leiduvate täiustatud funktsioonide elementidega. Näiteks toetab Bcachefs selliseid funktsioone nagu mitme seadme kaasamine sektsiooni, mitmekihilised draivipaigutused (alumine kiht sageli kasutatavate andmetega, mis põhinevad kiiretel SSD-del ja ülemine kiht kõvaketaste vähemkasutatud andmetega), replikatsioon (RAID). 1/10), vahemällu salvestamine, andmete läbipaistev tihendamine (LZ4, gzip ja ZSTD režiimid), olekulõigud (hetktõmmised), terviklikkuse kontrollimine kontrollsummade abil, võimalus salvestada Reed-Solomoni veaparanduskoode (RAID 5/6), teabe salvestamine krüptitud kujul (kasutatakse ChaCha20 ja Poly1305). Jõudluse poolest edestab Bcachefs Btrfsi ja teisi Copy-on-Write mehhanismil põhinevaid failisüsteeme ning demonstreerib Ext4-le ja XFS-ile lähedast töökiirust.
    • Btrfs-failisüsteem tutvustab lihtsustatud kvoodirežiimi, mis võimaldab saavutada suuremat jõudlust, jälgides ulatuseid ainult alamsektsioonis, milles need on loodud, mis lihtsustab oluliselt arvutusi ja parandab jõudlust, kuid ei võimalda arvestada mitmes jagatud ulatusega. alajaotused.
    • Btrfs on lisanud uue "triibupuu" andmestruktuuri, mis sobib loogiliseks ulatuse kaardistamiseks olukordades, kus füüsilised kaardistused ei ühti seadmete vahel. Struktuuri kasutatakse praegu RAID0 ja RAID1 rakendustes tsoneeritud plokkseadmete jaoks. Tulevikus kavatsevad nad seda struktuuri kasutada kõrgema taseme RAID-ides, mis lahendab mitmed praeguses rakenduses esinevad probleemid.
    • Ceph-failisüsteem toetab ühendatud failisüsteemide kasutajatunnuste vastendamist, mida kasutatakse ühendatud välispartitsioonil oleva konkreetse kasutaja failide sobitamiseks praeguse süsteemi teise kasutajaga.
    • Lisatud on võimalus määrata efivarfsile uid ja gid on mount, et võimaldada mittejuurprotsessidel UEFI muutujaid muuta.
    • Lisatud exFAT-i ioctl-kutsed FS-i atribuutide lugemiseks ja muutmiseks. Lisatud nullsuurusega kataloogide käsitlemine.
    • F2FS rakendab 16K plokkide kasutamise võimalust.
    • Autofsi automaatse ühendamise mehhanism on ümber lülitatud uue partitsiooni paigaldamise API kasutamiseks.
    • OverlayFS pakub "lowerdir+" ja "datadir+" paigaldusvalikuid. Lisatud tugi OverlayFS-i pesastatud paigaldamiseks koos xattrsiga.
    • XFS on optimeerinud protsessori koormuse reaalajas ploki eraldamise koodis. Pakutakse võimalust teha samaaegselt lugemis- ja FICLONE-operatsioone.
    • EXT2 kood on teisendatud kasutama lehe fooliumeid.
  • Mälu- ja süsteemiteenused
    • 64. aastal täielikult lõpetatud Intel Itaniumi protsessorites kasutatud ia2021 arhitektuuri tugi on lõpetatud. Intel tutvustas Itaniumi protsessoreid 2001. aastal, kuid ia64 arhitektuur ei suutnud AMD64-ga konkureerida, peamiselt AMD64 suurema jõudluse ja sujuvama ülemineku tõttu 32-bitistelt x86 protsessoritelt. Selle tulemusena nihkusid Inteli huvid x86-64 protsessorite kasuks ja Itaniumi osaks jäid HP Integrity serverid, mille tellimine lõpetati kolm aastat tagasi. Ia64 toe kood eemaldati kernelist peamiselt selle platvormi pikaajalise toetuse puudumise tõttu, samas kui Linus Torvalds väljendas valmisolekut ia64 tugi kernelile tagastada, kuid ainult siis, kui on olemas hooldaja, kes suudab näidata kõrget kvaliteeti. selle platvormi tugi väljaspool põhikernelit vähemalt aasta.
    • Lisati kerneli rea käsuparameeter "ia32_emulation", mis võimaldab käivitamise etapis lubada või keelata 32-bitise režiimi emuleerimise tuge x86-64 arhitektuuri jaoks loodud tuumades. Praktilise poole pealt võimaldab uus suvand ehitada kerneli, mis toetab 32-bitiste rakendustega ühilduvust, kuid vaikimisi keelake see režiim, et vähendada tuuma rünnakuvektorit, kuna ühilduvuse API on vähem testitud kui põhikernel. liidesed.
    • Rust-for-Linuxi harust tehtud muudatuste jätkuv migreerimine, mis on seotud Rust keele kasutamisega teise keelena draiverite ja kerneli moodulite arendamiseks (Rusti tugi ei ole vaikimisi aktiivne ega too kaasa Rusti kaasamist kerneli nõutavad kooste sõltuvused). Uus versioon teeb ülemineku Rust 1.73 versiooni kasutamisele ja pakub tööjärjekordadega töötamiseks sidumiste komplekti.
    • Mehhanismi binfmt_misc on võimalik kasutada uute käivitatavate failivormingute toe lisamiseks (näiteks kompileeritud Java või Pythoni rakenduste käitamiseks) eraldi privilegeerimata nimeruumides.
    • Cgroupi kontroller cpuset, mis võimaldab juhtida protsessori tuumade kasutamist ülesande täitmisel, jaotab kohalikuks ja kaugpartitsioneerimiseks, mis erinevad selle poolest, kas ülem-cgroup on õige juursektsioon või mitte. Uued sätted "cpuset.cpus.exclusive" ja "cpuset.cpus.excluisve.effective" on lisatud ka cpusetile eksklusiivse CPU sidumise jaoks.
    • BPF-i alamsüsteem rakendab toetust eranditele, mida töödeldakse BPF-programmi avariiväljapääsuna koos võimalusega virnaraame ohutult lahti kerida. Lisaks võimaldavad BPF programmid kasutada CPU-ga ühenduses kptr viiteid.
    • Alamsüsteemile io_uring on lisatud futexi operatsioonide tugi ja juurutatud on uued toimingud: IORING_OP_WAITID (waitidi asünkroonne versioon), SOCKET_URING_OP_GETSOCKOPT (suvand getsockoptand), SOCKET_URING_OP_SETSOCKOPT (setsockopt-valik, samas kui operatsioon setsockopt ei peata) ja IORING_OPT-operatsioon ei peata_HODORULT. andmeid on või puhver pole täis).
    • Lisatud on kergete üheühendatud FIFO-järjekordade juurutamine, mis nõuavad spin-locki ainult protsessi kontekstis järjekorrast eemaldamiseks ja loobuvad spinlockist järjekorda aatomite lisamiseks mis tahes kontekstis.
    • Lisati rõngaspuhver "objpool", millel on skaleeritav suure jõudlusega järjekord objektide eraldamiseks ja tagastamiseks.
    • Muudatuste esialgne osa on lisatud uue futex2 API juurutamiseks, millel on parem jõudlus NUMA süsteemides, mis toetab muid suurusi kui 32 bitti ja mida saab kasutada multipleksitud futex() süsteemikutse asemel.
    • Arhitektuuride ARM32 ja S390x jaoks on lisatud BPF-i juhiste praeguse komplekti (cpuv4) tugi.
    • RISC-V arhitektuuri jaoks on võimalik kasutada Clang 17-s saadaolevat Shadow-Call Stacki kontrollrežiimi, mis on loodud kaitsma funktsiooni tagastusaadressi ülekirjutamise eest virna puhvri ületäitumise korral. Kaitsmise olemus seisneb tagastusaadressi salvestamises eraldi "vari" virna pärast juhtimise üleandmist funktsioonile ja selle aadressi hankimist enne funktsioonist väljumist.
    • Identsete mälulehtede liitmise mehhanismile (KSM: Kernel Samepage Merging) on ​​lisatud uus nutikas mälulehtede skaneerimise režiim, mis jälgib ebaõnnestunult skannitud lehti ja vähendab nende uuesti skannimise intensiivsust. Uue režiimi lubamiseks on lisatud säte /sys/kernel/mm/ksm/smart_scan.
    • Lisatud on uus ioctl käsk PAGEMAP_SCAN, mis võimaldab koos userfaultfd() kasutamisel määrata konkreetsesse mäluvahemikku kirjutamise fakte. Uut funktsiooni saab kasutada näiteks süsteemis CRIU protsesside oleku salvestamiseks ja taastamiseks või mängu petmisvastastes süsteemides.
    • Koostesüsteemis, kui Clangi kompilaator on saadaval, on BPF-programmidena kirjutatud perf-i alamsüsteemi kasutamise näidete koostamine vaikimisi lubatud.
    • Vana videobuf kiht, mida kasutati meediumi alamsüsteemi kaadripuhvrite haldamiseks ja mis asendati enam kui 10 aastat tagasi videobuf2 uue teostusega, on eemaldatud.
  • Virtualiseerimine ja turvalisus
    • Alamsüsteemi fscrypt on lisatud võimalus krüpteerida andmeid failisüsteemi ploki suurusest väiksemates plokkides. See võib olla vajalik riistvaraliste krüpteerimismehhanismide lubamiseks, mis toetavad ainult väikeseid plokke (näiteks UFS-kontrollereid, mis toetavad ainult ploki suurust 4096, saab kasutada failisüsteemiga, mille ploki suurus on 16K).
    • Alamsüsteem iommufd, mis võimaldab hallata IOMMU (I/O Memory-Management Unit) mälulehtede tabeleid kasutajaruumist failideskriptorite kaudu, on lisanud andmete jälgimise, mida pole veel vahemälust DMA jaoks eemaldatud (määrdunud). toimingud, mis on vajalikud protsessi migratsiooni ajal puhastamata andmetega mälu määramiseks.
    • Landlocki mehhanismile on lisatud TCP-soklite juurdepääsukontrollireeglite määratlemise tugi, mis võimaldab piirata protsesside rühma koostoimet väliskeskkonnaga. Näiteks saate luua reegli, mis lubab HTTPS-ühenduste loomiseks juurdepääsu ainult võrgupordile 443.
    • AppArmori alamsüsteem on lisanud võimaluse juhtida ligipääsu io_uring mehhanismile ja luua kasutajanimeruume, mis võimaldab valikuliselt lubada juurdepääsu nendele võimalustele ainult teatud protsessidele.
    • Virtuaalse masina alglaadimisprotsessi terviklikkuse kontrollimiseks on lisatud virtuaalmasina atesteerimise API.
    • LoongArchi süsteemid toetavad virtualiseerimist KVM-i hüperviisori abil.
    • KVM-i hüperviisori kasutamisel RISC-V süsteemides on ilmunud Smstateeni laienduse tugi, mis blokeerib virtuaalmasina juurdepääsu CPU registritele, mida hüperviisor otseselt ei toeta. Lisatud on ka tugi Zicondi laienduse kasutamiseks külaliste süsteemides, mis võimaldab kasutada mõningaid tingimuslikke täisarvutehinguid.
    • KVM-i all töötavates x86-põhistes külalissüsteemides on lubatud kuni 4096 virtuaalset protsessorit.
  • Võrgu alamsüsteem
    • NVMe-TCP (NVMe over TCP) draiver, mis võimaldab juurdepääsu NVMe-draividele üle võrgu (NVM Express over Fabrics), kasutades TCP-protokolli, on lisanud toe andmeedastuskanali krüpteerimiseks TLS-i abil (kasutades KTLS-i ja taustaprotsessi kasutajaruumis tlshd ühenduse läbirääkimisteks).
    • Optimeeriti pakettide planeerija fq (Fair Queuing) jõudlust, mis võimaldas tcp_rr (TCP Request/Response) testis suure koormuse korral läbilaskevõimet suurendada 5% ja UDP-pakettide piiramatu voo korral 13%.
    • TCP lisab valikulise mikrosekundi täpsusega ajatempli (TCP TS) võimaluse (RFC 7323), mis võimaldab täpsemat latentsusaega hinnata ja täiustatud ummikute juhtimismooduleid. Selle lubamiseks võite kasutada käsku "ip route add 10/8 ... features tcp_usec_ts".
    • TCP pinu on lisanud tuge TCP-AO laiendusele (TCP Authentication Option, RFC 5925), mis võimaldab kontrollida TCP päiseid MAC-koodide (Message Authentication Code) abil, kasutades kaasaegsemaid algoritme HMAC-SHA1 ja CMAC-AES- 128 asemel varem saadaval olnud TCP-MD5 valik, mis põhineb pärand-MD5 algoritmil.
    • Lisatud on uut tüüpi virtuaalsed võrguseadmed “netkit”, mille andmeedastusloogika seadistatakse BPF programmi abil.
    • SMB-serveri tuumatasemel rakendus KSMBD on lisanud toe liitmärkide asenduspaare sisaldavate failinimede lahendamiseks.
    • NFS on täiustanud lõimede rakendamist RPC-teenustega. Lisatud on kirjutamise delegeerimise tugi (NFSv4.1+ jaoks). NFSD on lisanud toe võrgulingi töötlejale rpc_status. Täiustatud tugi NFSv4.x klientidele uuesti eksportimisel knfsd-sse.
  • Оборудование
    • GSP-RM püsivara esialgne tugi on lisatud Nouveau kerneli moodulile, mida kasutatakse NVIDIA RTX 20+ GPU-s initsialiseerimise ja GPU juhtimistoimingute teisaldamiseks eraldi GSP mikrokontrolleri (GPU System Processor) kõrvale. GSP-RM tugi võimaldab Nouveau draiveril töötada püsivara kõnede kaudu, selle asemel et programmeerida otse riistvara interaktsioone, muutes uutele NVIDIA GPU-dele toe lisamise palju lihtsamaks, kasutades lähtestamiseks ja toitehalduseks eelehitatud kõnesid.
    • AMDGPU draiver toetab GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 ja DML2. Täiustatud tugi sujuvaks laadimiseks (videorežiimi vahetamisel ei virvenda).
    • I915 draiver lisab toe Intel Meteor Lake'i kiipidele ja Intel LunarLake'i (Xe 2) esialgse juurutuse.
    • USB4 v2 (120/40G) spetsifikatsioonile on lisatud asümmeetriliste edastuskanalite tugi.
    • Lisatud tugi ARM SoC-le: Qualcomm Snapdragon 720G (kasutatakse Xiaomi nutitelefonides), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (kasutatakse ruuterites ja NAS-is).
    • Lisatud on tugi Fairphone 5 nutitelefonidele 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.
    • Lisatud tugi RISC-V plaatidele Milk-V Pioneer ja Milk-V Duo.
    • Lisatud on AMD protsessoritega varustatud HUAWEI sülearvutite heliliideste tugi. Lisatud on Dell Oasis 13/14/16 sülearvutitesse installitud täiendavate kõlarite tugi. Lisatud tugi sisseehitatud kõlaritele ASUS K6500ZC. Lisatud vaigistusindikaatori tugi sülearvutitele HP 255 G8 ja G10. Lisatud acp6.3 helidraiverite tugi. Lisatud on Focusrite Clarett+ 2Pre ja 4Pre professionaalsete salvestusliideste tugi.

Samal ajal moodustas Ladina-Ameerika Vaba Tarkvara Sihtasutus täiesti tasuta kerneli 6.7 versiooni - Linux-libre 6.7-gnu, mis on puhastatud püsivara elementidest ja draiveritest, mis sisaldavad mittevabu komponente või koodilõike, mille ulatus on piiratud. tootja poolt. Versioonis 6.7 on blob-puhastuskoodi värskendatud erinevates draiverites ja alamsüsteemides, näiteks draiverites amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs ja btqca. Kohalikutalki ja rtl8192u draiverite puhastamise kood on eemaldatud nende kernelist väljajätmise tõttu. Eemaldatud mittevajalikud komponendid xhci-pci, rtl8xxxu ja rtw8822b draiverite puhastamiseks, mis on varem kogemata lisatud. Puhastati Aarch64 arhitektuuri jaoks mõeldud dts-failide blobinimed. Uutes draiverites mt7925, tps6598x, aw87390 ja aw88399 on plekid eemaldatud.

Allikas: opennet.ru

Lisa kommentaar