Izdaja jedra Linux 5.17

Po dveh mesecih razvoja je Linus Torvalds predstavil sprostitev jedra Linux 5.17. Med najopaznejšimi spremembami so: nov sistem za upravljanje zmogljivosti za procesorje AMD, možnost rekurzivnega preslikovanja identifikatorjev uporabnikov v datotečnih sistemih, podpora prenosljivim skompiliranim BPF programom, prehod generatorja psevdonaključnih števil na algoritem BLAKE2s, orodje RTLA za analizo delovanja v realnem času, nova kabina fscache za predpomnjenje omrežnih FS ter možnost pritrjevanja imen na anonimne operacije mmap.

V novo različico je sprejetih 14203 popravkov od 1995 razvijalcev, velikost popravka pa je 37 MB (spremembe so zajele 11366 datotek, dodanih je bilo 506043 vrstic kode, 250954 vrstic pa je bilo odstranjenih). Približno 44 % vseh sprememb v 5.17 se nanaša na gonilnike naprav, približno 16 % sprememb se nanaša na posodobitev kode, specifične za strojne arhitekture, 15 % pa je povezanih z omrežno zgradbo, 4 % z datotečnimi sistemi in 4 % z notranjimi pod sistemi jedra.

Glavne novosti v jedru 5.17:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • Izvedena je bila možnost gnezdenega preslikovanja identifikatorjev uporabnikov montiranih datotečnih sistemov, ki se uporablja za vzpostavitev povezave med datotekami določenega uporabnika na montirani tuji particiji in drugim uporabnikom v trenutnem sistemu. Dodana možnost omogoča rekurzivno uporabo preslikovanja nad datotečnimi sistemi, za katere je že uporabljeno preslikovanje.
    • Popolnoma je bila prerisana podsystem fscache, ki se uporablja za organizacijo predpomnjenja v lokalnem datotečnem sistemu podatkov, prenesenih prek omrežnih datotečnih sistemov. Nova izvedba se odlikuje s pomembnim poenostavljenjem kode in zamenjavo zapletenih operacij načrtovanja in sledenja stanj objektov z enostavnejšimi mehanizmi. Podpora novega fscache je реализерана v datotečnem sistemu CIFS.
    • V podsistemu za sledenje dogodkom v FS fanotify je bil uveden nov tip dogodkov FAN_RENAME, ki omogoča enkratno zajemanje operacije preimenovanja datotek ali map (prej so za obdelavo preimenovanj uporabljala dva ločena dogodka FAN_MOVED_FROM in FAN_MOVED_TO).
    • V datotečnem sistemu Btrfs je bila optimizacija operacij beleženja in fsync za velike mape izvedena z zgoščevanjem le indeksnih ključev in zmanjševanjem količine beleženih metapodatkov. Zagotovljena je podpora za indeksiranje in iskanje po velikosti zapisov o prostem prostoru, kar je omogočilo približno 30-odstotno zmanjšanje zakasnitve in skrajšanje časa iskanja. Dovoli se prekinjanje operacij defragmentacije. Vključena je možnost dodajanja naprav brez uravnoteženja med shranjevalniki, torej ob montaži FS z možnostjo skip_balance.
    • Predlagana je nova sintaksa za montažo datotečnega sistema Ceph, ki rešuje obstoječe težave, povezane s povezovanjem na IP-naslove. Poleg IP naslovov za določitev strežnika je zdaj mogoče uporabiti identifikator klasterja (FSID): mount -t ceph user@fsid.fs_name=\/[subdir] mnt -o mon_addr=monip1[:port][\/monip2[:port]]
    • Datotečni sistem Ext4 je prešel na nov API za montažo, ki ločuje faze analize možnosti montaže in konfiguracije superbloka. Prikrajšana je podpora za možnosti montaže lazytime in nolazytime, ki so bile dodane kot začasna sprememba za poenostavitev prenosa util-linux na uporabo zastavice MS_LAZYTIME. Dodana je podpora za nastavitev in branje oznak v FS (ioctl FS_IOC_GETFSLABEL in FS_IOC_SETFSLABEL).
    • NFSv4 je dodala podporo za delovanje v datotečnih sistemih brez ločevanja velikosti črk v imenih datotek in map. V NFSv4.1+ je dodana podpora za določitev agregiranih sej (trunking).
  • Pomnilnik in sistemske storitve
    • Dodana je gonilnik amd-pstate, ki omogoča dinamično upravljanje frekvence za dosego optimalne zmogljivosti. Gonilnik podpira CPU in APU AMD od generacije Zen 2, razvit v sodelovanju s podjetjem Valve in namenjen povečevanju učinkovitosti upravljanja porabe energije. Za prilagodljivo spreminjanje frekvence se uporablja mehanizem CPPC (Collaborative Processor Performance Control), ki omogoča natančnejše prilagajanje kazalnikov (ni omejen na tri ravni zmogljivosti) in hitrejše odzivanje na spremembe stanja kot prej uporabljeni P-state gonilniki na osnovi ACPI (CPUFreq).
    • V podskupini eBPF je predlagan obdelovalnik bpf_loop(), ki ponuja alternativen način organizacije zank v eBPF programih, hitrejši in lažji za preverjanje z verifierjem.
    • Na ravni jedra je implementiran mehanizem CO-RE (Compile Once — Run Everywhere), ki omogoča zbiranje kode eBPF programov le enkrat in uporabo posebnega univerzalnega nalagalnika, ki prilagodi nalagano programa trenutnemu jedru in tipom BTF (BPF Type Format).
    • Omogočeno je dodeljevanje imen za območja zasebne anonimne (dodeljene preko malloc) pomnilnika, kar lahko poenostavi postopke razhroščevanja in optimizacije porabe pomnilnika v aplikacijah. Imena se dodelijo preko prctl z oznako PR_SET_VMA_ANON_NAME in se prikažejo v /proc/pid/maps ter /proc/pid/smaps v obliki „[anon:<ime>]“.
    • V načrtovalniku nalog je omogočeno sledenje in prikaz v /proc/PID/sched časa, preživetega v stanju prisilnega mirovanja (forced-idle), ki se uporablja na primer za zmanjšanje obremenitve med pregrevanjem procesorja.
    • Dod modul gpio-sim, namenjen simulaciji GPIO čipov za izvajanje testiranja.
    • V ukaz "perf ftrace" je dodana podukaz "latency" za generiranje histogramov z informacijami o zamudah.
    • Dodana je zbirka orodij "RTLA" za analizo delovanja v realnem času. Vključuje orodja, kot sta osnoise (določa vpliv operacijskega sistema na izvajanje naloge) in timerlat (spreminja zamude, povezane s časovnikom).
    • Integrirana je druga serija popravkov z implementacijo koncepta zvezkov strani pomnilnika (page folios), ki spominjajo na združene strani pomnilnika (compound pages), vendar se razlikujejo po izboljšani semantiki in jasnejši organizaciji dela. Uporaba zvezkov omogoča hitrejše upravljanje pomnilnika v nekaterih podsystems jedra. V predlaganih popravkih je končan prenos straniške predpomnilnika na uporabo zvezkov in dodana začetna podpora zvezkom v datotečnem sistemu XFS.
    • Dodana je možnost sestavljanja „make mod2noconfig“, pri kateri se ustvari konfiguracija, ki sestavi vse izklopljene podsisteme v obliki jedrskih modulov.
    • Povišane so zahteve glede različice LLVM/Clang, ki se lahko uporablja za sestavljanje jedra. Za sestavljanje zdaj zahteva najmanj izdajo LLVM 11.
  • Virtualizacija in varnost
    • Predlagana je posodobljena izvedba generatorja naključnih števil RDRAND, ki je odgovoren za delovanje naprav /dev/random in /dev/urandom, značilna pa je prehod na uporabo hash funkcije BLAKE2s namesto SHA1 za operacije mešanja entropije. Ta sprememba je omogočila povečanje varnosti generatorja naključnih števil, saj se je izognila problematičnemu algoritmu SHA1 in izključila prepisovanje vektorja inicializacije RNG. Ker algoritem BLAKE2s prekaša SHA1 po zmogljivosti, se je njegova uporaba pozitivno odrazila tudi na zmogljivosti.
    • Dodana je zaščita pred ranljivostmi v procesorjih, ki izhajajo iz spekulativne izvedbe ukazov po operacijah brezpogojnega neposrednega prehoda. Težava nastane zaradi predhodne obdelave ukazov, ki sledijo v pomnilniku takoj za ukazom prehoda (SLS, Straight Line Speculation). Za vključitev zaščite je potrebna sestava z uporabo različice GCC 12, ki je trenutno v fazi testiranja.
    • Dodan je mehanizem za sledenje štetju referenc (refcount, reference-count), ki je usmerjen v zmanjšanje števila napak pri štetju referenc, ki vodijo do dostopa do pomnilnika po njegovi osvoboditvi. Ta mehanizem je trenutno omejen na omrežno podsystem, lahko pa se v prihodnosti prilagodi tudi drugim delom jedra.
    • Izvedene so bile razširjene preglede novih zapisov v tabeli strani pomnilnika procesa, kar omogoča odkrivanje nekaterih vrst poškodb in ustavitev sistema ter blokiranje napadov v zgodnji fazi.
    • Dodana je možnost razpakiranja jedrskih modulov neposredno v jedru, namesto v obdelovalniku v uporabniškem prostoru, kar omogoča, da z uporabo LSM-modula LoadPin zagotovimo, da so jedrski moduli naloženi v pomnilnik iz verificirane naprave za shranjevanje.
    • Zagotovljena je sestava z oznako "-Wcast-function-type", ki vključuje izpis opozoril o konverziji kazalcev funkcij v nezdružljive tipe.
    • Dodan je virtualni gostiteljski gonilnik pvUSB za hipervizor Xen, ki omogoča dostop do USB naprav, preusmerjenih v gostiteljske sisteme (kar omogoča, da gostiteljski sistemi dostopajo do fizičnih USB naprav, dodeljenih gostiteljskemu sistemu).
    • Dodan je modul, ki omogoča interakcijo s podsklopom IME (Intel Management Engine) preko Wi-Fi, ki je vgrajen v večini sodobnih matičnih plošč z Intel procesorji in deluje kot ločen mikroprocesor, neodvisen od CPU.
    • Za arhitekturo ARM64 je bila uvedena podpora za orodje za odpravljanje napak KCSAN (Kernel Concurrency Sanitizer), namenjeno dinamičnemu odkrivanju stanj dirke znotraj jedra.
    • Za 32-bitne sisteme ARM je dodana možnost uporabe mehanizma KFENCE za odkrivanje napak pri delu s pomnilnikom.
    • V hipervizorju KVM je dodana podpora za ukaze AMX (Advanced Matrix Extensions), implementirane v prihajajočih strežniških procesorjih Intel Xeon Scalable.
  • Mrežna podsistem
    • Dodana je podpora za prenos (offloading) operacij, povezanih z upravljanjem prometa, na omrežne naprave.
    • Dodana je možnost uporabe protokola MCTP (Management Component Transport Protocol) preko naprav s serijskim vmesnikom. MCTP se lahko uporablja za komunikacijo med upravljalnimi krmilniki in povezanimi napravami (glavni procesorji, periferne naprave itd.).
    • Optimiziran je TCP sklad, na primer za izboljšanje učinkovitosti klicev recvmsg je bilo uvedeno odloženo sproščanje socketov.
    • Na ravni pooblastil CAP_NET_RAW je dovoljeno nastavljanje režimov SO_PRIORITY in SO_MARK preko funkcije setsockopt.
    • Za IPv4 je dovoljeno pritrjevanje raw socketov na nerazporejene IP naslove, z uporabo možnosti IP_FREEBIND in IP_TRANSPARENT.
    • Dodana je sysctl arp_missed_max za nastavitev praga števila napak pri preverjanju ARP monitorja, po katerem je omrežni vmesnik preklopljen v izklopljeno stanje.
    • Dostopna je možnost nastavitve posameznih vrednosti sysctl min_pmtu in mtu_expires za omrežne prostore imen.
    • V API ethtool je dodana možnost nastavljanja in določanja velikosti predpomnilnikov vhodnih in izhodnih paketov.
    • V Netfilter je dodana podpora za filtriranje prehodnega pppoe prometa v omrežnem mostu.
    • V modul ksmbd z implementacijo datotečnega strežnika, ki uporablja protokol SMB3, je dodana podpora za izmenjavo ključev, uporabljen je omrežni port 445 za smbdirect in dodana je podpora za parameter 'smb2 max credit.'
  • Oprema
    • V podsystemu drm (Direct Rendering Manager) in v gonilniku i915 je bila dodana podpora za zaslone za prikaz zaupnih informacij, na primer, nekateri prenosniki so opremljeni z zasloni, ki vključujejo način zaupnega ogleda, kar otežuje pogled z drugih strani. Dodane spremembe omogočajo povezovanje specializiranih gonilnikov za takšne zaslone in upravljanje načinov zaupnega ogleda prek nastavitev lastnosti v običajnih KMS-gonilnikih.
    • V gonilniku amdgpu je bila vključena podpora za debug tehnologijo STB (Smart Trace Buffer) za vse GPU AMD, ki jo podpirajo. STB poenostavi analizo napak in identifikacijo virov težav z shranjevanjem informacij o funkcijah, ki so se izvajale pred zadnjo napako, v poseben pomnilnik.
    • V gonilniku i915 je bila dodana podpora za čipe Intel Raptor Lake S in privzeto vključena podpora za grafično podsystemsko Intel Alder Lake P. Omogočeno je upravljanje osvetlitve zaslona preko DPCD-vmesnika VESA.
    • V gonilnikih fbcon/fbdev je bila vrnjena podpora za strojno pospeševanje pomikanja v konzoli.
    • Nadaljevanje integracije sprememb za podporo čipom Apple M1. Omogočena je uporaba gonilnika simpledrm na sistemih s čipom Apple M1 za izhod preko okvira, ki ga zagotavlja programska oprema.
    • Dodana podpora za ARM SoC, naprave in plošče Snapdragon 7c, 845 in 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 (uporabljeno v Wi-Fi usmerjevalnikih), 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.
    • Dodana podpora procesorjev ARM Cortex-M55 in Cortex-M33.
    • Dodana podpora za naprave na osnovi CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Dodana podpora za SoC StarFive JH7100, ki temelji na arhitekturi RISC-V.
    • Dodana gonilnika lenovo-yogabook-wmi za upravljanje osvetlitve tipkovnice in dostopa do različnih senzorjev v Lenovo Yoga Book.
    • Dodana gonilnika asus_wmi_sensors za dostop do senzorjev, ki se uporabljajo na matičnih ploščah Asus X370, X470, B450, B550 in X399, ki temeljijo na procesorjih AMD Ryzen.
    • Dodana gonilnika x86-android-tablets za tablične računalnike, ki temeljijo na arhitekturi x86 in so dobavljeni s platformo Android.
    • Dodana je podpora za zaslone na dotik TrekStor SurfTab duo W1 in elektronsko pero za tablične računalnike Chuwi Hi10 Plus in Pro.
    • V gonilnike za SoC Tegra 20/30 je dodana podpora za upravljanje z energijo in napetostjo. Omogočeno je nalaganje na starih 32-bitnih napravah, ki temeljijo na SoC Tegra, kot so ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 in Pad TF300TG.
    • Dodani so gonilniki za industrijske računalnike Siemens.
    • Dodana je podpora za LCD-panele Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA in Team Source Display TST043015CMHX.
    • Dodana je podpora za avdio sisteme in kodeke AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel sistemi z NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/P-DIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Rešeni so problemi z Tegra194 HD-audio. Dodana je podpora za HDA za kodeke CS35L41. Izboljšana je podpora za avdio sisteme prenosnikov Lenovo in HP ter matičnih plošč Gigabyte.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster