„Linux“ branduolys 5.14

„Linux“ branduolys 5.14

Po dviejų mėnesių kūrimo Linusas Torvaldsas pristatė branduolio išleidimas Linux 5.14. Tarp ryškiausių pakeitimų: nauji quotactl_fd() ir memfd_secret() sistemos iškvietimai, ide ir raw tvarkyklių pašalinimas, naujas įvesties/išvesties prioriteto valdiklis cgroup, SCHED_CORE užduočių planavimo režimas, patikrintų BPF programų kroviklių kūrimo infrastruktūra.

Naujoje versijoje yra 15883 2002 pataisymai iš 69 12580 kūrėjų, pataisos dydis yra 861501 MB (pakeitimai palietė 321654 47 failų, pridėta 5.14 14 kodo eilutė, ištrinta 13 3 eilutės). 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.

pagrindinis naujoves:

  • disko posistemis, įvesties/išvesties ir failų sistemos:
    • cgroup įgyvendinta naujas I/O prioriteto valdiklis – rq-qos, galintis valdyti kiekvienos cgrupės narių generuojamų užklausų blokuoti įrenginius apdorojimo prioritetą. Naujas prioritetinio valdiklio palaikymas buvo įtrauktas į mq-deadline I/O planuoklį;
    • ext4 failų sistemoje įgyvendinta nauja ioctl komanda EXT4_IOC_CHECKPOINT, kuri perkelia visas laukiančias operacijas iš žurnalo ir susijusių buferių į diską, taip pat perrašo sritį, kurią naudoja žurnalo saugykla. Pakeitimas buvo parengtas įgyvendinant iniciatyvą, skirtą užkirsti kelią informacijos nutekėjimui iš failų sistemų;
    • Btrfs pristatė Našumo optimizavimas: pašalinus nereikalingą išplėstinių atributų registravimą fsync vykdymo metu, intensyvių operacijų su išplėstiniais atributais našumas padidėjo iki 17%. Be to, atliekant apkarpymo operacijas, kurios neturi įtakos apimčiai, pilnas sinchronizavimas išjungiamas, o tai sumažino operacijos laiką 12%. Prie sysf buvo pridėtas nustatymas, skirtas apriboti įvesties / išvesties pralaidumą tikrinant FS. Pridėta ioctl iškvietimų, kad būtų atšauktos įrenginio dydžio keitimo ir ištrynimo operacijos;
    • XFS perdirbtas buferinės talpyklos įgyvendinimas, kuris perkeliamas į atminties puslapių paskirstymą paketiniu režimu. Pagerintas talpyklos efektyvumas;
    • F2FS pridėjo parinktį dirbti tik skaitymo režimu ir įdiegė suspausto bloko talpyklos režimą (compress_cache), kad pagerintų atsitiktinio skaitymo našumą. Įdiegtas palaikymas glaudinant failus, susietus su atmintimi naudojant operaciją mmap(). Norint pasirinktinai išjungti failų glaudinimą naudojant kaukę, buvo pasiūlyta nauja prijungimo parinktis nocompress;
    • buvo atliktas darbas exFAT tvarkyklėje, siekiant pagerinti suderinamumą su kai kurių skaitmeninių fotoaparatų saugykla;
    • pridėtas sistemos skambutis quotactl_fd(), kuri leidžia valdyti kvotas ne per specialų įrenginio failą, o nurodant failo aprašą, susietą su failų sistema, kuriai kvota taikoma;
    • Senos blokinių įrenginių su IDE sąsaja tvarkyklės buvo pašalintos iš branduolio, jas jau seniai pakeitė libata posistemis. Senų įrenginių palaikymas išliko visiškai, pakeitimai susiję tik su galimybe naudoti senas tvarkykles, kurias naudojant diskai buvo vadinami /dev/hd*, o ne /dev/sd*;
    • „Raw“ tvarkyklė buvo pašalinta iš branduolio, suteikianti nebuferinę prieigą prie blokuojamų įrenginių per /dev/raw sąsają. Ši funkcija jau seniai įdiegta programose, naudojančiose O_DIRECT vėliavėlę;
  • atminties ir sistemos paslaugos:
    • užduočių planuoklyje įdiegtas naujas planavimo režimas SCHED_CORE, kuri leidžia valdyti, kurie procesai gali veikti kartu tame pačiame procesoriaus branduolyje. Kiekvienam procesui galima priskirti slapuko identifikatorių, kuris apibrėžia procesų pasitikėjimo mastą (pavyzdžiui, priklausymą tam pačiam vartotojui ar konteineriui). Organizuodamas kodo vykdymą, planuotojas gali užtikrinti, kad vienas procesoriaus branduolys būtų dalijamasi tik tarp procesų, susijusių su tuo pačiu savininku, kuris gali būti naudojamas blokuoti kai kurias Spectre atakas, užkertant kelią patikimoms ir nepatikimoms užduotims vykdyti toje pačioje SMT (Hyper Threading) gijoje. ;
    • cgroup mechanizmui įdiegtas žudymo operacijos palaikymas, leidžiantis vienu metu nužudyti visus su grupe susijusius procesus (siųsti SIGKILL), į virtualų failą cgroup.kill įrašius „1“;
    • išplėstos galimybės, susijusios su atsaku į suskaidytų užraktų ("padalytų užraktų") aptikimą, atsirandantį pasiekiant nesuderintus duomenis atmintyje dėl to, kad vykdant atominę komandą duomenys kerta dvi procesoriaus talpyklos eilutes. Toks blokavimas žymiai sumažina našumą, todėl anksčiau buvo galima priverstinai nutraukti blokavimą sukėlusią programą. Nauja versija prideda branduolio komandinės eilutės parametrą „split_lock_detect=ratelimit:N“, leidžiantį nustatyti visos sistemos užrakinimo operacijų greičio ribą per sekundę, kurią viršijus bet koks procesas, tapęs padalinto užrakto šaltiniu, bus būti priverstas sustoti 20 ms, o ne nutraukti;
    • cgroup pralaidumo valdiklis CFS (CFS bandwidth controller), kuris nustato, kiek procesoriaus laiko galima skirti kiekvienai cgrupei, turi galimybę apibrėžti ribas, ribojamas tam tikros veikimo trukmės, o tai leidžia geriau reguliuoti delsai jautrias apkrovas. Pavyzdžiui, nustačius cpu.cfs_quota_us į 50000 ir cpu.cfs_period_us iki 100000, procesų grupė kas 100 ms sugaiš 50 ms procesoriaus laiko;
    • pridėta pradinė BPF programų kroviklių kūrimo infrastruktūra, kuri toliau leis atsisiųsti tik BPF programas, pasirašytas patikimu skaitmeniniu raktu;
    • pridėta nauja futex operacija FUTEX_LOCK_PI2, kuri naudoja monotoninį laikmatį skaičiuojant skirtąjį laiką, kuris atsižvelgia į laiką, kurį sistema praleidžia miego režimu;
    • RISC-V architektūrai, didelės atminties puslapių palaikymas (Transparent Huge-Pages) ir galimybė naudoti KIVONA nustatyti klaidas dirbant su atmintimi;
    • į madvise() sistemos iškvietimą, kuris suteikia galimybę optimizuoti proceso atminties valdymą, pridėta MADV_POPULATE_READ ir MADV_POPULATE_WRITE vėliavėlės generuoja „puslapio gedimą“ visuose atminties puslapiuose, susietuose su skaitymo ar rašymo operacijomis, neatliekant tikro skaitymo ar rašymo (numatytasis nustatymas). Žymių naudojimas gali būti naudingas norint sumažinti programos vykdymo vėlavimą, nes aktyviai vykdoma „puslapio gedimo“ tvarkyklė visiems nepaskirstytiems puslapiams vienu metu, nelaukiant, kol bus prieiga prie jų;
    • vieneto testavimo sistemoje kunit pridėta testų vykdymo QEMU aplinkoje palaikymas;
    • pridėta naujų sekėjų: "osnoise" kad būtų galima sekti taikomųjų programų vėlavimus, atsiradusius dėl pertraukimų tvarkymo, ir " timerlat ", kad būtų rodoma išsami informacija apie vėlavimus, kai atsibunda nuo laikmačio signalo;
  • virtualizacija ir saugumas:
    • pridėta sistemos skambutis memfd_secret (), kuri leidžia sukurti privačią atminties sritį izoliuotoje adresų erdvėje, matomą tik savininko procesui, neatsispindinčią kituose procesuose ir tiesiogiai nepasiekiamą branduoliui;
    • seccomp sistemos skambučių filtravimo sistemoje, perkeliant užrakto tvarkykles į vartotojo erdvę, galima naudoti vieną atominę operaciją, kuriant atskiros užduoties failo deskriptorių ir grąžinant jį apdorojant sistemos iškvietimą. Siūloma operacija išsprendžia problema su tvarkyklės pertraukimu vartotojo erdvėje, kai gaunamas signalas;
    • pridėta naujas mechanizmas valdyti išteklių apribojimą vartotojo ID vardų srityje, kuri susieja atskirus rlimit skaitiklius su vartotoju "naudotojo vardų erdvėje". Pakeitimas išsprendžia problemą, susijusią su bendrų išteklių skaitiklių naudojimu, kai vienas vartotojas vykdo procesus skirtinguose konteineriuose;
    • KVM hipervizorius, skirtas ARM64 sistemoms, pridėjo galimybę naudoti MTE (MemTag, Memory Tagging Extension) plėtinį svečių sistemose, kuri leidžia susieti žymas kiekvienai atminties paskirstymo operacijai ir organizuoti tikrinimą, ar tinkamai naudojamos rodyklės, kad blokuotų pažeidžiamumas, atsirandantis dėl prieigos prie jau atlaisvintų atminties blokų, buferių perpildymo, prieigos prieš inicijavimą ir naudojimo ne esamame kontekste;
    • Rodyklės autentifikavimą, kurį teikia ARM64 platforma, dabar galima sukonfigūruoti atskirai branduoliui ir vartotojo vietai. Ši technologija leidžia naudoti specializuotas ARM64 instrukcijas grąžinimo adresams patikrinti naudojant skaitmeninius parašus, kurie saugomi nenaudojamuose viršutiniuose pačios rodyklės bituose;
    • vartotojo režimu Linux pridėta PCI įrenginių tvarkyklių naudojimo su virtualia PCI magistrale palaikymas, įdiegtas PCI-over-virtio tvarkyklės;
    • x86 sistemoms, papildomas virtio-iommu paravirtualizuoto įrenginio palaikymas, leidžiantis siųsti IOMMU užklausas, tokias kaip ATTACH, DETACH, MAP ir UNMAP, per virtio transportą neemuliuojant atminties puslapių lentelių;
    • Intel CPU, nuo Skylake šeimos iki Coffee Lake, Intel TSX (transakcijų sinchronizavimo plėtiniai), kurie suteikia įrankius, padedančius pagerinti kelių gijų taikomųjų programų našumą, dinamiškai pašalinant nereikalingas sinchronizavimo operacijas, naudojimas yra išjungtas pagal numatytuosius nustatymus. Plėtiniai išjungti dėl atakų galimybės zombių apkrova, manipuliuojant informacijos nutekėjimu trečiųjų šalių kanalais, atsirandančiu veikiant asinchroninio operacijų nutraukimo mechanizmui (TAA, TSX Asynchronous Abort);
  • tinklo posistemis:
    • tęsiamas integravimas į MPTCP (MultiPath TCP) šerdį, TCP protokolo plėtinį, skirtą organizuoti TCP ryšio veikimą ir tuo pačiu metu pristatyti paketus keliais maršrutais per skirtingas tinklo sąsajas, susijusias su skirtingais IP adresais. Naujame numeryje pridėta mechanizmas, leidžiantis nustatyti savo IPv4 ir IPv6 srauto maišos strategijas (daugiatakių maišos politika), leidžiančią iš vartotojo erdvės nustatyti, kurie paketų laukai, įskaitant įkapsuliuotus, bus naudojami skaičiuojant maišą, kuri lemia kelio pasirinkimą. už paketą;
    • lizdo palaikymas buvo pridėtas prie virtualaus transporto virtio SOCK_SEQPACKET (tvarkingas ir patikimas datagramų perdavimas);
    • Išplėstos SO_REUSEPORT lizdo mechanizmo galimybės, leidžiančios vienu metu prisijungti prie vieno prievado keliems klausymosi lizdams, kad gautų ryšius su gaunamų užklausų paskirstymu vienu metu visuose lizduose, prijungtuose per SO_REUSEPORT, o tai supaprastina kelių gijų serverio programų kūrimą. . Naujoje versijoje pridėta priemonės, skirtos valdyti valdymą į kitą lizdą, jei nepavyksta apdoroti užklausos iš pradžių pasirinktame lizde (išsprendžia atskirų ryšių praradimo problemą iš naujo paleidžiant paslaugas);
  • įranga:
    • amdgpu tvarkyklėje įgyvendinta palaikymas naujos AMD Radeon RX 6000 serijos GPU, kodiniais pavadinimais „Beige Goby“ (Navi 24) ir „Yellow Carp“, taip pat patobulintas Aldebaran GPU (gfx90a) ir Van Gogh APU palaikymas. Pridėta galimybė vienu metu dirbti su keliomis eDP plokštėmis. APU Renoir buvo įdiegtas palaikymas darbui su šifruotais buferiais vaizdo atmintyje (TMZ, patikimos atminties zona). Pridėtas karšto atjungimo vaizdo plokščių palaikymas. Radeon RX 6000 (Navi 2x) GPU ir senesniuose AMD GPU pagal numatytuosius nustatymus įjungtas ASPM (Active State Power Management) energijos taupymo mechanizmo palaikymas, kuris anksčiau buvo įjungtas tik Navi 1x, Vega ir Polaris GPU;
    • AMD lustams pridėtas bendrosios virtualiosios atminties (SVM, bendrosios virtualiosios atminties) palaikymas, pagrįstas HMM (Heterogeneous memory management) posistemiu, leidžiančiu naudoti įrenginius su savo atminties valdymo blokais (MMU, atminties valdymo blokas), kuri gali pasiekti pagrindinę atmintį. Be to, naudodami HMM, galite organizuoti bendrą adresų erdvę tarp GPU ir CPU, kurioje GPU gali pasiekti pagrindinę proceso atmintį;
    • pridėtas pradinis technologijų palaikymas AMD Smart Shift, kuri dinamiškai keičia procesoriaus ir GPU energijos suvartojimo parametrus nešiojamuosiuose kompiuteriuose su mikroschemų rinkiniu ir AMD vaizdo plokšte, kad padidintų žaidimo, vaizdo redagavimo ir 3D atvaizdavimo našumą;
    • Intel vaizdo plokščių i915 tvarkyklėje įskaitant „Intel Alderlake P“ lustų palaikymas;
    • pridėta „Hyper-V“ virtualios grafikos adapterio drm/hyperv tvarkyklė;
    • pridėta simpledrm grafikos tvarkyklė, kuri išvestiei naudoja EFI-GOP arba VESA kadrų buferį, kurį teikia UEFI programinė įranga arba BIOS. Pagrindinis tvarkyklės tikslas yra suteikti grafines išvesties galimybes pradiniame įkrovos etape, prieš naudojant visą DRM tvarkyklę. Tvarkyklė taip pat gali būti naudojama kaip laikinas sprendimas įrangai, kuri dar neturi savųjų DRM tvarkyklių;
    • pridėta „viskas viename“ kompiuterio palaikymas Aviečių Pi 400;
    • Pridėta dell-wmi-privatumo tvarkyklė, skirta palaikyti fotoaparato ir mikrofono aparatinės įrangos jungiklius, esančius Dell nešiojamuosiuose kompiuteriuose;
    • Lenovo nešiojamiesiems kompiuteriams pridėta WMI sąsaja BIOS parametrų keitimui per sysfs /sys/class/firmware-attributes/;
    • išplėstas įrenginių su USB4 sąsaja palaikymas;
    • pridėta palaikymas garso plokštėms ir kodekams AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ir Texas Instruments TAS2505. Patobulintas garso palaikymas HP ir ASUS nešiojamuosiuose kompiuteriuose. Pridėta pataisas, kad sumažintų delsą, kol garsas pradedamas leisti įrenginiuose su USB sąsaja.

Šaltinis – opennet.ru.

Šaltinis: linux.org.ru