Linux 5.11 branduolio leidimas

Po dviejų mėnesių kūrimo Linusas Torvaldsas pristatė Linux branduolio 5.11 versiją. Tarp ryškiausių pakeitimų: Intel SGX anklavų palaikymas, naujas sistemos skambučių perėmimo mechanizmas, virtualioji pagalbinė magistralė, draudimas rinkti modulius be MODULE_LICENSE(), greitas sistemos skambučių filtravimo režimas seccomp, palaikymo nutraukimas. ia64 architektūra, WiMAX technologijos perkėlimas į "scenavimo" šaką, galimybė SCTP įterpti į UDP.

Naujoje versijoje yra 15480 1991 pataisymų iš 72 12090 kūrėjo, pataisos dydis yra 868025 MB (pakeitimai paveikė 261456 46 failų, pridėta 5.11 16 kodo eilutės, ištrinta 13 3 eilutės). Apie 4% 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.

Pagrindinės naujovės:

  • Disko posistemis, I/O ir failų sistemos
    • Prie Btrfs buvo pridėtos kelios montavimo parinktys, skirtos naudoti atkuriant duomenis iš pažeistos failų sistemos: „rescue=ignorebadroots“, kad būtų galima montuoti, nepaisant kai kurių šakninių medžių pažeidimų (mastas, uuid, duomenų perkėlimas, įrenginys, csum, laisvos vietos), „ Rescue=ignoredatacsums“, kad išjungtumėte duomenų tikrinimą, o „rescue=all“, kad vienu metu įjungtumėte režimus „ignorebadroots“, „ignoredatacsums“ ir „nologreplay“. „inode_cache“ prijungimo parinktis, kuri anksčiau buvo nebenaudojama, buvo nutraukta. Kodas buvo parengtas, kad būtų galima įdiegti blokų su metaduomenų ir duomenų, mažesnių nei puslapio dydis (PAGE_SIZE), palaikymą, taip pat zoninės erdvės paskirstymo režimo palaikymą. Nebuferinės (tiesioginės IO) užklausos buvo perkeltos į iomap infrastruktūrą. Daugelio operacijų atlikimas buvo optimizuotas, kai kuriais atvejais pagreitis gali siekti keliasdešimt procentų.
    • XFS įdiegia „needsrepair“ vėliavėlę, kuri signalizuoja apie remonto poreikį. Nustačius šią vėliavėlę, failų sistemos negalima prijungti tol, kol vėliavėlė nebus nustatyta iš naujo naudojant programą xfs_repair.
    • „Ext4“ siūlo tik klaidų taisymus ir optimizavimą, taip pat kodo valymą.
    • Leidžiamas pakartotinis failų sistemų, sujungtų per NFS, eksportas (t. y. skaidinį, prijungtą per NFS, dabar galima eksportuoti per NFS ir naudoti kaip tarpinę talpyklą).
    • „Close_range()“ sistemos iškvietimas, leidžiantis procesui vienu metu uždaryti visą eilę atidarytų failų deskriptorių, pridėjo CLOSE_RANGE_CLOEXEC parinktį, kad uždarytumėte deskriptorius uždarymo vykdymo režimu.
    • F2FS failų sistema prideda naujų ioctl() iškvietimų, kad naudotojas galėtų kontroliuoti, kurie failai saugomi suglaudinta forma. Pridėta "compress_mode=" mount parinktis, leidžianti pasirinkti, ar glaudinimo tvarkyklę dėti branduolio pusėje, ar vartotojo erdvėje.
    • Suteikta galimybė prijungti perdangas neprivilegijuotiems procesams naudojant atskirą vartotojo vardų erdvę. Siekiant patikrinti, ar laikomasi saugos modelio įgyvendinimo, buvo atliktas visas kodo auditas. „Overlayfs“ taip pat suteikia galimybę paleisti naudojant failų sistemos vaizdų kopijas, pasirinktinai išjungus UUID tikrinimą.
    • Ceph failų sistema papildė msgr2.1 protokolo palaikymą, kuris leidžia naudoti AES-GCM algoritmą perduodant duomenis šifruota forma.
    • Dm-multipath modulis įgyvendina galimybę atsižvelgti į procesoriaus afinitetą ("IO afinitetą") renkantis įvesties / išvesties užklausų maršrutą.
  • Atminties ir sistemos paslaugos
    • Pridėtas naujas sistemos skambučių perėmimo mechanizmas, pagrįstas prctl(), kuris leidžia generuoti išimtis iš vartotojo erdvės, kai pasiekiate konkretų sistemos skambutį ir imituoti jo vykdymą. Ši funkcija reikalinga „Wine“ ir „Proton“, kad būtų galima emuliuoti „Windows“ sistemos skambučius, o tai būtina norint užtikrinti suderinamumą su žaidimais ir programomis, kurios tiesiogiai atlieka sistemos iškvietimus apeinant „Windows“ API (pavyzdžiui, siekiant apsaugoti nuo neteisėto naudojimo).
    • Userfaultfd() sistemos iškvietimas, skirtas tvarkyti puslapių gedimus (prieiga prie nepaskirstytų atminties puslapių) vartotojo erdvėje, dabar turi galimybę išjungti išimčių tvarkymą, kuris vyksta branduolio lygiu, kad būtų sunkiau išnaudoti tam tikras spragas.
    • BPF posistemis pridėjo palaikymą užduočių vietinei saugyklai, kuri suteikia duomenų susiejimą su konkrečia BPF tvarkykle.
    • BPF programų atminties suvartojimo apskaita buvo visiškai pertvarkyta – vietoj memlock rlimit pasiūlytas cgroup valdiklis, skirtas valdyti atminties naudojimą BPF objektuose.
    • BTF (BPF tipo formatas) mechanizmas, teikiantis tipo tikrinimo informaciją BPF pseudokode, palaiko branduolio modulius.
    • Pridėtas shutdown(), renameat2() ir unlinkat() sistemos iškvietimų palaikymas į io_uring asinchroninę I/O sąsają. Iškviečiant io_uring_enter(), buvo pridėta galimybė nurodyti skirtąjį laiką (galite patikrinti argumento palaikymą, kad nurodytumėte skirtąjį laiką, naudodami vėliavėlę IORING_FEAT_EXT_ARG).
    • „Intel Itanium“ procesoriuose naudojama ia64 architektūra buvo perkelta į našlaičių kategoriją, o tai reiškia, kad testavimas buvo nutrauktas. „Hewlett Packard Enterprise“ nustojo priimti užsakymus naujai „Itanium“ įrangai, o „Intel“ tai padarė praėjusiais metais.
    • „MicroBlaze“ architektūra pagrįstų sistemų, kuriose nėra atminties valdymo bloko (MMU), palaikymas buvo nutrauktas. Tokios sistemos jau seniai nebuvo matyti kasdieniame gyvenime.
    • MIPS architektūrai buvo pridėtas kodo aprėpties testavimo palaikymas naudojant gcov įrankį.
    • Pridėtas virtualios pagalbinės magistralės palaikymas, skirtas sąsajai su daugiafunkciniais įrenginiais, kurie derina funkcijas, kurioms reikalingos skirtingos tvarkyklės (pavyzdžiui, tinklo plokštės su Ethernet ir RDMA palaikymu). Magistralė gali būti naudojama priskiriant įrenginiui pirminį ir antrinį tvarkykles tais atvejais, kai MFD (daugiafunkcinių įrenginių) posistemio naudojimas yra problemiškas.
    • RISC-V architektūrai buvo pridėta CMA (Contiguous Memory Allocator) atminties paskirstymo sistemos palaikymas, kuris optimizuotas didelėms gretimoms atminties sritims paskirstyti naudojant atminties puslapio judėjimo metodus. RISC-V atveju taip pat įdiegti įrankiai, skirti apriboti prieigą prie /dev/mem ir atsižvelgti į pertraukimo apdorojimo laiką.
    • 32 bitų ARM sistemoms buvo pridėtas KASan (Branduolių adresų dezinfekavimo priemonės) derinimo įrankis, padedantis nustatyti klaidas dirbant su atmintimi. 64 bitų ARM atveju KASan diegimas buvo konvertuotas naudoti MTE žymas (MemTag).
    • Pridėtas epoll_pwait2() sistemos iškvietimas, kad būtų galima atlikti skirtąjį laiką nanosekundžių tikslumu (epoll_wait iškvietimas manipuliuoja milisekundėmis).
    • Sukūrimo sistema dabar rodo klaidą, kai bandoma sukurti įkeliamus branduolio modulius, kuriuose kodo licencija nėra apibrėžta naudojant makrokomandą MODULE_LICENSE(). Nuo šiol statinėms funkcijoms naudojant makrokomandą EXPORT_SYMBOL() taip pat sukels kūrimo klaidą.
    • Pridėtas GEM objektų susiejimo iš atminties, naudojamos I/O, palaikymas, todėl kai kuriose architektūrose buvo galima pagreitinti darbą su kadrų buferiu.
    • „Kconfig“ atsisakė „Qt4“ palaikymo (tuo pačiu palaiko Qt5, GTK ir Ncurses).
  • Virtualizacija ir saugumas
    • Greito reagavimo režimo palaikymas buvo pridėtas prie seccomp() sistemos iškvietimo, kuris leidžia labai greitai nustatyti, ar tam tikras sistemos iškvietimas yra leidžiamas ar draudžiamas, remiantis nuolatinio veiksmo bitų žemėlapiu, pridedamu prie proceso, kuriam nereikia paleisti BPF prižiūrėtojas.
    • Integruoti branduolio komponentai, skirti kurti ir valdyti anklavus, pagrįstus Intel SGX (Software Guard eXtensions) technologija, kuri leidžia programoms vykdyti kodą izoliuotose užšifruotose atminties srityse, prie kurių likusi sistemos dalis turi ribotą prieigą.
    • Vykdant iniciatyvą apriboti prieigą iš vartotojo erdvės prie MSR (konkretaus modelio registro), rašymas į MSR_IA32_ENERGY_PERF_BIAS registrą, kuris leidžia pakeisti procesoriaus energijos vartojimo efektyvumo režimą („normalus“, „našumas“, „energios taupymas“). , yra draudžiamas.
    • Galimybė išjungti aukšto prioriteto užduočių perkėlimą tarp procesorių buvo perkelta iš branduolio-rt šakos realiojo laiko sistemoms.
    • ARM64 sistemoms buvo pridėta galimybė naudoti MTE žymas (MemTag, Memory Tagging Extension) signalų tvarkyklės atminties adresams. MTE naudojimas įgalinamas nurodant SA_EXPOSE_TAGBITS parinktį sigaction() ir leidžia patikrinti, ar teisingai naudojamos rodyklės, siekiant blokuoti pažeidžiamumų, kuriuos sukelia prieiga prie jau atlaisvintų atminties blokų, buferio perpildymo, prieigos prieš inicijavimą ir naudojimą už dabartinis kontekstas.
    • Pridėtas parametras „DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING“, leidžiantis dm-verity posistemiui patikrinti antriniame raktų žiede esančių sertifikatų maišos parašus. Praktiškai sąranka leidžia patikrinti ne tik branduolyje įmontuotus, bet ir veikimo metu įkeltus sertifikatus, todėl sertifikatus galima atnaujinti neatnaujinant viso branduolio.
    • Vartotojo režimas „Linux“ pridėjo palaikymą sustabdymo iki tuščiosios eigos režimo, kuris leidžia užšaldyti aplinką ir naudoti SIGUSR1 signalą, kad pabustumėte iš miego režimo.
    • virtio-mem mechanizmas, leidžiantis prijungti ir atjungti atmintį nuo virtualių mašinų, papildė Big Block Mode (BBM) palaikymą, kuris leidžia perkelti arba paimti atmintį blokais, didesniais nei branduolio atminties dydis. blokas, būtinas norint optimizuoti VFIO QEMU.
    • CHACHA20-POLY1305 šifro palaikymas buvo pridėtas prie TLS branduolio diegimo.
  • Tinklo posistemis
    • 802.1Q (VLAN) įdiegtas ryšio trikčių valdymo mechanizmas (CFM, Connectivity Fault Management), kuris leidžia nustatyti, patikrinti ir išskirti gedimus tinkluose su virtualiais tiltais (Virtual Bridged Networks). Pavyzdžiui, CFM gali būti naudojamas siekiant atskirti problemas tinkluose, apimančiuose kelias nepriklausomas organizacijas, kurių darbuotojai turi prieigą tik prie savo įrangos.
    • Pridėtas SCTP protokolo paketų inkapsuliavimo UDP paketuose palaikymas (RFC 6951), kuris leidžia naudoti SCTP tinkluose su senesniais adresų vertėjais, kurie tiesiogiai nepalaiko SCTP, taip pat įdiegti SCTP sistemose, kurios nesuteikia tiesioginės prieigos prie IP. sluoksnis.
    • „WiMAX“ technologijos diegimas buvo perkeltas į etapą ir bus pašalintas ateityje, jei nebus vartotojų, kuriems reikia „WiMAX“. WiMAX nebenaudojamas viešuosiuose tinkluose, o branduolyje vienintelė tvarkyklė, su kuria galima naudoti WiMAX, yra pasenusi Intel 2400m tvarkyklė. „WiMAX“ palaikymas „NetworkManager“ tinklo konfigūravimo priemonėje buvo nutrauktas 2015 m. Šiuo metu WiMax beveik visiškai pakeistas tokiomis technologijomis kaip LTE, HSPA+ ir Wi-Fi 802.11n.
    • Buvo atliktas darbas optimizuojant gaunamo TCP srauto apdorojimą nulinės kopijos režimu, t.y. be papildomo kopijavimo į naujus buferius. Vidutinio dydžio srautui, apimančiam dešimtis ar kelis šimtus kilobaitų duomenų, naudoti zerocopy vietoj recvmsg() yra pastebimai efektyvesnis. Pavyzdžiui, įgyvendinti pakeitimai leido 32-60% padidinti RPC tipo srauto apdorojimo efektyvumą naudojant 70 KB pranešimus, kai naudojama nulinė kopija.
    • Pridėta naujų ioctl() iškvietimų, kad būtų sukurti tinklo tiltai, apimantys kelias PPP nuorodas. Siūloma galimybė leidžia kadrams perkelti iš vieno kanalo į kitą, pavyzdžiui, iš PPPoE į PPPoL2TP seansą.
    • 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. Naujajame leidime pristatoma parinktis ADD_ADDR, skirta reklamuoti galimus IP adresus, prie kurių galima prisijungti, kai prie esamo MPTCP ryšio pridedami nauji srautai.
    • Pridėta galimybė konfigūruoti veiksmus, kai viršijamas ryšio apklausos biudžetas (busy-polling). Anksčiau galimas SO_BUSY_POLL režimas reiškė perjungimą į softirq, kai biudžetas buvo išnaudotas. Programoms, kurioms reikia toliau naudoti apklausą, siūloma nauja parinktis SO_PREFER_BUSY_POLL.
    • IPv6 įgyvendina SRv6 End.DT4 ir End.DT6 režimų palaikymą, naudojamą kelių vartotojų IPv4 L3 VPN ir VRF (virtualaus maršruto parinkimo ir persiuntimo) įrenginiams kurti.
    • Netfilter suvienijo rinkinių išraiškų įgyvendinimą, o tai leido nurodyti kelias išraiškas kiekvienam rinkinių sąrašų elementui.
    • Prie 802.11 belaidžio tinklo buvo pridėtos API, kad būtų galima konfigūruoti SAR galios ribas, taip pat AE PWE ir HE MCS parametrus. „Intel iwlwifi“ tvarkyklė papildė 6 GHz (Ultra High Band) diapazoną. „Qualcomm Ath11k“ tvarkyklė papildė FILS (greito pradinio ryšio sąrankos, standartizuotos kaip IEEE 802.11ai) technologijos palaikymą, kuri leidžia atsikratyti tarptinklinio ryšio vėlavimų perkeliant iš vieno prieigos taško į kitą.
  • įranga
    • Amdgpu tvarkyklė palaiko AMD "Green Sardine" APU (Ryzen 5000) ir "Dimgrey Cavefish" GPU (Navi 2), taip pat pradinį AMD Van Gogh APU su Zen 2 branduolį ir RDNA 2 GPU (Navi 2) palaikymą. Pridėtas naujų Renoir APU identifikatorių palaikymas (remiantis Zen 2 CPU ir Vega GPU).
    • „Intel“ vaizdo plokštėms skirta i915 tvarkyklė palaiko IS (sveiko skaičiaus mastelio keitimo) technologiją, įdiegusi filtrą, skirtą padidinti mastelį, atsižvelgiant į gretimų pikselių būseną (artimiausio kaimyno interpoliacija), kad būtų galima nustatyti trūkstamų pikselių spalvą. Išplėstas diskrečiųjų Intel DG1 kortelių palaikymas. Buvo įdiegtas „Big Joiner“ technologijos palaikymas, kuris egzistuoja nuo „Ice Lake“ / „Gen11“ lustų ir leidžia naudoti vieną transkoderį dviem srautams apdoroti, pavyzdžiui, išvesti į 8K ekraną per vieną „DisplayPort“. Pridėtas režimas asinchroniniam perjungimui tarp dviejų buferių vaizdo atmintyje (async flip).
    • Naujoji tvarkyklė pridėjo pradinį NVIDIA GPU palaikymą, pagrįstą Ampere mikroarchitektūra (GA100, GeForce RTX 30xx), kol kas apsiribojo vaizdo režimų valdymo įrankiais.
    • Pridėtas LCD skydeliuose naudojamo 3WIRE protokolo palaikymas. Pridėtas palaikymas novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 ir ABT Y030XX067A 3.0 plokštėms. Atskirai galime atkreipti dėmesį į „OnePlus 6“ ir „6T“ išmaniųjų telefonų skydelio palaikymą, kuris leido organizuoti nepakeisto branduolio įkėlimą įrenginiuose.
    • Pridėtas pirmojo „Intel“ atskirojo USB4 pagrindinio kompiuterio valdiklio „Maple Ridge“ palaikymas.
    • Pridėtas Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI ir XCVR, Realtek RT715 ir Qualcomm SM8250 garso kodekų palaikymas.
    • Pridėtas ARM plokščių, įrenginių ir platformų palaikymas: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, Nu730 Arvotonda ​Mikrotik, pagrįsta Marvell Prestera 382DX98, serveriais su Nuvoton NPCM3236 BMC, Kontron i.MX750M Mini, Espressobin Ultra, "Trogdor" Chromebook, Kobol Helios8, Engicam PX64.Core.
    • Integruotas „Ouya“ žaidimų konsolės palaikymas, pagrįstas NVIDIA Tegra 3.

Tuo pačiu metu Lotynų Amerikos laisvosios programinės įrangos fondas sukūrė visiškai nemokamo 5.11 branduolio versiją - Linux-libre 5.11-gnu, išvalyta nuo programinės aparatinės įrangos elementų ir tvarkyklių, kuriuose yra nelaisvų komponentų ar kodo skyrių, kurių apimtis yra ribota. gamintojo. Naujasis leidimas išvalo qat_4xxx (kripto), lt9611uxcm (dsi/hdmi tiltas), ccs/smia++ (jutiklio), ath11k_pci, nxp garso siųstuvo-imtuvo ir mhi pci valdiklio tvarkykles. Atnaujintas blob valymo kodas tvarkyklėse ir posistemiuose amdgpu, btqca, btrtl, btusb, i915 csr. Išjungti nauji blobai m3 rproc, idt82p33 ptp laikrodyje ir qualcomm arm64.

Šaltinis: opennet.ru

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