Linux 5.12 branduolio leidimas

Po dviejų mėnesių kūrimo Linusas Torvaldsas pristatė Linux branduolio 5.12 versiją. Tarp ryškiausių pakeitimų: zonuotų blokų įrenginių palaikymas Btrfs, galimybė susieti failų sistemos vartotojo ID, senų ARM architektūrų išvalymas, „noriu“ rašymo režimas NFS, LOOKUP_CACHED mechanizmas, skirtas failų keliams iš talpyklos nustatyti. , atominių instrukcijų palaikymas BPF, derinimo sistema KFENCE, skirta identifikuoti klaidas dirbant su atmintimi, NAPI apklausos režimas, veikiantis atskiroje branduolio gijoje tinklo dėtuvėje, ACRN hipervizorius, galimybė pakeisti išankstinio nustatymo modelį užduotyje. planuotojas ir palaikymas LTO optimizavimui kuriant Clang.

Naujoje versijoje yra 14170 (ankstesnėje laidoje 15480) pataisymų iš 1946 (1991) kūrėjų, pataisos dydis yra 38 MB (pakeitimai paveikė 12102 (12090) failus, pridėta 538599 (868025) kodo eilučių, 333377 eilutės buvo ištrintos). Apie 261456% visų pakeitimų, pateiktų 43 versijoje, yra susiję su įrenginių tvarkyklėmis, maždaug 5.12% pakeitimų yra susiję su aparatinės įrangos architektūroms būdingo kodo atnaujinimu, 17% yra susiję su tinklo dėku, 12% yra susiję su failų sistemomis ir 5% yra susiję su vidiniais branduolio posistemiais.

Pagrindinės naujovės:

  • Disko posistemis, I/O ir failų sistemos
    • Įdiegta galimybė susieti prijungtų failų sistemų vartotojo ID (galite susieti vieno vartotojo failus prijungtame svetimame skaidinyje su kitu dabartinės sistemos vartotoju). Susiejimas palaikomas FAT, ext4 ir XFS failų sistemose. Siūloma funkcija palengvina failų dalijimąsi tarp skirtingų vartotojų ir skirtinguose kompiuteriuose, įskaitant susiejimą bus naudojamas systemd-homed nešiojamų namų katalogų mechanizme, leidžiantis vartotojams perkelti savo namų katalogus į išorines laikmenas ir naudoti juos skirtinguose kompiuteriuose, susiejimas. naudotojų ID, kurie neatitinka. Kita naudinga programa yra organizuoti bendrinamos prieigos prie failų iš išorinio pagrindinio kompiuterio teikimą, nekeičiant duomenų apie failų savininkus failų sistemoje.
    • LOOKUP_CACHED pataisos buvo priimtos į branduolį, leidžiančios operacijoms nustatyti failo kelią iš vartotojo erdvės be blokavimo, tik remiantis talpykloje esančiais duomenimis. LOOKUP_CACHED režimas aktyvuojamas openat2() iškvietime perduodant RESOLVE_CACHED vėliavėlę, kurioje duomenys aptarnaujami tik iš talpyklos, o jei kelio nustatymui reikalinga prieiga prie disko, grąžinama EAGAIN klaida.
    • Btrfs failų sistema papildė pradinį palaikymą zoniniams blokiniams įrenginiams (įrenginiams kietuosiuose magnetiniuose diskuose arba NVMe SSD, kurių saugojimo vieta yra padalinta į zonas, kurios sudaro blokų arba sektorių grupes, į kurias leidžiama tik nuosekliai pridėti duomenis, atnaujinant visą blokų grupę). Tik skaitymo režimu įdiegtas blokų su metaduomenimis ir mažesniais nei puslapis (antrinis puslapis) palaikymas.
    • F2FS failų sistemoje buvo pridėta galimybė pasirinkti algoritmą ir glaudinimo lygį. Pridėtas aukšto lygio LZ4 algoritmo glaudinimo palaikymas. Įdiegta checkpoint_merge tvirtinimo parinktis.
    • Įdiegta nauja ioctl komanda FS_IOC_READ_VERITY_METADATA, skirta nuskaityti metaduomenis iš failų, apsaugotų su fs-verity.
    • NFS klientas įgyvendina „eager“ rašymo režimą (writes=eager), kai įjungtas, rašymo į failą operacijos iš karto perkeliamos į serverį, apeinant puslapio talpyklą. Šis režimas leidžia sumažinti atminties suvartojimą, akimirksniu gauti informaciją apie laisvos vietos failų sistemoje pabaigą ir kai kuriose situacijose leidžia pasiekti didesnį našumą.
    • Prie CIFS (SMB) buvo pridėtos naujos prijungimo parinktys: acregmax, skirtas valdyti failų talpyklą, ir acdirmax, skirtas valdyti katalogų metaduomenų talpyklą.
    • XFS sistemoje buvo įjungtas kelių gijų kvotų tikrinimo režimas, pagreitintas fsync vykdymas ir parengtas growfs kodas, skirtas failų sistemos dydžio mažinimo funkcijai įgyvendinti.
  • Atminties ir sistemos paslaugos
    • Pridėta DTMP (Dynamic Thermal Power Management) posistemė, leidžianti dinamiškai reguliuoti skirtingų įrenginių energijos suvartojimą pagal nustatytas bendrąsias temperatūros ribas.
    • Įdiegta galimybė sukurti branduolį naudojant Clang kompiliatorių, įtraukiant optimizavimą susiejimo etape (LTO, Link Time Optimization). LTO optimizavimas skiriasi tuo, kad atsižvelgiama į visų kūrimo procese dalyvaujančių failų būseną, o tradiciniai optimizavimo režimai kiekvieną failą optimizuoja atskirai ir neatsižvelgia į kituose failuose apibrėžtų funkcijų iškvietimo sąlygas. Pavyzdžiui, naudojant LTO, galimas funkcijų iš kitų failų įdiegimas, nepanaudotas kodas neįtraukiamas į vykdomąjį failą, tipo tikrinimas ir bendras optimizavimas vykdomas viso projekto lygmeniu. LTO palaikymas šiuo metu ribojamas iki x86 ir ARM64 architektūrų.
    • Užduočių planuoklyje galima pasirinkti išankstinės apsaugos režimus (PREMPT) įkrovos stadijoje (preempt=none/voluntary/full) arba dirbant su debugfs (/debug/sched_debug), jei kuriant branduolį buvo nurodytas PREEMPT_DYNAMIC nustatymas. Anksčiau ekstruzijos režimą buvo galima nustatyti tik surinkimo parametrų lygiu. Šis pakeitimas leidžia platintojams siųsti branduolius su įjungtu PREEMPT režimu, kuris užtikrina minimalų delsą staliniams kompiuteriams už nedidelę pralaidumo baudą ir, jei reikia, grįžta į PREEMPT_VOLUNTARY (tarpinis staliniams kompiuteriams skirtas režimas) arba PREEMPT_NONE (suteikia didžiausią pralaidumą serveriams). .
    • Atominių operacijų BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG ir BPF_CMPXCHG palaikymas buvo įtrauktas į BPF posistemį.
    • BPF programoms suteikiama galimybė pasiekti krūvos duomenis naudojant rodykles su kintamaisiais poslinkiais. Pavyzdžiui, jei anksčiau galėdavote naudoti tik pastovų elementų indeksą, kad pasiektumėte masyvą krūvoje, dabar galite naudoti besikeičiantį. Prieigos kontrolę tik esamose ribose vykdo BPF tikrintojas. Ši funkcija pasiekiama tik privilegijuotoms programoms, nes nerimaujama dėl spekuliacinio kodo vykdymo spragų išnaudojimo.
    • Pridėta galimybė prijungti BPF programas prie plikų pėdsakų, kurie nėra susieti su sekimo įvykiais, matomais vartotojo erdvėje (ABI išsaugojimas tokiems pėdsakams negarantuojamas).
    • Įdiegtas CXL 2.0 (Compute Express Link) magistralės palaikymas, kuris naudojamas organizuoti didelės spartos procesoriaus ir atminties įrenginių sąveiką (leidžia naudoti išorinės atminties įrenginius kaip RAM arba nuolatinės atminties dalį, tarsi ši atmintis buvo prijungti per standartinį procesoriaus atminties valdiklį).
    • Pridėta nvmem tvarkyklė, skirta gauti duomenis iš programinės aparatinės įrangos rezervuotų atminties sričių, kurios nėra tiesiogiai prieinamos Linux (pvz., EEPROM atmintis, kuri fiziškai pasiekiama tik programinei įrangai, arba duomenys, kurie pasiekiami tik ankstyvoje įkrovos fazėje).
    • Panaikintas „oprofile“ profiliavimo sistemos palaikymas, kuris nebuvo plačiai naudojamas ir buvo pakeistas modernesniu perf mechanizmu.
    • „io_uring“ asinchroninė I/O sąsaja suteikia integraciją su cgrupėmis, kurios valdo atminties naudojimą.
    • RISC-V architektūra palaiko NUMA sistemas, taip pat kprobes ir uprobes mechanizmus.
    • Pridėta galimybė naudoti kcmp() sistemos iškvietimą, neatsižvelgiant į proceso būsenos momentinių nuotraukų funkcionalumą (kontrolinis taškas / atkūrimas).
    • Daug metų praktiškai nenaudojamos makrokomandos EXPORT_UNUSED_SYMBOL() ir EXPORT_SYMBOL_GPL_FUTURE() buvo pašalintos.
  • Virtualizacija ir saugumas
    • Pridėtas KFence (Kernel Electric Fence) apsaugos mechanizmas, kuris užfiksuoja klaidas dirbant su atmintimi, pvz., buferio viršijimą ir prieigą atlaisvinus atmintį. Skirtingai nei KASAN derinimo mechanizmas, KFence posistemis pasižymi dideliu veikimo greičiu ir mažomis pridėtinėmis sąnaudomis, leidžiančiomis pagauti atminties klaidas, atsirandančias tik veikiančiose sistemose arba ilgalaikio veikimo metu.
    • Pridėtas ACRN hipervizoriaus palaikymas, sukurtas atsižvelgiant į pasirengimą atlikti užduotis realiuoju laiku ir tinkamumą naudoti svarbiose sistemose. ACRN užtikrina minimalias pridėtines išlaidas, garantuoja mažą delsą ir tinkamą reagavimą sąveikaujant su įranga. Palaiko procesoriaus resursų, I/O, tinklo posistemio, grafikos ir garso operacijų virtualizavimą. ACRN gali būti naudojamas kelioms izoliuotoms virtualioms mašinoms valdyti elektroniniuose valdymo blokuose, prietaisų skyduose, automobilių informacinėse sistemose, vartotojų daiktų interneto įrenginiuose ir kitose įterptosiose technologijose. ACRN palaiko dviejų tipų svečių sistemas – privilegijuotąsias paslaugų VM, kurios naudojamos sistemos resursams (CPU, atmintis, įvesties/išvesties ir kt.) valdyti, ir pasirinktines vartotojo VM, kuriose galima paleisti Linux, Android ir Windows paskirstymus.
    • IMA (Integrity Measurement Architecture) posistemėje, kuri palaiko maišos duomenų bazę, skirtą failų ir susijusių metaduomenų vientisumui patikrinti, dabar atsiranda galimybė patikrinti paties branduolio duomenų vientisumą, pavyzdžiui, sekti SELinux taisyklių pokyčius. .
    • Galimybė perimti Xen hiperskambučius ir persiųsti juos į emuliatorių, veikiantį vartotojo erdvėje, buvo įtraukta į KVM hipervizorių.
    • Pridėta galimybė naudoti Linux kaip pagrindinę Hyper-V hipervizoriaus aplinką. Šakninė aplinka turi tiesioginę prieigą prie aparatinės įrangos ir naudojama svečių sistemoms paleisti (analogiškai kaip Dom0 Xen). Iki šiol „Hyper-V“ („Microsoft Hypervisor“) palaikė „Linux“ tik svečių aplinkoje, tačiau pats hipervizorius buvo valdomas iš „Windows“ aplinkos.
    • Pridėtas eMMC kortelių vidinio šifravimo palaikymas, leidžiantis naudoti disko valdiklyje įmontuotus šifravimo mechanizmus, kurie skaidriai šifruoja ir iššifruoja I/O.
    • RIPE-MD 128/256/320 ir Tiger 128/160/192 maišos, kurios nenaudojamos branduolyje, taip pat Salsa20 srauto šifro, kuris buvo pakeistas ChaCha20 algoritmu, palaikymas buvo pašalintas. kriptovaliutų posistemis. Blake2 algoritmas buvo atnaujintas, kad būtų įdiegtas blake2s.
  • Tinklo posistemis
    • Pridėta galimybė perkelti tinklo įrenginių NAPI apklausos tvarkyklę į atskirą branduolio giją, kuri leidžia pagerinti kai kurių tipų darbo krūvių našumą. Anksčiau apklausa buvo atliekama „softirq“ kontekste ir nebuvo įtraukta į užduočių planuoklį, todėl buvo sunku atlikti smulkius optimizavimus, kad būtų pasiektas maksimalus našumas. Vykdymas atskiroje branduolio gijoje leidžia stebėti apklausos tvarkyklę iš vartotojo erdvės, prijungti prie atskirų procesoriaus branduolių ir į jį atsižvelgti planuojant užduočių perjungimą. Norint įjungti naują režimą sysf, siūlomas parametras /sys/class/net//threaded.
    • Integracija į 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. Naujasis leidimas prideda galimybę priskirti prioritetą tam tikroms gijomis, o tai leidžia, pavyzdžiui, organizuoti atsarginių gijų, kurios įsijungia tik iškilus problemų su pirmine gija, darbą.
    • IGMPv3 prideda EHT (Explicit Host Tracking) mechanizmo palaikymą.
    • Netfilter paketų filtravimo variklis suteikia galimybę turėti tam tikras lenteles, kad būtų galima išskirtinai valdyti (pavyzdžiui, foninis ugniasienės procesas gali perimti tam tikrų lentelių nuosavybę, neleisdamas niekam kitam kištis į jas).
  • įranga
    • Išvalėme pasenusias ir neprižiūrėtas ARM platformas. Pašalintas efm32, picoxcell, prima2, tango, u300, zx ir c6x platformų kodas bei su jais susijusios tvarkyklės.
    • „Amdgpu“ tvarkyklė suteikia galimybę perlaikyti („OverDrive“) korteles, pagrįstas „Sienna Cichlid“ GPU („Navi 22“, „Radeon RX 6xxx“). Pridėtas FP16 pikselių formato palaikymas DCE (vaizdo valdiklio varikliui) nuo 8 iki 11 kartos. GPU Navy Flounder (Navi 21) ir APU Van Gogh buvo įdiegta galimybė iš naujo nustatyti GPU.
    • „Intel“ vaizdo plokščių i915 tvarkyklė įdiegia parametrą i915.mitigations, kad išjungtų izoliavimo ir apsaugos mechanizmus, kad pagerintų našumą. Lustams, pradedant nuo Tiger Lake, įtrauktas VRR (kintamo dažnio atnaujinimo) mechanizmo palaikymas, leidžiantis adaptyviai keisti monitoriaus atnaujinimo dažnį, kad būtų užtikrintas sklandumas ir jokių spragų žaidimų metu. „Intel Clear Color“ technologijos palaikymas įtrauktas siekiant pagerinti spalvų tikslumą. Pridėtas DP-HDMI 2.1 palaikymas. Įdiegta galimybė valdyti eDP skydelių foninį apšvietimą. Gen9 GPU su LSPCON (Level Shifter and Protocol Converter) palaikymu HDR palaikymas įjungtas.
    • Naujoji tvarkyklė prideda pradinį NVIDIA GPU palaikymą, pagrįstą GA100 (Ampere) architektūra.
    • MSM tvarkyklė palaiko Adreno 508, 509 ir 512 GPU, naudojamus SDM (Snapdragon) 630, 636 ir 660 lustuose.
    • Pridėtas Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s ir Pioneer DJM-750 garso plokščių palaikymas. Pridėtas Intel Alder Lake PCH-P garso posistemio palaikymas. Programinės įrangos modeliavimo palaikymas, skirtas prijungti ir atjungti garso jungtį, buvo įdiegtas derinimo tvarkytojams vartotojo erdvėje.
    • Pridėtas Nintendo 64 žaidimų konsolių, pagamintų 1996–2003 m., palaikymas (ankstesni bandymai perkelti Linux į Nintendo 64 nebuvo baigti ir buvo klasifikuojami kaip Vaporware). Motyvacija sukurti naują prievadą pasenusiai platformai, kuri nebuvo išleista beveik dvidešimt metų, yra noras paskatinti emuliatorių kūrimą ir supaprastinti žaidimų perkėlimą.
    • Pridėta Sony PlayStation 5 DualSense žaidimų valdiklio tvarkyklė.
    • Pridėtas ARM plokščių, įrenginių ir platformų palaikymas: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Pridėtas Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 išmaniųjų telefonų palaikymas.
    • Pridėta bcm-vk tvarkyklė, skirta Broadcom VK greitintuvo plokštėms (pavyzdžiui, Valkyrie ir Viper PCIe plokštėms), kurią galima naudoti garso, vaizdo ir vaizdo apdorojimo operacijoms, taip pat su šifravimu susijusioms operacijoms perkelti į atskirą įrenginį.
    • Pridėtas Lenovo IdeaPad platformos palaikymas su galimybe valdyti nuolatinį įkrovimą ir klaviatūros apšvietimą. Taip pat teikiamas ThinkPad platformos ACPI profilio palaikymas su galimybe valdyti energijos suvartojimo režimus. Pridėta Lenovo ThinkPad X1 Tablet Gen 2 HID posistemio tvarkyklė.
    • Pridėta ov5647 tvarkyklė su Raspberry Pi kameros modulio palaikymu.
    • Pridėtas RISC-V SoC FU740 ir HiFive Unleashed plokščių palaikymas. Taip pat buvo pridėta nauja Kendryte K210 lusto tvarkyklė.

Šaltinis: opennet.ru

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