Izdanje jezgre Linuxa 5.17

Nakon dva mjeseca razvoja, Linus Torvalds predstavio je izdanje Linux kernela 5.17. Među najznačajnijim promjenama: novi sustav upravljanja performansama za AMD procesore, mogućnost rekurzivnog mapiranja korisničkih ID-ova u datotečnim sustavima, podrška za prijenosne kompajlirane BPF programe, prijelaz generatora pseudoslučajnih brojeva na BLAKE2s algoritam, RTLA uslužni program za analizu izvršenja u stvarnom vremenu, novi fscache backend za predmemoriju mrežnih datotečnih sustava, mogućnost pridavanja imena anonimnim mmap operacijama.

Nova verzija uključuje 14203 popravka od 1995 programera, veličina zakrpe je 37 MB (promjene su utjecale na 11366 datoteka, dodane su 506043 linije koda, 250954 linije su izbrisane). Oko 44% svih promjena uvedenih u 5.17 odnosi se na upravljačke programe uređaja, približno 16% promjena odnosi se na ažuriranje koda specifičnog za hardverske arhitekture, 15% se odnosi na mrežni stog, 4% se odnosi na sustave datoteka, a 4% povezani su s unutarnjim podsustavima jezgre.

Ključne inovacije u kernelu 5.17:

  • Diskovni podsustav, I/O i datotečni sustavi
    • Implementirana je mogućnost ugniježđenog mapiranja ID-ova korisnika montiranih datotečnih sustava, koji se koriste za usporedbu datoteka određenog korisnika na montiranoj stranoj particiji s drugim korisnikom na trenutnom sustavu. Dodana značajka omogućuje vam rekurzivno korištenje mapiranja povrh datotečnih sustava za koje je mapiranje već primijenjeno.
    • Podsustav fscache, koji se koristi za organiziranje predmemoriranja u lokalnom datotečnom sustavu podataka koji se prenose kroz mrežne datotečne sustave, potpuno je prepisan. Novu implementaciju ističe značajno pojednostavljenje koda i zamjena složenih operacija planiranja i praćenja stanja objekata jednostavnijim mehanizmima. Podrška za novi fscache implementirana je u CIFS datotečni sustav.
    • Podsustav za praćenje događaja u fanotify FS-u implementira novu vrstu događaja, FAN_RENAME, koji vam omogućuje trenutno presretanje operacije preimenovanja datoteka ili direktorija (prethodno su se dva odvojena događaja FAN_MOVED_FROM i FAN_MOVED_TO koristila za obradu preimenovanja).
    • Datotečni sustav Btrfs optimizirao je operacije zapisivanja i fsync za velike direktorije, implementirane kopiranjem samo ključeva indeksa i smanjenjem količine zabilježenih metapodataka. Omogućena je podrška za indeksiranje i pretraživanje prema veličini zapisa slobodnog prostora, što je smanjilo kašnjenje za približno 30% i smanjilo vrijeme pretraživanja. Dopušteno prekidanje operacija defragmentacije. Mogućnost dodavanja uređaja kada je balansiranje između pogona onemogućeno, tj. prilikom montiranja datotečnog sustava s opcijom skip_balance.
    • Predložena je nova sintaksa za montiranje Ceph datotečnog sustava, rješavajući postojeće probleme povezane s vezanjem na IP adrese. Uz IP adrese, sada možete koristiti identifikator klastera (FSID) za identifikaciju poslužitelja: mount -t ceph [e-pošta zaštićena]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Datotečni sustav Ext4 prešao je na novi API za montiranje koji odvaja parsiranje opcija montiranja i korake konfiguracije superbloka. Ukinuli smo podršku za opcije montiranja lazytime i nolazytime, koje su dodane kao privremena promjena kako bi se olakšao prijelaz util-linuxa na korištenje oznake MS_LAZYTIME. Dodana podrška za postavljanje i čitanje oznaka u FS-u (ioctl FS_IOC_GETFSLABEL i FS_IOC_SETFSLABEL).
    • NFSv4 je dodao podršku za rad u datotečnim sustavima koji ne razlikuju velika i mala slova u imenima datoteka i direktorija. NFSv4.1+ dodaje podršku za definiranje agregiranih sesija (trunking).
  • Memorija i usluge sustava
    • Dodan upravljački program amd-pstate za dinamičku kontrolu frekvencije za optimalnu izvedbu. Driver podržava AMD CPU i APU počevši od Zen 2 generacije, razvijen u suradnji s Valveom i usmjeren je na poboljšanje učinkovitosti upravljanja energijom. Za adaptivne promjene frekvencije koristi se mehanizam CPPC (Collaborative Processor Performance Control) koji vam omogućuje točniju promjenu indikatora (nije ograničeno na tri razine performansi) i brže reagiranje na promjene stanja od prethodno korištenog P-stanja temeljenog na ACPI-ju upravljački programi (CPUFreq).
    • Podsustav eBPF nudi rukovatelj bpf_loop(), koji pruža alternativni način organiziranja petlji u eBPF programima, brži i lakši za provjeru od strane verifikatora.
    • Na razini jezgre implementiran je mehanizam CO-RE (Compile Once - Run Everywhere) koji vam omogućuje kompajliranje koda eBPF programa samo jednom i korištenje posebnog univerzalnog učitavača koji prilagođava učitani program trenutnoj jezgri i BTF tipovima (Format tipa BPF).
    • Moguće je dodijeliti imena područjima privatne anonimne (dodijeljene putem malloc) memorije, što može pojednostaviti otklanjanje pogrešaka i optimizaciju potrošnje memorije u aplikacijama. Imena se dodjeljuju preko prctl s oznakom PR_SET_VMA_ANON_NAME i prikazuju se u /proc/pid/maps i /proc/pid/smaps u obliku "[anon: ]".
    • Planer zadataka omogućuje praćenje i prikaz u /proc/PID/sched 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 za simulaciju GPIO čipova za testiranje.
    • Dodana je podnaredba "latency" naredbi "perf ftrace" za generiranje histograma s informacijama o kašnjenju.
    • Dodan skup "RTLA" uslužnih programa za analizu rada u stvarnom vremenu. Uključuje pomoćne programe kao što su osnoise (određuje utjecaj operativnog sustava na izvršenje zadatka) i timerlat (mijenja kašnjenja povezana s timerom).
    • Druga serija zakrpa integrirana je s implementacijom koncepta folija stranica, koje nalikuju složenim stranicama, ali imaju poboljšanu semantiku i jasniju organizaciju rada. Korištenje tomova omogućuje vam da ubrzate upravljanje memorijom u nekim podsustavima jezgre. Predložene zakrpe dovršile su pretvorbu predmemorije stranica u upotrebu tomova i dodale početnu podršku za tomove u sustavu datoteka XFS.
    • Dodan način izrade "make mod2noconfig", koji generira konfiguraciju koja prikuplja sve onemogućene podsustave u obliku kernel modula.
    • Zahtjevi za verziju LLVM/Clang koja se može koristiti za izgradnju kernela su povećani. Build sada zahtijeva najmanje LLVM 11 izdanje.
  • Virtualizacija i sigurnost
    • Predložena je ažurirana implementacija generatora pseudoslučajnih brojeva RDRAND, odgovornog za rad /dev/random i /dev/urandom uređaja, značajna po prijelazu na korištenje BLAKE2s hash funkcije umjesto SHA1 za operacije miješanja entropije. Promjena je poboljšala sigurnost generatora pseudoslučajnih brojeva uklanjanjem problematičnog SHA1 algoritma i uklanjanjem prepisivanja RNG inicijalizacijskog vektora. Budući da je algoritam BLAKE2s bolji od SHA1 u izvedbi, njegova je upotreba također imala pozitivan učinak na izvedbu.
    • Dodana zaštita od ranjivosti u procesorima uzrokovane spekulativnim izvršavanjem instrukcija nakon bezuvjetnih operacija skoka naprijed. Problem se javlja zbog pre-emptive obrade instrukcija neposredno nakon instrukcije grananja u memoriji (SLS, Straight Line Speculation). Omogućavanje zaštite zahtijeva izgradnju s izdanjem GCC 12 koje se trenutno testira.
    • Dodan je mehanizam za praćenje brojanja referenci (refcount, reference-count), s ciljem smanjenja broja pogrešaka u brojanju referenci koje dovode do pristupa memoriji nakon što je ona oslobođena. Mehanizam je trenutno ograničen na mrežni podsustav, no u budućnosti se može prilagoditi i drugim dijelovima kernela.
    • Implementirane su proširene provjere novih unosa u tablici stranica memorije procesa, što omogućuje otkrivanje određenih vrsta oštećenja i zaustavljanje sustava, blokiranje napada u ranoj fazi.
    • Dodana je mogućnost raspakiranja modula kernela izravno od strane samog kernela, a ne pomoću rukovatelja u korisničkom prostoru, što omogućuje korištenje modula LoadPin LSM kako bi se osiguralo da se moduli kernela učitavaju u memoriju s provjerenog uređaja za pohranu.
    • Dostavljen sklop s oznakom "-Wcast-function-type", koja omogućuje upozorenja o pretvaranju pokazivača funkcija na nekompatibilni tip.
    • Dodan upravljački program virtualnog hosta pvUSB za Xen hipervizor, koji omogućuje pristup USB uređajima proslijeđenim sustavima za goste (omogućuje sustavima za goste pristup fizičkim USB uređajima koji su dodijeljeni sustavu za goste).
    • Dodan je modul koji omogućuje interakciju putem Wi-Fi-ja s IME (Intel Management Engine) podsustavom koji dolazi u većini modernih matičnih ploča s Intelovim procesorima i implementiran je kao zasebni mikroprocesor koji radi neovisno o CPU-u.
    • Za arhitekturu ARM64 implementirana je podrška za alat za otklanjanje pogrešaka KCSAN (Kernel Concurrency Sanitizer), dizajniran za dinamičko otkrivanje uvjeta utrke unutar kernela.
    • Za 32-bitne ARM sustave dodana je mogućnost korištenja KFENCE mehanizma za otkrivanje grešaka pri radu s memorijom.
    • KVM hipervizor dodaje podršku za AMX (Advanced Matrix Extensions) upute implementirane u nadolazećim procesorima Intel Xeon Scalable poslužitelja.
  • Mrežni podsustav
    • Dodana podrška za pretovar operacija vezanih uz upravljanje prometom na stranu mrežnih uređaja.
    • Dodana je mogućnost korištenja MCTP-a (Management Component Transport Protocol) 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 stog je optimiziran, na primjer, za poboljšanje performansi recvmsg poziva, implementirano je odgođeno otpuštanje međuspremnika utičnica.
    • Na razini ovlaštenja CAP_NET_RAW dopušteno je postavljanje načina rada SO_PRIORITY i SO_MARK putem funkcije setockopt.
    • Za IPv4, neobrađene utičnice dopušteno je vezati za ne-lokalne IP adrese pomoću opcija IP_FREEBIND i IP_TRANSPARENT.
    • Dodan je sysctl arp_missed_max za konfiguriranje praga broja neuspjeha tijekom provjere ARP monitora, nakon čega se mrežno sučelje stavlja u onemogućeno stanje.
    • Omogućena je mogućnost konfiguriranja zasebnih vrijednosti sysctl min_pmtu i mtu_expires za prostore imena mreže.
    • Dodana mogućnost postavljanja i određivanja veličine međuspremnika za dolazne i odlazne pakete u ethtool API.
    • Netfilter je dodao podršku za filtriranje tranzitnog pppoe prometa u mrežnom mostu.
    • Modul ksmbd, koji implementira datotečni poslužitelj koristeći SMB3 protokol, ima dodatnu podršku za razmjenu ključeva, omogućen mrežni priključak 445 za smbdirect i dodatu podršku za parametar "smb2 max credit".
  • Оборудование
    • Podrška za zaslone za prikaz povjerljivih informacija dodana je podsustavu drm (Direct Renderering Manager) i i915 drajveru, na primjer, neka su prijenosna računala opremljena zaslonima s ugrađenim povjerljivim načinom gledanja, što otežava gledanje izvana . Dodane promjene omogućuju vam povezivanje specijaliziranih upravljačkih programa za takve zaslone i kontrolu povjerljivih načina pregledavanja postavljanjem svojstava u uobičajenim upravljačkim programima KMS-a.
    • Upravljački program amdgpu uključuje podršku za STB (Smart Trace Buffer) tehnologiju otklanjanja pogrešaka za sve AMD GPU-ove koji je podržavaju. STB olakšava analizu kvarova i prepoznavanje izvora problema pohranjivanjem u poseban međuspremnik informacija o funkcijama izvršenim prije posljednjeg kvara.
    • Upravljački program i915 dodaje podršku za čipove Intel Raptor Lake S i prema zadanim postavkama omogućuje podršku za grafički podsustav čipova Intel Alder Lake P. Moguće je kontrolirati pozadinsko osvjetljenje ekrana putem VESA DPCD sučelja.
    • Podrška za hardversko ubrzanje pomicanja u konzoli vraćena je u upravljačke programe fbcon/fbdev.
    • Nastavak integracije promjena za podršku Apple M1 čipovima. Implementirana je mogućnost korištenja drivera simpledrm na sustavima s Apple M1 čipom za izlaz kroz međuspremnik okvira koji osigurava firmware.
    • Dodana 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 usmjerivačima), 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 podrška za ARM Cortex-M55 i Cortex-M33 procesore.
    • Dodana podrška za uređaje temeljene na CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Dodana podrška za StarFive JH7100 SoC temeljen na RISC-V arhitekturi.
    • Dodan upravljački program lenovo-yogabook-wmi za kontrolu pozadinskog osvjetljenja tipkovnice i pristup različitim senzorima u Lenovo Yoga Booku.
    • Dodan upravljački program asus_wmi_sensors za pristup senzorima koji se koriste na Asus X370, X470, B450, B550 i X399 matičnim pločama temeljenim na AMD Ryzen procesorima.
    • Dodan upravljački program x86-android-tablets za tablet računala temeljena na x86 koja se isporučuju s platformom Android.
    • Dodana podrška za TrekStor SurfTab duo W1 dodirne zaslone i elektroničku olovku za Chuwi Hi10 Plus i Pro tablete.
    • Upravljački programi za SoC Tegra 20/30 dodali su podršku za upravljanje napajanjem i naponom. Omogućuje 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.
    • Dodani upravljački programi za Siemens industrijska računala.
    • Dodana podrška za LCD panele Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA i Team Source Display TST043015CMHX.
    • Dodana podrška za zvučne sustave i kodeke AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel sustave koji koriste NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Problemi s Tegra194 HD-audio su riješeni. Dodana HDA podrška za CS35L41 kodeke. Poboljšana podrška za zvučne sustave za Lenovo i HP prijenosna računala, kao i Gigabyte matične ploče.

Izvor: opennet.ru

Dodajte komentar