Linuxi 6.0 kerneli väljalase

Pärast kahekuulist arendustööd esitles Linus Torvalds Linux 6.0 kerneli väljalaset. Versiooninumbri oluline muudatus on esteetilistel põhjustel ja on formaalne samm, et leevendada ebamugavust, mis tuleneb sarja suure hulga probleemide kuhjumisest (Linus naljatas, et harunumbri muutmise põhjuseks oli pigem see, et tal hakkasid sõrmed tühjaks saama ja varbad versiooninumbrite lugemiseks) . Märkimisväärseimate muudatuste hulgas: asünkroonse puhverdatud kirjutamise tugi XFS-is, ublk-ploki draiver, ülesannete planeerija optimeerimine, mehhanism tuuma õige töö kontrollimiseks, ARIA plokkšifri tugi.

Peamised uuendused kernelis 6.0:

  • Ketta alamsüsteem, I/O ja failisüsteemid
    • XFS-failisüsteem on lisanud asünkroonse puhverdatud kirjutamise toe io_uring mehhanismi abil. Toimivustestid, mis viidi läbi fio tööriistadega (1 lõime, ploki suurus 4 kB, 600 sekundit, järjestikune kirjutamine), näitavad sisend-/väljundoperatsioonide sekundis (IOPS) suurenemist 77 209-lt 314 854-le, andmeedastuskiirust 9600 MB/s-lt 120 MB/s-le, ja latentsusaja langus 80ns-lt XNUMXns-le (XNUMX korda).
    • Btrfs-failisüsteem rakendab käsu "send" jaoks protokolli teist versiooni, mis toetab täiendavaid metaandmeid, andmete saatmist suuremates plokkides (üle 64K) ja tihendatud kujul edastamist. Otsese lugemise toimingute jõudlus on oluliselt suurenenud (kuni 3 korda) tänu kuni 256 sektori samaaegsele lugemisele. Vähendas lukustamisvaidlusi ja kiirendas metaandmete kontrollimist, vähendades edasilükatud elementide jaoks reserveeritud metaandmeid.
    • Ext4 failisüsteemi on lisatud uued ioctl toimingud EXT4_IOC_GETFSUUID ja EXT4_IC_SETFSUUID superplokki salvestatud UUID toomiseks või seadistamiseks.
    • F2FS-failisüsteem pakub madala mälutarbimise režiimi, mis optimeerib väikese RAM-iga seadmete tööd ja võimaldab teil vähendada mälutarbimist jõudluse vähenemise hinnaga.
    • Lisatud NVMe-draivi autentimise tugi.
    • NFSv4 server rakendab aktiivsete klientide arvu piirangut, milleks on seatud 1024 kehtivat klienti süsteemi iga gigabaidi muutmälu kohta.
    • CIFS-i kliendirakendus on mitme kanaliga edastusrežiimis jõudlust parandanud.
    • Funktsiooni fanotify FS sündmuste jälgimise alamsüsteemi on lisatud uus lipp FAN_MARK_IGNORE, et ignoreerida konkreetseid sündmusi.
    • Kui Overlayfs FS on paigaldatud kasutaja ID vastendusega FS-i peale, on POSIX-ühilduvate juurdepääsukontrolli loendite jaoks õige tugi.
    • Lisatud on ublk ploki draiver, mis viib kasutajaruumis spetsiifilise loogika taustaprotsessi kõrvale ja kasutab io_uring alamsüsteemi.
  • Mälu- ja süsteemiteenused
    • Alamsüsteemi DAMON (Data Access MONitor) on lisatud uusi funktsioone, mis võimaldavad mitte ainult jälgida protsesside juurdepääsu kasutajaruumist RAM-ile, vaid ka mõjutada mäluhaldust. Eelkõige on pakutud välja uus moodul "LRU_SORT", mis võimaldab LRU (Least Recently Used) loendite ümberrühmitamist, et suurendada teatud mälulehtede prioriteetsust.
    • Võimalus luua uusi mälupiirkondi on rakendatud kasutades CXL (Compute Express Link) siini võimalusi, mida kasutatakse protsessori ja mäluseadmete vahelise kiire suhtluse korraldamiseks. CXL võimaldab ühendada uusi välismäluseadmete pakutavaid mälupiirkondi ja kasutada neid täiendava füüsilise aadressiruumi ressurssina süsteemi muutmälu (DDR) või püsimälu (PMEM) laiendamiseks.
    • Lahendatud on AMD Zeni protsessorite jõudlusprobleemid, mille põhjustas 20 aastat tagasi lisatud kood, et lahendada mõne kiibistiku riistvaraprobleem (lisati täiendav WAIT-juhis protsessori aeglustamiseks, nii et kiibistik jõudis jõudeolekusse). Muudatuse tulemusel vähenes jõudlus töökoormuse korral, mis vaheldub sageli jõudeoleku ja hõivatud oleku vahel. Näiteks pärast lahenduse keelamist tõusid keskmised testimise tulemused 32191 MB/s-lt 33805 MB/s-ni.
    • Tegumite planeerijast on eemaldatud heuristikaga kood, mis tagab protsesside migratsiooni kõige vähem koormatud protsessoritele, võttes arvesse prognoositavat energiatarbimise kasvu. Arendajad jõudsid järeldusele, et heuristika ei olnud piisavalt kasulik ning seda on lihtsam eemaldada ja protsesse üle viia ilma täiendava hindamiseta, kui selline migreerimine võib potentsiaalselt kaasa tuua väiksema energiatarbimise (näiteks kui sihtprotsessor on madalama võimsusega). Heuristika keelamine tõi kaasa energiatarbimise vähenemise intensiivsete ülesannete täitmisel, näiteks video dekodeerimise testis vähenes voolutarve 5.6%.
    • Ülesannete jaotus protsessori tuumade vahel suurtes süsteemides on optimeeritud, mis on parandanud jõudlust teatud tüüpi töökoormuse korral.
    • Asünkroonne I/O liides io_uring pakub uut lippu IORING_RECV_MULTISHOT, mis võimaldab kasutada süsteemikutsega recv() multi-shot režiimi, et teha korraga mitu lugemisoperatsiooni samast võrgupesast. io_uring toetab ka võrguedastust ilma vahepealse puhverdamiseta (nullkoopia).
    • Rakendas võime panna uprobe'iga seotud BPF-programmid uneolekusse. BPF lisab ka uue iteraatori ksym tuuma sümboli tabelitega töötamiseks.
    • Vananenud "efivarsi" liides sysfsis, mis on mõeldud UEFI alglaadimismuutujatele juurdepääsuks, on eemaldatud (efivarfsi virtuaalset FS-i kasutatakse nüüd EFI andmetele juurdepääsuks üldiselt).
    • Utiliidil Perf on uued aruanded lukukonfliktide ja protsessori kerneli komponentide täitmisele kulunud aja analüüsimiseks.
    • Säte CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 on eemaldatud, mis võimaldas kerneli ehitada optimeerimisrežiimis "-O3". Tuleb märkida, et optimeerimisrežiimidega katseid saab läbi viia monteerimise ajal lippude edastamisega (“make KCFLAGS=-O3”) ning seadistuse lisamine Kconfigile nõuab korduvat jõudluse profileerimist, mis näitab, et režiimis “-O3” kasutatav silmuse lahtirullimine annab eelis võrreldes optimeerimistasemega "-O2".
    • Lisatud on silumisliides, et hankida teavet üksikute "mälu kahandajate" (käitlejad, mida kutsutakse välja, kui mälu pole piisavalt ja kerneli andmestruktuurid nende mälutarbimise vähendamiseks) töö kohta.
    • OpenRISC ja LoongArchi arhitektuuri puhul on rakendatud PCI siini tugi.
    • RISC-V arhitektuuri jaoks on juurutatud laiendus "Zicbom", et hallata seadmeid DMA-ga, mis ei ole vahemälu sidus.
  • Virtualiseerimine ja turvalisus
    • Lisatud on RV (Runtime Verification) verifitseerimismehhanism, et kontrollida õiget toimimist väga töökindlates süsteemides, mis tagavad tõrgete puudumise. Kontrollimine toimub käitusajal, lisades jälgimispunktidele töötlejad, mis kontrollivad täitmise tegelikku edenemist masina etteantud deterministliku võrdlusmudeliga, mis määratleb süsteemi eeldatava käitumise. Mudeliga käitamise ajal kontrollimine on positsioneeritud kui kergem ja hõlpsamini rakendatav meetod kriitilistes süsteemides täitmise õigsuse kinnitamiseks, täiendades klassikalisi töökindluse kontrollimise meetodeid. RV eeliste hulgas on võimalus pakkuda ranget kontrolli ilma kogu süsteemi eraldiseisva rakendamiseta modelleerimiskeeles, samuti paindlik reageerimine ettenägematutele sündmustele.
    • Integreeritud kerneli komponendid Intel SGX2 (Software Guard eXtensions) tehnoloogial põhinevate enklaavide haldamiseks, mis võimaldab rakendustel käivitada koodi eraldatud krüpteeritud mälupiirkondades, millele ülejäänud süsteemil on piiratud juurdepääs. Intel SGX2 tehnoloogiat toetavad Intel Ice Lake ja Gemini Lake kiibid ning see erineb Intel SGX1-st täiendavate juhiste poolest enklaavide dünaamilise mälu haldamiseks.
    • x86 arhitektuuri jaoks on rakendatud pseudojuhuslike numbrite generaatori seemne ülekandmise võimalus alglaaduri sätete kaudu.
    • SafeSetID LSM-moodulil on nüüd võimalus hallata muudatusi, mis on tehtud kõne setgroups() kaudu. SafeSetID võimaldab süsteemiteenustel kasutajaid turvaliselt hallata ilma õiguste suurendamiseta (CAP_SETUID) ja juurõigusi omandamata.
    • Lisatud ARIA plokkšifri tugi.
    • BPF-põhine turbehaldusmoodul annab võimaluse lisada töötlejaid üksikutele protsessidele ja protsessirühmadele (cgroups).
    • Lisatud on valvekoera juurutamisega mehhanism, mis tuvastab vCPU aktiivsuse jälgimise põhjal külalissüsteemide katkestused.
  • Võrgu alamsüsteem
    • BPF-i alamsüsteemi on lisatud töötlejad SYN-küpsiste genereerimiseks ja kontrollimiseks. Lisatud on ka funktsioonide komplekt (kfunc) ühenduste olekuks ja nende oleku muutmiseks.
    • Juhtmevaba pinu on lisanud tuge MLO (Multi-Link Operation) mehhanismile, mis on määratletud WiFi 7 spetsifikatsioonis ja mis võimaldab seadmetel samaaegselt vastu võtta ja saata andmeid, kasutades erinevaid sagedusribasid ja kanaleid, näiteks luua samaaegselt mitu sidekanalit pääsupunkt klientseadmele.
    • Kernelisse sisseehitatud TLS-protokolli jõudlust on täiustatud.
    • Lisati kerneli käsurea suvand "hostname=", mis võimaldab hostinime määrata alglaadimisprotsessi alguses, enne kasutajaruumi komponentide käivitamist.
  • Оборудование
    • Draiver i915 (Intel) toetab Intel Arc (DG2/Alchemist) A750 ja A770 diskreetseid videokaarte. Tehti ettepanek Intel Ponte Vecchio (Xe-HPC) ja Meteor Lake'i GPU-de toe esialgseks rakendamiseks. Töö Intel Raptor Lake'i platvormi toetamiseks jätkub.
    • Amdgpu draiver toetab jätkuvalt AMD RDNA3 (RX 7000) ja CDNA (Instinct) platvorme.
    • Nouveau draiver on NVIDIA nv50 GPU kuvamootorite tugikoodi ümber töötanud.
    • Lisatud uus Logicvc DRM-draiver LogiCVC ekraanide jaoks.
    • V3d-draiver (Broadcom Video Core GPU jaoks) toetab Raspberry Pi 4 tahvleid.
    • Msm-draiverile on lisatud tugi Qualcomm Adreno 619 GPU-le.
    • Panfrosti draiverile on lisatud ARM Mali Valhalli GPU tugi.
    • Lisati esialgne tugi Qualcomm Snapdragon 8cx Gen3 protsessoritele, mida kasutatakse Lenovo ThinkPad X13s sülearvutites.
    • Lisatud helidraiverid platvormidele AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake ja Mediatek MT8186.
    • Lisatud on Intel Habana Gaudi 2 masinõppe kiirendite tugi.
    • Lisatud on tugi ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Samal ajal moodustas Ladina-Ameerika Vaba Tarkvara Sihtasutus täiesti tasuta kerneli 6.0 versiooni - Linux-libre 6.0-gnu, mis on puhastatud püsivara elementidest ja draiveritest, mis sisaldavad mittevabu komponente või koodilõike, mille ulatus on tootja poolt piiratud. Uus väljalase keelab plekkide kasutamise CS35L41 HD-helidraiveris ja UCSI draiveris STM32G0 mikrokontrollerite jaoks. Qualcommi ja MediaTeki kiipide DTS-failid on puhastatud. Plekkide keelamine MediaTek MT76 draiveris on ümber töötatud. Värskendatud blob-puhastuskood AMDGPU, Adreno, Tegra VIC, Netronome NFP ja Habanalabs Gaudi2 draiverites ja alamsüsteemides. Lõpetas tuumast eemaldatud VXGE draiveri puhastamise.

Allikas: opennet.ru

Lisa kommentaar