После двух месяцев разработки Линус Торвальдс релиз ядра . Med najopaznejšimi spremembami so: delovni način Ext4 brez upoštevanja velikosti črk, ločeni sistemski klici za priključitev datotečnega sistema, gonilniki za GPU Mali 4xx/6xx/7xx, možnost obdelave spremembe vrednosti sysctl v BPF programih, modul device-mapper dm-dust, zaščita pred napadi MDS, podpora za Sound Open Firmware za DSP, optimizacija zmogljivosti BFQ, in razvoj podkomponente PSI (Pressure Stall Information) do možnosti uporabe v Androidu.
V novo različico je bilo sprejetih 15100 popravkov od 1882 razvijalcev,
velikost popravka je 62 MB (spremembe so vplivale na 30889 datotek, dodanih je bilo 625094 vrstic kode in odstranjenih 531864 vrstic). Približno 45% vseh sprememb v 5.2
je povezanih z gonilniki naprav, približno 21% sprememb ima
povezavo z nadgradnjo strojne kode, 12%
povezano je s omrežnim stekom, 3 % — z datotečnimi sistemi in 3 % z notranjimi
podkomponentami jedra. 12.4% vseh sprememb je pripravila podjetje Intel, 6.3% - Red Hat, 5.4% - Google, 4.0% - AMD, 3.1% - SUSE, 3% - IBM, 2.7% - Huawei, 2.7% - Linaro, 2.2% - ARM, 1.6% - Oracle.
:
- Дисковая подсистема, ввод/вывод и файловые системы
- Za Ext4 je dodana funkcionalnost dela brez upoštevanja velikosti črk v imenih datotek, ki se aktivira le pri vezavi na posamezne prazne mape z novim atributom «+F» (EXT4_CASEFOLD_FL). Ko se ta atribut nastavi na mapo, se vse operacije z datotekami in podmapami znotraj izvajajo brez upoštevanja velikosti črk, pri čemer se velikost črk ignorira pri iskanju in odpiranju datotek (na voljo so datoteke Test.txt, test.txt in test.TXT v takih mapah, ki se štejejo za enake). Privzeto ostaja datotečni sistem občutljiv na velika in mala črke, razen za mape z atributom «chattr +F»;
- Poenotene so funkcije obdelave znakov UTF-8 v imenih datotek, ki se uporabljajo pri izvajanju operacij primerjave in normalizacije nizov;
- V XFS je dodana infrastruktura za spremljanje stanja datotečnega sistema in nov ioctl za zahtevo statusa delovanja. Izvedena je eksperimentalna možnost za pregledovanje v realnem času (online scrub) števcov superblokov.
- Dodan je nov modul device-mapper ««, ki omogoča simulacijo pojava slabih blokov na nosilcu ali napak pri branju z diska. Modul poenostavi odpravljanje napak in testiranje aplikacij ter različnih shranjevalnih sistemov v pogojih možnih okvar;
- znatna optimizacija performansi BFQ planera ulaza/izlaza. U uslovima visokog opterećenja ulaza/izlaza izvršene su optimizacije do 80% smanjiti vreme takvih operacija kao što su pokretanje aplikacija;
- Dodana serija sistemskih poziva za montiranje datotečnih sistema: , , , , in . Ovi sistemski pozivi omogućavaju odvojeno procesuiranje različitih faza montiranja (obrađivanje superbloka, dobijanje informacija o FS-u, montiranje, priključivanje na tačku montiranja), koje je ranije izvršavano pomoću zajedničkog sistemskog poziva mount(). Odvojeni pozivi pružaju mogućnost izvršavanja složenijih scenarija montiranja i posebno obavljanja operacija, kao što su ponovna konfiguracija superbloka, uključivanje opcija, izmene tačke montiranja i premještanje u drugi prostor imena. Pored toga, odvojena obrada omogućava precizno određivanje uzroka izlaza kodova grešaka i postavljanje više izvora za višeslojne FS, kao što je overlayfs;
- U interfejs za asinhrono ulaz/izlaz io_uring je dodata nova operacija IORING_OP_SYNC_FILE_RANGE, koja obavlja radnje ekvivalentne sistemskom pozivu , kao i ostvarena mogućnost registracije eventfd sa io_uring i dobijanja obaveštenja o završetku operacija;
- Za datotečni sistem CIFS dodat je ioctl FIEMAP, koji omogućava efikasno mapiranje ekstenta, kao i podršku za režime SEEK_DATA i SEEK_HOLE;
- U FUSE podsystemu API za upravljanje keširanjem podataka;
- U Btrfs izvršena je optimizacija implementacije qgroups i povećana brzina izvršavanja fsync za datoteke sa više tvrdih linkova. Unapređen je kod provere integriteta podataka, koji sada uzima u obzir potencijalnu štetu informacija u RAM-u pre nego što podaci budu prebačeni na disk;
- U CEPH dodata je podrška za izvoz snimaka putem NFS;
- Poboljšana je implementacija montiranja NFSv4 u režimu "soft" (u slučaju greške pristupa serveru u režimu "soft", poziv odmah vraća kod greške, dok u režimu "hard" kontrola se ne predaje dok se FS ponovo ne pojavi ili ne istekne vreme). U novom izdanju obezbeđena je preciznija obrada vremenskog ograničenja, ubrzano je oporavak od greške i dodana je nova opcija montiranja "softerr" koja omogućava promenu koda greške (ETIMEDOUT) koji se vraća kada dođe do vremenskog ograničenja;
- V API nfsdcld, namenjenem za spremljanje stanja strank NFS, je omogočeno pravilno spremljanje stanja stranke s strani NFS strežnika ob ponovnem zagonu. Tako lahko demon nfsdcld sedaj deluje kot obdelovalec nfsdcltrack;
- Za AFS emulacija zaklepov razponov bajtov v datotekah ();
- Virtualizacija in varnost
- Opravljeno je bilo delo za odpravo mest v jedru, ki omogočajo izvajanje kode iz dostopnih za pisanje odraženih območij pomnilnika, kar omogoča blokiranje potencialnih ranljivosti, ki jih je mogoče izkoristiti pri napadih;
- Dodana je nova naročna vrstica jedra „mitigations=“, ki nudi poenostavljen način upravljanja vklopa različnih tehnik zaščite pred ranljivostmi, povezanimi s spekulativnim izvajanjem navodil v CPU. Predajanje „mitigations=off“ izklopi vse obstoječe metode, privzeti način „mitigations=auto“ pa vklopi zaščito, ne da bi vplival na uporabo Hyper Threadinga. Način „mitigations=auto,nosmt“ poleg tega izklopi Hyper Threading, če to zahteva metoda zaščite.
- podpora za elektronski digitalni podpis po GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), Vitalijem Čikunovim iz „Bazalt SPO“. V vgrajeno implementacijo TLS je bila dodana podpora za AES128-CCM. V modul crypto_simd je bila dodana podpora za algoritme AEAD;
- V Kconfig je bila uvedena posebna sekcija „kernel hardening“ z možnostmi za povečanje zaščite jedra. V novi sekciji so trenutno zbrane le nastavitve za vklop preverjanj GCC vtičnikov;
- Koda jedra je skoraj iz neprekinjenih izrazov case v switch (brez return ali break po vsakem bloku case). Ostalo je popraviti 32 od 2311 primerov tovrstne uporabe switch, po čemer bo možno pri sestavi jedra uporabe način „-Wimplicit-fallthrough“;
- Za arhitekturo PowerPC je bila uvedena podpora za strojne mehanizme omejevanja nezaželenih poti dostopa jedra do podatkov v prostoru uporabnika;
- Dodati su kodovi za blokiranje razreda MDS (Microarchitectural Data Sampling) v procesorjih Intel. Preverite dovzetnost sistema za ranljivost prek SysFS spremenljivke „/sys/devices/system/cpu/vulnerabilities/mds“. Dva načina zaštite: puni, koji zahtijeva ažurirani mikrokod, i zaobilaženje, koji u potpunosti ne garantuje čišćenje CPU bafera prilikom prebacivanja kontrole u prostor korisnika ili sistem gost. Za upravljanje načinima zaštite, u jezgru je dodat parametar «mds=», koji može primiti vrijednosti «full», «full,nosmt» (+ onemogućavanje Hyper-Threads) i «off»;
- Na x86-64 sistemima, za IRQ, mehanizme debagovanja i obradu izuzetaka dodata je zaštita «stack guard-page», koja se sastoji od postavljanja na granici sa stakom stranica memorije, čije upućivanje izaziva generisanje izuzetka (page-fault);
- Dodata je sysctl postavka vm.unprivileged_userfaultfd, koja upravlja mogućnošću korišćenja sistemskog poziva userfaultfd() od strane nepovoljenih procesa;
- Mrežna podsistem
- podrška za IPv6 gatewaye za IPv4 rute. Na primjer, sada je moguće navesti pravila routinga u obliku «ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0»;
- Za ICMPv6 реализовани су ioctl pozivi icmp_echo_ignore_anycast i icmp_echo_ignore_multicast za ignorisanje ICMP ECHO za anycast i
multicast adrese. mogućnost ograničenja intenziteta obrade ICMPv6 paketa; - Za mesh protokol B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking»), koji omogućava kreiranje decentralizovanih mreža, gdje je svaki čvor povezan kroz susedne čvorove, podrška za prevođenje iz multicast u unicast, kao i mogućnost upravljanja putem sysfs;
- U ethtool novi parametar Fast Link Down, koji omogućava skraćivanje vremena prijema informacija o događaju isključivanja linka za 1000BaseT (u uobičajenim uslovima kašnjenje iznosi do 750ms);
- Появилась vezivanje tunela Foo-Over-UDP na određenu adresu, mrežni interfejs ili soket (ranije je vezivanje vršeno samo prema zajedničkoj maski);
- U bežičnom steku mogućnost implementacije handlera
OWE (Opportunistic Wireless Encryption) u korisničkom prostoru; - U Netfilter, u nat lancima dodata je podrška za adresne porodice inet (na primjer, sada možete koristiti jednu pravilo prevođenja za obradu ipv4 i ipv6, bez odvajanja pravila za ipv4 i ipv6);
- U netlink strict za strogu provjeru tačnosti svih poruka i atributa, u kojem se ne dozvoljava prekoračenje očekivanih veličina atributa i zabranjeno je dodavanje dodatnih podataka na kraju poruka;
- Pomnilnik in sistemske storitve
- V sistemski klic clone() je bila dodana zastavica CLONE_PIDFD, s katero se starševskemu procesu vrne datotečni deskriptor 'pidfd', ki je povezan s ustvarjenim otroškim procesom. Ta datotečni deskriptor se lahko na primer uporablja za pošiljanje signalov brez skrbi pred stanjem dirke (takoj po pošiljanju signala lahko ciljna PID zaradi končine procesa pomeni in postane zaseden z drugim procesom);
- Za drugo različico cgroups je bila dodana funkcionalnost kontrolerja freezer, s katero lahko ustavite delovanje v cgroup in začasno osvobodite nekatere vire (CPU, vhod/izhod in potencialno celo pomnilnik) za izvajanje drugih nalog. Upravljanje poteka preko upravljalnih datotek cgroup.freeze in cgroup.events v drevesu cgroup. Zapis 1 v cgroup.freeze zamrzne procese v trenutni cgroup in vseh otroških skupinah. Ker zamrznitev zahteva nekaj časa, je dodatno ponujena datoteka cgroup.events, preko katere lahko izveste, kdaj je operacija zaključena;
- izvoz atributov pomnilnika, pritrjenih na vsak vozlišče v sysfs, kar omogoča iz uporabniškega prostora določiti značaj obdelave bank pomnilnika v sistemih s heterogeno pomnilnikom;
- Izboljšan je bil pod sistem PSI (Pressure Stall Information), ki omogoča analizo informacij o času čakanja na pridobitev različnih virov (CPU, pomnilnik, vhod/izhod) za določene naloge ali nize procesov v cgroup. S PSI lahko obdelovalci v uporabniškem prostoru natančneje ocenijo raven obremenitve sistema in značaj upočasnitev dela, v primerjavi s Load Average. V novi različici je bila zagotovljena podpora za nastavitev pragov občutljivosti in možnost uporabe klica poll() za obveščanje o sprožitvi nastavljenih pragov v določenem časovnem obdobju. Ta možnost omogoča organizacijo spremljanja pomanjkanja pomnilnika v Androidu v zgodnji fazi, določanje izvora težav in zaključevanje nepomembnih aplikacij, ne da bi prišlo do opaznih težav za uporabnike. Pri stresnem testiranju so orodja za spremljanje porabe pomnilnika na osnovi PSI pokazala 10-krat manj lažnih sprožitev v primerjavi z statistiko vmpressure;
- Optimizacija kode za preverjanje BPF-programov je omogočila do 20-krat hitrejšo preverjanje za večje programe. Optimizacija je omogočila povečanje omejitve velikosti BPF-programov z 4096 na milijon navodil;
- Za BPF-programi možnost dostopa do globalnih podatkov, kar omogoča opredeljevanje globalnih spremenljivk in konstant v programih;
- Dodano , kar omogoča nadzor iz BPF-programov nad spremembami parametrov sysctl;
- Za arhitekturo MIPS32 je bil implementiran JIT-kompajler za eBPF virtualno napravo;
- Za 32-bitno arhitekturo PowerPC je bila dodana podpora za orodje za odpravljanje napak KASan (Kernel address sanitizer), ki omogoča odkrivanje napak pri delu s pomnilnikom;
- Na sistemih x86-64 je bilo odstranjenih omejitev pri postavljanju dumpov stanja ob zrušitvi jedra (crash-dump) v območja pomnilnika nad 896MB;
- Za arhitekturo s390 je bila implementirana podpora za randomizacijo naslovnega prostora jedra (KASLR) in možnost verifikacije digitalnih podpisov pri nalaganju jedra preko kexec_file_load();
- Za arhitekturo PA-RISC je bila dodana podpora za jedrski razhroščevalnik (KGDB), preusmeritvene oznake in kprobes;
- Oprema
- Uključen je drajver za GPU Mali 400/450, ki se uporablja v mnogih starejših čipih z ARM arhitekturo. Za novejše GPU Mali je bil dodan gonilnik Panfrost, ki podpira čipe na osnovi mikroarhitektur Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) in Bifrost (Mali G3x, G5x, G7x);
- Dodana je podpora za avdio naprave, ki uporabljajo odprte programe. (). Kljub obstoju odprtih gonilnikov je koda za programsko opremo avdiočipov ostala zaprta in je bila dostavljena v binarni obliki. Projekt Sound Open Firmware je razvil Intel za ustvarjanje odprtih programov za DSP čipe, povezanih z obdelavo zvoka (kasneje se je razvoju pridružil tudi Google). V okviru projekta je trenutno že pripravljena odprta programska oprema za avdio čipe platform Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake in IceLake;
- V DRM gonilniku Intel (i915) je bila dodana podpora za čipe
Elkhartlake (Gen11). Dodani so bili PCI identifikatorji za čipe Comet Lake (Gen9). Stabilizirana je podpora za čipe Icelake, za katere so dodani tudi dodatni PCI identifikatorji naprav.
asynchronous switching mode between two buffers in video memory (async flip) during write operations via mmio, which significantly improved the performance of some 3D applications (for example, performance in the 3DMark Ice Storm test increased by 300-400%). Support for technology added (High-bandwidth Digital Content Protection) for encrypting video signals transmitted via HDMI; - In the amdgpu driver for the Vega20 GPU support for RAS (Reliability, Availability, Serviceability) and experimental support for the SMU 11 subsystem, which replaces the Powerplay technology. For the Vega12 GPU support for BACO mode (Bus Active, Chip Off). Initial support added for XGMI, a high-speed bus (PCIe 4.0) for connecting GPUs. Missing identifiers for Polaris10 GPU-based cards were added to the amdkfd driver;
- Support for boards based on the NVIDIA Turing 117 (TU117, used in GeForce GTX 1650) chipset has been added to the Nouveau driver.
kconfig settings to disable deprecated features that are no longer in use in current libdrm releases; - Support for synchronization objects 'timeline' has been added to the DRM API and amdgpu driver, allowing classic locks to be avoided.
- The vboxvideo driver for the VirtualBox virtual GPU has been transferred from the staging branch to the main repository;
- Added aspeed driver for the ASPEED SoC GFX chip;
- Support added for ARM SoC and Intel Agilex boards (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
ST Micro (stm32mp157a, stm32mp157c), NXP (
Eckelmann ci4x10 (i.MX6DL),i.MX8MM EVK (i.MX8MM),
ZII i.MX7 RPU2 (i.MX7),
ZII SPB4 (VF610),
Zii Ultra (i.MX8M),
TQ TQMa7S (i.MX7Solo),
TQ TQMa7D (i.MX7Dual),
Kobo Aura (i.MX50),
Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).
Latinoameriški sklad prostega programske opreme
varijantu — , cleaned from firmware and driver elements containing non-free components or code sections whose use is restricted by the manufacturer. The new release includes loading files
Sound Open Firmware. Loading of blobs in the drivers
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp, and ucsi_ccg has been disabled. The code for cleaning blobs in the drivers and subsystems ixp4xx, imx-sdma, amdgpu, nouveau, and goya has been updated, as well as in the microcode documentation. Blob cleaning in the r8822be driver has been discontinued due to its removal.
Izvor: opennet.ru
