Izdanje kernela Linux 5.17

Nakon dva mjeseca razvoja, Linus Torvalds je predstavio izdanje Linux kernela 5.17. Među najznačajnijim promjenama: novi sistem upravljanja performansama za AMD procesore, mogućnost rekurzivnog mapiranja korisničkih ID-ova u sistemima datoteka, podrška za prenosive kompajlirane BPF programe, tranzicija generatora pseudo-slučajnih brojeva na BLAKE2s algoritam, RTLA uslužni program za analizu izvršenja u realnom vremenu, novi fscache backend za keširanje mrežnih datotečnih sistema, mogućnost dodavanja imena anonimnim mmap operacijama.

Nova verzija uključuje 14203 popravka od 1995 programera, veličina zakrpe je 37 MB (promjene su uticale na 11366 datoteka, dodano je 506043 reda koda, 250954 linije je obrisano). Oko 44% svih promjena uvedenih u 5.17 odnosi se na drajvere uređaja, otprilike 16% promjena se odnosi na ažuriranje koda specifičnog za hardverske arhitekture, 15% se odnosi na mrežni stog, 4% se odnosi na sistem datoteka i 4% odnose se na interne podsisteme kernela.

Ključne inovacije u kernelu 5.17:

  • Diskovni podsistem, I/O i sistemi datoteka
    • Implementirana mogućnost ugniježđenog mapiranja korisničkih ID-ova montiranih datotečnih sistema, koja se koristi za poređenje datoteka određenog korisnika na montiranoj stranoj particiji sa drugim korisnikom na trenutnom sistemu. Dodata funkcija vam omogućava da rekurzivno koristite mapiranje na vrhu sistema datoteka za koje je mapiranje već primijenjeno.
    • Podsistem fscache, koji se koristi za organizovanje keširanja u lokalnom sistemu datoteka podataka koji se prenose preko mrežnih sistema datoteka, potpuno je prepisan. Novu implementaciju odlikuje značajno pojednostavljenje koda i zamjena složenih operacija planiranja i praćenja stanja objekata jednostavnijim mehanizmima. Podrška za novi fscache je implementirana u CIFS sistem datoteka.
    • Podsistem za praćenje događaja u fanotify FS implementira novi tip događaja, FAN_RENAME, koji vam omogućava da odmah presretnete operaciju preimenovanja datoteka ili direktorija (ranije su se dva odvojena događaja FAN_MOVED_FROM i FAN_MOVED_TO koristila za obradu preimenovanja).
    • Datotečni sistem Btrfs je optimizovao operacije evidentiranja i fsync za velike direktorijume, implementiran kopiranjem samo indeksnih ključeva i smanjenjem količine evidentiranih metapodataka. Osigurana je podrška za indeksiranje i pretraživanje po veličini zapisa slobodnog prostora, što je smanjilo kašnjenje za približno 30% i smanjilo vrijeme pretraživanja. Dozvoljeno da prekine operacije defragmentacije. Mogućnost dodavanja uređaja prilikom balansiranja između diskova je onemogućena, tj. kada montirate sistem datoteka sa opcijom skip_balance.
    • Predložena je nova sintaksa za montiranje Ceph sistema datoteka, koja rješava postojeće probleme vezane za vezivanje za IP adrese. Pored IP adresa, sada možete koristiti identifikator klastera (FSID) za identifikaciju servera: mount -t ceph [email zaštićen]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4 sistem datoteka se preselio na novi API za montiranje koji razdvaja raščlanjivanje opcija montiranja i korake konfiguracije superbloka. Odbacili smo podršku za opcije lazytime i nolazytime mount, koje su dodate kao privremena promjena kako bi se olakšao prelazak util-linuxa na korištenje MS_LAZYTIME zastavice. Dodata podrška za postavljanje i čitanje oznaka u FS (ioctl FS_IOC_GETFSLABEL i FS_IOC_SETFSLABEL).
    • NFSv4 je dodao podršku za rad u sistemima datoteka koji ne razlikuju velika i mala slova u imenima datoteka i direktorija. NFSv4.1+ dodaje podršku za definisanje agregiranih sesija (trunking).
  • Memorijski i sistemski servisi
    • Dodat amd-pstate drajver za pružanje dinamičke kontrole frekvencije za optimalne performanse. Drajver podržava AMD CPU-ove i APU-ove počevši od Zen 2 generacije, razvijene zajedno sa Valve-om i ima za cilj poboljšanje efikasnosti upravljanja energijom. Za prilagodljive promjene frekvencije koristi se mehanizam CPPC (Collaborative Processor Performance Control) koji vam omogućava da preciznije mijenjate indikatore (ne ograničavajući se na tri nivoa performansi) i brže reagirate na promjene stanja od prethodno korištenog P-stanja zasnovanog na ACPI-ju. drajveri (CPUFreq).
    • eBPF podsistem nudi bpf_loop() rukovalac, koji pruža alternativni način organizovanja petlji u eBPF programima, brže i lakše za verifikaciju od strane verifikatora.
    • Na nivou kernela implementiran je mehanizam CO-RE (Compile Once - Run Everywhere) koji vam omogućava da kompajlirate kod eBPF programa samo jednom i koristite poseban univerzalni loader koji prilagođava učitani program trenutnom kernelu i BTF tipovima (Format BPF tipa).
    • Moguće je dodijeliti imena područjima privatne anonimne (dodijeljene preko malloc) memorije, što može pojednostaviti otklanjanje grešaka i optimizaciju potrošnje memorije u aplikacijama. Imena se dodeljuju preko prctl sa PR_SET_VMA_ANON_NAME zastavicom i prikazuju se u /proc/pid/maps i /proc/pid/smaps u obliku "[anon: ]".
    • Planer zadataka omogućava praćenje i prikaz u /proc/PID/schedu vremena provedenog od strane procesa u stanju prisilnog mirovanja, koje se koristi, na primjer, za smanjenje opterećenja kada se procesor pregrije.
    • Dodan gpio-sim modul, dizajniran da simulira GPIO čipove za testiranje.
    • Naredbi "perf ftrace" dodana je podnaredba "latency" za generiranje histograma s informacijama o kašnjenju.
    • Dodan set "RTLA" uslužnih programa za analizu rada u realnom vremenu. Uključuje uslužne programe kao što su osnoise (određuje uticaj operativnog sistema na izvršavanje zadatka) i timerlat (menja kašnjenja povezana sa tajmerom).
    • Druga serija zakrpa je integrisana sa implementacijom koncepta listova stranica, koji podsećaju na složene stranice, ali imaju poboljšanu semantiku i jasniju organizaciju rada. Korištenje tomova vam omogućava da ubrzate upravljanje memorijom u nekim podsistemima kernela. Predložene zakrpe su dovršile konverziju keša stranica u upotrebu tomova i dodale početnu podršku za tomove u sistemu datoteka XFS.
    • Dodan način izrade "make mod2noconfig", koji generiše konfiguraciju koja prikuplja sve onemogućene podsisteme u obliku modula kernela.
    • Zahtjevi za verziju LLVM/Clang koja se može koristiti za izgradnju kernela su podignuti. Izgradnja sada zahtijeva najmanje LLVM 11 izdanje.
  • Virtuelizacija i sigurnost
    • Predložena je ažurirana implementacija generatora pseudo-slučajnih brojeva RDRAND, odgovornog za rad /dev/random i /dev/urandom uređaja, značajna po prelasku na korištenje BLAKE2s hash funkcije umjesto SHA1 za operacije miješanja entropije. Promjena je poboljšala sigurnost generatora pseudo-slučajnih brojeva eliminacijom problematičnog SHA1 algoritma i eliminacijom prepisivanja RNG vektora inicijalizacije. Budući da je BLAKE2s algoritam superiorniji od SHA1 u performansama, njegova upotreba je također imala pozitivan učinak na performanse.
    • Dodata zaštita od ranjivosti u procesorima uzrokovanih spekulativnim izvršavanjem instrukcija nakon bezuvjetnih operacija skoka naprijed. Problem se javlja zbog preventivne obrade instrukcija neposredno nakon instrukcije grananja u memoriji (SLS, Straight Line Speculation). Omogućavanje zaštite zahtijeva izgradnju s trenutno testiranim izdanjem GCC 12.
    • Dodan mehanizam za praćenje brojanja referenci (refcount, reference-count), čiji je cilj smanjenje broja grešaka u brojanju referenci koje dovode do pristupa memoriji nakon što je ona oslobođena. Mehanizam je trenutno ograničen na mrežni podsistem, ali se u budućnosti može prilagoditi drugim dijelovima kernela.
    • Implementirane su proširene provjere novih unosa u tablici stranica procesne memorije, omogućavajući otkrivanje određenih vrsta oštećenja i zaustavljanje sistema, blokirajući napade u ranoj fazi.
    • Dodata je mogućnost da se moduli kernela raspakuju direktno od strane samog kernela, a ne od strane rukovaoca u korisničkom prostoru, što omogućava korišćenje LoadPin LSM modula kako bi se osiguralo da se moduli kernela učitavaju u memoriju sa verifikovanog uređaja za skladištenje.
    • Obezbeđen sklop sa zastavicom "-Wcast-function-type", koja omogućava upozorenja o prebacivanju pokazivača funkcija na nekompatibilan tip.
    • Dodan drajver virtuelnog hosta pvUSB za Xen hipervizor, koji omogućava pristup USB uređajima koji se prosleđuju gostujućim sistemima (omogućava gostujućim sistemima da pristupe fizičkim USB uređajima koji su dodeljeni sistemu za goste).
    • Dodan je modul koji vam omogućava interakciju putem Wi-Fi-ja sa IME (Intel Management Engine) podsistemom, koji dolazi u većini modernih matičnih ploča sa Intel procesorima i implementiran je kao poseban mikroprocesor koji radi nezavisno od CPU-a.
    • Za ARM64 arhitekturu, implementirana je podrška za KCSAN (Kernel Concurrency Sanitizer) alat za otklanjanje grešaka, dizajniran da dinamički detektuje uslove trke unutar kernela.
    • Za 32-bitne ARM sisteme, dodata je mogućnost korištenja mehanizma KFENCE za otkrivanje grešaka pri radu sa memorijom.
    • KVM hipervizor dodaje podršku za AMX (Advanced Matrix Extensions) instrukcije implementirane u nadolazeće Intel Xeon Scalable server procesore.
  • Mrežni podsistem
    • Dodata podrška za prenošenje operacija koje se odnose na upravljanje prometom na stranu mrežnih uređaja.
    • Dodata je mogućnost korištenja MCTP-a (Protokol za transport komponenti upravljanja) preko serijskih uređaja. MCTP se može koristiti za komunikaciju između upravljačkih kontrolera i njihovih povezanih uređaja (host procesora, perifernih uređaja, itd.).
    • TCP stack je optimiziran, na primjer, za poboljšanje performansi recvmsg poziva, implementirano je odloženo oslobađanje bafera utičnice.
    • Na razini ovlaštenja CAP_NET_RAW, postavljanje SO_PRIORITY i SO_MARK načina rada putem setsockopt funkcije je dozvoljeno.
    • Za IPv4, sirovim utičnicama je dozvoljeno da budu vezani za ne-lokalne IP adrese pomoću opcija IP_FREEBIND i IP_TRANSPARENT.
    • Dodan sysctl arp_missed_max za konfigurisanje graničnog broja grešaka tokom provjere ARP monitora, nakon čega se mrežni interfejs stavlja u onemogućeno stanje.
    • Pruža mogućnost konfiguriranja zasebnih sysctl min_pmtu i mtu_expires vrijednosti za mrežne prostore imena.
    • Dodata mogućnost postavljanja i određivanja veličine bafera za dolazne i odlazne pakete u ethtool API.
    • Netfilter je dodao podršku za filtriranje tranzitnog pppoe saobraćaja u mrežnom mostu.
    • Modul ksmbd, koji implementira server datoteka koristeći SMB3 protokol, dodao je podršku za razmjenu ključeva, omogućio mrežni port 445 za smbdirect i dodao je podršku za parametar “smb2 max credit”.
  • Oprema
    • Podsistemu drm (Direct Renderering Manager) i drajveru i915 dodata je podrška za ekrane za prikaz povjerljivih informacija, na primjer, neki laptopi su opremljeni ekranima sa ugrađenim povjerljivim načinom gledanja, što otežava pregled izvana . Dodate promene vam omogućavaju da povežete specijalizovane drajvere za takve ekrane i kontrolišete poverljive režime pregledavanja postavljanjem svojstava u regularnim KMS drajverima.
    • Amdgpu drajver uključuje podršku za STB (Smart Trace Buffer) tehnologiju otklanjanja grešaka za sve AMD GPU-ove koji ga podržavaju. STB olakšava analizu kvarova i identifikaciju izvora problema pohranjivanjem u poseban međuspremnik informacija o funkcijama koje su izvršene prije posljednjeg kvara.
    • I915 drajver dodaje podršku za Intel Raptor Lake S čipove i podrazumeva podršku za grafički podsistem Intel Alder Lake P čipova. Moguće je kontrolisati pozadinsko osvetljenje ekrana preko VESA DPCD interfejsa.
    • Podrška za hardversko ubrzanje skrolovanja u konzoli je vraćena u fbcon/fbdev drajverima.
    • Nastavak integracije promjena za podršku Apple M1 čipovima. Implementirana je mogućnost korištenja drajvera simpledrm na sistemima sa Apple M1 čipom za izlaz kroz framebuffer koji obezbjeđuje firmver.
    • Dodata podrška za ARM SoS, uređaje i ploče Snapdragon 7c, 845 i 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 (koristi se u Wi-fi ruterima), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAS.MXNXR320 , Aspeed AST8/AST8, Engicam i.Core STM2500MP2600, Allwinner Tanix TX32, Facebook Bletchley BMC, Goramo MultiLink, JOZ pristupna tačka, Y Soft IOTA Crux/Crux+, t1/t6 MacBook Pro 6000/6001.
    • Dodata podrška za ARM Cortex-M55 i Cortex-M33 procesore.
    • Dodata podrška za uređaje bazirane na CPU MIPS-u: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Dodata podrška za StarFive JH7100 SoC baziran na RISC-V arhitekturi.
    • Dodan drajver lenovo-yogabook-wmi za kontrolu pozadinskog osvetljenja tastature i pristup raznim senzorima u Lenovo Yoga Book.
    • Dodan drajver asus_wmi_sensors za pristup senzorima koji se koriste na Asus X370, X470, B450, B550 i X399 matičnim pločama baziranim na AMD Ryzen procesorima.
    • Dodan drajver za x86-android tablete za tablet računare zasnovane na x86 koji se isporučuju sa Android platformom.
    • Dodata podrška za TrekStor SurfTab duo W1 ekrane na dodir i elektronsku olovku za Chuwi Hi10 Plus i Pro tablete.
    • Drajveri za SoC Tegra 20/30 imaju dodatnu podršku za upravljanje napajanjem i naponom. Omogućava pokretanje na starijim 32-bitnim Tegra SoC uređajima kao što su ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 i Pad TF300TG.
    • Dodati drajveri za Siemens industrijske računare.
    • Dodata podrška za Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA i X Source043015 LCD panel TSTXNUMX.
    • Dodata podrška za zvučne sisteme i kodeke AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel sisteme koji koriste NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLVxxx320AD. Problemi sa Tegra3 HD-audio-om su riješeni. Dodata HDA podrška za CS194L35 kodeke. Poboljšana podrška za zvučne sisteme za Lenovo i HP laptopove, kao i Gigabyte matične ploče.

izvor: opennet.ru

Dodajte komentar