Linuxi kerneli 5.17 väljalase

Kaks kuu kestnud arendustöö järel esitles Linus Torvalds Linuxi kerneli versiooni 5.17. Mürkseotud uuendused hõlmavad: uut jõudluse haldamise süsteemi AMD protsessorite jaoks, kasutaja identifikaatorite rekursiivset kaardistamist failisüsteemides, kaasaskantavate kompilatsiooniga BPF programmide toetust, pseudojuhuslike numbrite generaatori üleminekut BLAKE2s algoritmile, reaalajas täitmise analüüsiks mõeldud RTLA tööriista, uut fscache tagapinda võrgu failisüsteemide vahemällu salvestamiseks ja võimalust kinnitada nimesid anonüümsetele mmap operatsioonidele.

Uues versioonis on 14203 parandust 1995 arendajalt, patši suurus on 37 MB (muudatused puudutasid 11366 faili, lisati 506043 koodirida, eemaldati 250954 rida). Umbes 44% kõikidest 5.17 versioonis esitatud muudatustest on seotud seadme draiveritega, umbes 16% muudatustest puudutavad riistvara arhitektuurile spetsiifiliste koodide uuendamist, 15% on seotud võrgu tahkudega, 4% failisüsteemidega ja 4% südamiku siseste alamsüsteemidega.

Peamised uuendused kernelis 5.17:

  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Kasutajate identifikaatorite sisemise kaardistamise võimalus on rakendatud liidetud failisüsteemides, et seostada konkreetse kasutaja faile liidetud võõraste jaotustes teise kasutajaga praeguses süsteemis. Lisatud funktsioon võimaldab rekursiivselt kasutada kaardistamist failisüsteemide peal, kuhu on juba rakendatud kaardistamine.
    • FSCache alamsüsteem on täielikult ümber kirjutatud, et korraldada lokaalses failisüsteemis andmete vahemälu, mis edastatakse võrgufailisüsteemide kaudu. Uus rakendus eristub oluliselt lihtsustatud koodiga ning keerukate objektide seisundite jälgimise ja planeerimise toimingud on asendatud lihtsamate mehhanismidega. Uue FSCache toetamine on rakendatud CIFS failisüsteemis.
    • Fanotify FS sündmuste jälgimise alamsüsteemis on rakendatud uus sündmustüüp FAN_RENAME, mis võimaldab kohe tabada failide või kataloogide ümbernimetamise toimingu (varasemalt kasutati ümbernimetamiseks kahte eraldi sündmust FAN_MOVED_FROM ja FAN_MOVED_TO).
    • Btrfs failisüsteemil on optimeeritud logimist ja fsync'i toiminguid suurte kataloogide jaoks, rakendades ainult indeksivõtmete kopeerimist ja vähendades logitavate metaandmete mahtu. Toetatakse indiseerimist ja otsimist vaba ruumi kirjade suuruse järgi, mis on võimaldanud umbes 30% võrra vähendada viivitusi ja lühendada otsingu aega. Defragmentimise toimingute katkestamine on lubatud. Lisatud on võimalus seadmeid lisada tasakaalustamise väljalülitamise ajal, st failisüsteemi mountimise korral skip_balance valikuga.
    • Pakkuda on uut Ceph failisüsteemi mountimise süntaksit, mis lahendab IP-aadressidega seotud probleemid. Lisaks IP-aadresse serveri määramiseks saab nüüd kasutada klastrite identifikaatorit (FSID): mount -t ceph user@fsid.fs_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4 failisüsteem on üle viidud uuele mount-API-le, mis jagab mount-valikute analüüsi ja superblocki seadistamise etappe. Tugi lazytime ja nolazytime mount-valikutele on lõpetatud, kuna need lisati ajutise muudatusena util-linuxi tõlke lihtsustamiseks MS_LAZYTIME lipu kasutamiseks. Lisatud on tugi failisüsteemi siltide seadistamiseks ja lugemiseks (ioctl FS_IOC_GETFSLABEL ja FS_IOC_SETFSLABEL).
    • NFSv4 toob toetuse failisüsteemides töötamiseks, kus failinimedes ja kaustade nimedes ei eristata tähti. NFSv4.1+ toetab koondatud seansside määratlemist (trunking).
  • Mälu ja süsteemiteenused
    • Lisatud on amd-pstate draiver, mis tagab dünaamilise sageduse juhtimise optimaalsete tulemuste saavutamiseks. Draiver toetab AMD protsessoreid ja APU-sid alates Zen 2 põlvkonnast, mille on välja töötanud koostöös Valve'iga ning mille eesmärk on parandada energiatarbimise juhtimise efektiivsust. Sageduse kohandamiseks kasutatakse CPPC (Collaborative Processor Performance Control) mehhanismi, mis võimaldab täpsemat mõõtmist (mitte piirduda kolme töötlustaseme määramisega) ning kiiremat reageerimist oleku muutustele kui varasemalt kasutatud ACPI (CPUFreq) põhised P-state draiverid.
    • eBPF alamsüsteemis on ette nähtud bpf_loop() töötleja, mis pakub alternatiivset viisi eBPF programmide tsüklite organiseerimiseks, mis on kiirem ja lihtsam kontrollimiseks valideerija poolt.
    • Tuuma tasandil on rakendatud CO-RE (Compile Once — Run Everywhere) mehhanism, mis võimaldab eBPF programmide koodi koguda vaid ühe korra ja kasutada spetsiaalset universaalset laadijat, mis kohandab laaditava programmi vastavalt praegusele tuumale ja BTF (BPF Type Format) tüüpidele.
    • On võimaldatud määrata anonüümsete (malloc kaudu eraldatud) mälu piirkondade nimesid, mis võib hõlbustada rakenduste tõrkeotsingu ja mälu tarbimise optimeerimise läbiviimist. Nimed määratakse prctl funktsiooniga koos PR_SET_VMA_ANON_NAME lipuga ja kuvatakse failides /proc/pid/maps ja /proc/pid/smaps kujul «[anon:]».
    • Ülesannete ajakava võimaldab jälgida ja kuvada failis /proc/PID/sched aega, mille protsessid viibivad sunnitud ooterežiimis (forced-idle), mida kasutatakse näiteks protsessori ülekuumenemise korral koormuse vähendamiseks.
    • Lisatud on gpio-sim moodul, mis on mõeldud GPIO kiipide simuleerimiseks testimise läbiviimiseks.
    • Käsku «perf ftrace» on lisatud alamhärg «latency» viivituste teabe histogrammide genereerimiseks.
    • Lisatud on utiliitide komplekt «RTLA» reaalaegse töö analüüsimiseks. Komplekti kuuluvad sellised utiliidid nagu osnoise (määrab operatsioonisüsteemi mõju ülesande täitmisele) ja timerlat (muudab taimeriga seotud viivitusi).
    • Integreeritud on teine patchide seeria, mis rakendab lehekülgede folioide (page folios) kontseptsiooni, mis meenutab ühendatud lehekülgi (compound pages), kuid erineb parema semantika ja arusaadavamate töökorraldustega. Folioide kasutamine võimaldab kiirendada mälu haldamist mõnedes tuuma alamsüsteemides. Ettepanekutes on lõpetatud leheküljebufeeri üleminek folioide kasutamisele ja lisatud algtoetust folioidele failisüsteemis XFS.
    • Lisatud on kogumise režiim «make mod2noconfig», mille puhul genereeritakse konfiguratsioon, mis kogub kõik väljalülitatud alamsüsteemid tuuma moodulitena.
    • Tõstetud on nõuded LLVM/Clang versioonile, mida saab tuuma kogumiseks kasutada. Nüüd on vähemalt vajalik LLVM 11 väljaanne.
  • Virtualiseerimine ja turvalisus
    • Käivitatud uuendatud pseudojuhusliku arvu generaatori RDRAND rakendus, mis haldab /dev/random ja /dev/urandom seadmeid, on märkimisväärne üleminekuga BLAKE2s räsifunktsiooni kasutamisele SHA1 asemel entropia segamisoperatsioonides. See muudatus on parandanud pseudojuhusliku arvu generaatori turvalisust, vabastades probleemset SHA1 algoritmi ja välistades RNG algväärtuse ülekirjutamise. Kuna BLAKE2s algoritm on SHA1-st kiiruselt parem, on selle rakendamine positiivselt mõjutanud ka jõudlust.
    • Lisatud kaitse protsessorites esinevate haavatavuste eest, mis tulenevad spekulatiivsetest käskude täitmistest pärast tingimusteta otseseid üleminekute operatsioone. Probleem tekib käskude ennetava töötlemise tõttu, mis järgnevad vahetult mällu ülemineku käsule (SLS, Straight Line Speculation). Kaitse aktiveerimiseks on vajalik GCC 12 versiooni kasutamine, mis on praegu testimise etapis.
    • Lisatud on viidete lugemise jälgimise mehhanism (refcount, reference-count), mille eesmärk on vähendada mälu juurde pääsemise vigu pärast selle vabastamist. Praegu on mehhanism piiratud võrgualustega, kuid tulevikus võib seda kohandada ka teistele tuumakomponentidele.
    • Rakendatud on täiendavad kontrollid uute mälu lehtede tabeli kirjeid, mis võimaldavad tuvastada teatud tüüpi kahjustusi ja peatada süsteem, takistades rünnakute toimumist varakult.
    • Lisatud on võimalus laadida tuumamooduleid otse tuumale, mitte kasutaja ruumiprotsessorile, mis võimaldab LSM-mooduli LoadPin abil tagada, et tuumamoodulid laaditakse mälu usaldusväärsest salvestusseadmest.
    • Kokkupanek on tagatud lipuga „-Wcast-function-type”, mis sisaldab hoiatuste väljundit funktsiooni osutite ühilduvusse mittekuuluvate tüüpide konverteerimise kohta.
    • Xen hüperviisorile on lisatud virtuaalhoidla pvUSB juht, mis annab juurdepääsu USB-seadmetele, mis on suunatud külalissüsteemidele (see võimaldab külalissüsteemidel pääseda füüsilistele USB-seadmetele, mis on külalissüsteemiga ühendatud).
    • On lisatud moodul, mis võimaldab Wi-Fi kaudu suhelda IME (Intel Management Engine) alamsüsteemiga, mida tarnitakse enamikus uuemates Intel protsessoritega emaplaatides ja mis on teostatud eraldi mikropessorina, töötades CPU-st sõltumatult.
    • ARM64 arhitektuurile on rakendatud KCSAN (Kernel Concurrency Sanitizer) silumisriista tugi, mis on mõeldud tuvastama tlema nõudluse olekud tuuma sees.
    • 32-bitiste ARM süsteemide jaoks on lisatud KFENCE mehhanismi kasutamise võimalus mäluhäirete tuvastamiseks.
    • KVM hüperviisoris on lisatud AMX (Advanced Matrix Extensions) käskude tugi, mis on rakendatud tulevaste Intel Xeon Scalable serveri protsessorites.
  • Võrgu alamsüsteem
    • On lisatud tugi võrgu seadmete poolt liikluse haldamisega seotud operatsioonide mahamine (offloading).
    • Lisatud on MCTP (Management Component Transport Protocol) protokolli kasutamise võimalus seerianenõuetega seadmete peal. MCTP-d saab kasutada juhtimisjuhikute ja nende seadmete (mahostid, perifeersed seadmed jne) vaheliseks suhtlemiseks.
    • TCP-steki on optimeeritud, näiteks on rakendatud viivitatud soketibufrite vabastamine recvmsgi kutsesse, et parandada jõudlust.
    • CAP_NET_RAW volitustaseme tasemel on lubatud SO_PRIORITY ja SO_MARK režiimide seadmine funktsiooniga setsockopt.
    • IPv4 jaoks on lubatud raw-sokettide kinnitamine mitte kohalikele IP-aadressidele, kasutades IP_FREEBIND ja IP_TRANSPARENT valikuid.
    • Lisatud on sysctl arv arp_missed_max, et seadistada ARP-monitori kontrollimise ebaõnnestumiste piirmäär, mille ületamisel lülitatakse võrguliides välja.
    • Pakutakse võimalust seadistada eraldi sysctl väärtusi min_pmtu ja mtu_expires võrgunimede jaoks.
    • Ethtooli API-sse on lisatud võimalus seadistada ja määrata sissetulevate ja väljuvate pakettide puhvrite suurust.
    • Netfilterisse on lisatud tugi pppoe liikluse filtreerimiseks võrgusildade kaudu.
    • Ksmbd moodulisse on lisatud rakendusfailide serverile, SMB3 protokolli kasutamisel lisati toetada võtit vahetamise, aktiveeritud võrguport 445 smbdirecti jaoks ja lisati toetus parameetrile «smb2 max credit.
  • Seadmed
    • DRM (Otse Renderimise Halduse) süsteemi ja i915 draiverisse lisati toetust ekraanidele, mis näitavad konfidentsiaalset teavet, näiteks on mõned sülearvutid varustatud ekraanidega, millel on sisseehitatud konfidentsiaalne vaatamisrežiim, mis raskendab vaatamist küljelt. Lisatud muudatused võimaldavad ühendada spetsialiseeritud draivereid sellistele ekraanidele ja hallata konfidentsiaalsuse režiime, seades omadused tavalistes KMS-draiverites.
    • amdgpu draiveris on sisse lülitatud STB (Smart Trace Buffer) silumise tehnoloogia toetus kõigi AMD GPU-de jaoks, mis seda toetavad. STB lihtsustab tõrgete analüüsi ja probleemide allika tuvastamist, salvestades spetsiaalses puhverdis teavet ülesannete kohta, mis toimusid enne viimast tõrget.
    • i915 draiverisse lisati toetus Intel Raptor Lake S kiipidele ja vaikimisi on sisse lülitatud Intel Alder Lake P kiipide graafikajärjestuse tugi. Ekraani taustvalgustuse haldamise võimalus on antud läbi VESA DPCD liidese.
    • fbcon/fbdev draiverites on tagatud riistvaraline kiirus konsolide kerimisel.
    • Jätkub muudatuste integreerimine Apple M1 kiipide toe tagamiseks. Rakendatud on simpledrm draiveri kasutamise võimalus Apple M1 kiipidega süsteemides, et väljund saaks toimuma firmware'i pakutava framebuferi kaudu.
    • Toetatakse ARM SoC-d, seadmete ja plaatide Snapdragon 7c, 845 ja 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek MT8183 (Acer Chromebook 314), Mediatek MT7986a/b (kasutatakse Wi-Fi ruuterites), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP i.MX8 ULP8, Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
    • Tuleb toega ARM Cortex-M55 ja Cortex-M33 protsessorid.
    • Toetatakse MIPS protsessoritel põhinevaid seadmeid: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Toetatakse RISC-V arhitektuuril põhinevat SoC StarFive JH7100.
    • Lisatud on lenovo-yogabook-wmi draiver klaviatuuri valgustuse haldamiseks ja erinevateandurite ligipääsu võimaldamiseks Lenovo Yoga Bookis.
    • Lisatud on asus_wmi_sensors draiver andurite ligipääsuks, mida kasutatakse Asus X370, X470, B450, B550 ja X399 emaplaatidel, mis põhinevad AMD Ryzen protsessoritel.
    • Lisatud x86-android-tablette toetav draiver x86-arkitektuuriga tahvelarvutitele, mis põhinevad Android platvormil.
    • Lisatud toetust TrekStor SurfTab duo W1 puutetundlikele ekraanidele ja Chuwi Hi10 Plus ja Pro tahvelarvutite elektroonilisele pliiatsile.
    • Tegra 20/30 SoC draiveritesse on lisatud toitehalduse ja pingetoe tugi. Võimaldatud on käivitamine vanematel 32-bitistel seadmetel, mis põhinevad Tegra SoC-l, nagu ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 ja Pad TF300TG.
    • Lisatud draiverid tööstuslikele arvutitele Siemensilt.
    • Lisatud tugi Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA ja Team Source Display TST043015CMHX LCD-paneelidele.
    • Lisatud toetus helisüsteemidele ja kodekitele AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel süsteemidele, mis kasutavad NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Lahendatud probleemid Tegra194 HD-audioga. Lisatud HDA tugi CS35L41 kodekite jaoks. Parandatud helisüsteemide toimetulekut Lenovo ja HP sülearvutitele ning Gigabyte emaplaatidele.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster