Izdanje kernela Linux 5.2

Nakon dva mjeseca razvoja, Linus Torvalds uveo izdanje kernela Linux 5.2. Među najuočljivijim promjenama: Ext4 način rada je bez obzira na velika i mala slova, odvojeni sistemski pozivi za montiranje sistema datoteka, drajveri za GPU Mali 4xx/ 6xx/7xx, mogućnost rukovanja promjenama sysctl vrijednosti u BPF programima, uređaj-mapper modul dm-dust, zaštita od napada MDS, podrška za Sound Open Firmware za DSP, optimizacija BFQ performansi, dovođenje PSI (Pressure Stall Information) podsistema do mogućnosti korištenja u Androidu.

Nova verzija uključuje 15100 popravki od 1882 programera,
veličina zakrpe - 62 MB (promjene su uticale na 30889 datoteka, dodano je 625094 linija koda, 531864 linija je obrisano). Oko 45% svih predstavljenih u 5.2
promjene se odnose na drajvere uređaja, otprilike 21% promjena je
stav prema ažuriranju koda specifičnog za hardverske arhitekture, 12%
odnosi se na mrežni stog, 3% na sistem datoteka i 3% na interne
podsistemi kernela. 12.4% svih promjena pripremio je 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.

Glavni inovacije:

  • Diskovni podsistem, I/O i sistemi datoteka
    • Dodato za Ext4 podrška radi bez razlikovanja velikih i malih slova u nazivima datoteka, što se aktivira samo u odnosu na pojedinačne prazne direktorije koristeći novi atribut “+F” (EXT4_CASEFOLD_FL). Kada je ovaj atribut postavljen na direktorij, sve operacije s datotekama i poddirektorijumima unutar će se izvoditi bez uzimanja u obzir velikih i malih znakova, uključujući i velika i mala slova će se zanemariti prilikom pretraživanja i otvaranja datoteka (na primjer, datoteke Test.txt, test.txt i test.TXT u takvim direktorijima će se smatrati istim). Podrazumevano, sistem datoteka nastavlja da bude osetljiv na velika i mala slova, sa izuzetkom direktorijuma sa atributom “chattr +F”;
    • Objedinjene su funkcije za obradu UTF-8 znakova u nazivima datoteka koje se koriste prilikom izvođenja operacija poređenja i normalizacije nizova;
    • XFS dodaje infrastrukturu za praćenje zdravlja sistema datoteka i novi ioctl za ispitivanje zdravstvenog statusa. Implementirana je eksperimentalna funkcija za provjeru brojača superblokova na mreži.
    • Dodan novi modul device-mapper "dm-dust“, koji vam omogućava da simulirate pojavu loših blokova na mediju ili grešaka pri čitanju s diska. Modul vam omogućava da pojednostavite otklanjanje grešaka i testiranje aplikacija i različitih sistema skladištenja u slučaju mogućih kvarova;
    • Izvršeno Značajne optimizacije performansi za BFQ I/O planer. U uslovima velikog I/O opterećenja, izvršene optimizacije dopustiti Smanjite vrijeme operacija kao što je pokretanje aplikacija do 80%.
    • Dodan je niz sistemskih poziva za montiranje sistema datoteka: fsopen(), otvoreno_drvo(), fspick(), fsmount(), fsconfig() и move_mount(). Ovi sistemski pozivi vam omogućavaju da zasebno obradite različite faze montiranja (obradite superblok, dobijete informacije o sistemu datoteka, montirate, prikačite na tačku montiranja), koje su prethodno izvedene pomoću opšteg sistemskog poziva mount(). Odvojeni pozivi pružaju mogućnost izvođenja složenijih scenarija montiranja i izvođenja zasebnih operacija kao što je rekonfiguracija superbloka, omogućavanje opcija, promjena točke montiranja i premještanje u drugi prostor imena. Osim toga, odvojena obrada vam omogućava da precizno odredite razloge za izlaz kodova grešaka i postavite više izvora za višeslojne sisteme datoteka, kao što su overlayfovi;
    • Nova operacija IORING_OP_SYNC_FILE_RANGE je dodana sučelju za asinhroni I/O io_uring, koja izvodi radnje ekvivalentne sistemskom pozivu sync_file_range(), a također implementirana mogućnost registracije eventfd sa io_uringom i primanja obavještenja o završetku operacija;
    • Za CIFS sistem datoteka, FIEMAP ioctl je dodat, pružajući efikasno mapiranje ekstenta, kao i podršku za SEEK_DATA i SEEK_HOLE modove;
    • U podsistemu FUSE predložio API za upravljanje keširanjem podataka;
    • Btrfs je optimizovao implementaciju qgroups i poboljšao brzinu izvršavanja fsync za datoteke sa više tvrdih veza. Poboljšan je kod za provjeru integriteta podataka, koji sada uzima u obzir moguća oštećenja informacija u RAM-u prije izbacivanja podataka na disk;
    • CEPH je dodao podršku za izvoz snimaka preko NFS-a;
    • Poboljšana je implementacija NFSv4 montiranja u “soft” modu (ako dođe do greške pri pristupu serveru u “soft” modu, poziv na odmah vraća kod greške, a u “hard” modu kontrola se ne daje sve dok FS dostupnost ili vremensko ograničenje se vraća). Novo izdanje pruža preciznije rukovanje timeoutom, brži oporavak nakon pada i novu opciju “mekšeg” montiranja koja vam omogućava da promijenite kod greške (ETIMEDOUT) koji se vraća kada dođe do isteka;
    • nfsdcld API, dizajniran da prati stanje NFS klijenata, omogućava NFS serveru da ispravno prati stanje klijenta nakon ponovnog pokretanja. Dakle, nfsdcld demon sada može djelovati kao nfsdcltrack rukovalac;
    • Za AFS dodano emulacija zaključavanja raspona bajtova u fajlovima (Zaključavanje opsega bajtova);
  • Virtuelizacija i sigurnost
    • Rad je obavljen na eliminisanju mesta u kernelu koja dozvoljavaju izvršavanje koda iz reflektovanih memorijskih oblasti na koje se može pisati, što omogućava blokiranje potencijalnih rupa koje bi mogle biti iskorišćene tokom napada;
    • Dodan je novi parametar komandne linije kernela "mitigations=", koji pruža pojednostavljen način kontrole omogućavanja određenih tehnika za zaštitu od ranjivosti povezanih sa spekulativnim izvršavanjem instrukcija na CPU-u. Propuštanje "mitigations=off" onemogućuje sve postojeće metode, a podrazumevani režim "mitigations=auto" omogućava zaštitu, ali ne utiče na upotrebu Hyper Threading-a. Režim “mitigations=auto,nosmt” dodatno onemogućuje Hyper Threading ako to zahtijeva metoda zaštite.
    • Dodano podrška za elektronski digitalni potpis prema GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), razvijen Vitalij Čikunov iz Basalt SPO. Dodata podrška za AES128-CCM izvornoj TLS implementaciji. Dodata podrška za AEAD algoritme za crypto_simd modul;
    • U Kconfig dodano zaseban odeljak „očvršćavanja kernela“ sa opcijama za poboljšanje zaštite kernela. Trenutno, novi odjeljak sadrži samo postavke za omogućavanje dodataka za poboljšanje provjere GCC-a;
    • Kod kernela je skoro isporučeno iz naredbi bez prekida (bez povratka ili prekida nakon svakog bloka slučaja). Ostaje da se popravi 32 od 2311 slučajeva takve upotrebe prekidača, nakon čega će biti moguće koristiti “-Wimplicit-fallthrough” mod prilikom izgradnje kernela;
    • Za arhitekturu PowerPC, implementirana je podrška za hardverske mehanizme za ograničavanje neželjenih pristupnih puteva kernela podacima u korisničkom prostoru;
    • Dodan kod za blokiranje napada MDS (Microarchitectural Data Sampling) klasa u Intel procesorima. Možete provjeriti da li je sistem ranjiv na ranjivosti preko SysFS varijable “/sys/devices/system/cpu/vulnerabilities/mds”. Dostupno dva načina zaštite: puni, koji zahtijeva ažurirani mikrokod, i bypass, koji ne garantuje potpuno brisanje CPU bafera kada se kontrola prenese na korisnički prostor ili gostujući sistem. Za kontrolu načina zaštite, jezgru je dodat parametar “mds=” koji može imati vrijednosti “full”, “full,nosmt” (+ onemogućiti Hyper-Threads) i “off”;
    • Na x86-64 sistemima, dodata je zaštita “stack guard-page” za IRQ, mehanizme za otklanjanje grešaka i rukovaoce izuzecima, čija je suština zamena memorijskih stranica na granici sa stekom, pristupanje kojoj dovodi do generisanja izuzetak (greška stranice);
    • Dodata sysctl postavka vm.unprivileged_userfaultfd, koja kontrolira sposobnost neprivilegiranih procesa da koriste sistemski poziv userfaultfd();
  • Mrežni podsistem
    • Dodano Podrška za IPv6 gateway za IPv4 rute. Na primjer, sada možete specificirati pravila rutiranja poput “ip ro add 172.16.1.0/24 preko inet6 2001:db8::1 dev eth0”;
    • Za ICMPv6, ioctl pozivi icmp_echo_ignore_anycast i icmp_echo_ignore_multicast su implementirani da ignorišu ICMP ECHO za anycast i
      multicast adrese. Dodano mogućnost ograničavanja intenziteta obrade ICMPv6 paketa;

    • Za BATMAN (Better Approach To Mobile Adhoc Networking) mesh protokol, koji omogućava kreiranje decentralizovanih mreža u kojima je svaki čvor povezan preko susjednih čvorova, dodano podrška za emitovanje sa multicast na unicast, kao i mogućnost kontrole putem sysfs-a;
    • U ethtool dodano novi parametar Fast Link Down, koji vam omogućava da smanjite vrijeme potrebno za primanje informacija o događaju prekida veze za 1000BaseT (u normalnim uvjetima kašnjenje je do 750 ms);
    • Pojavio se prilika vezivanje Foo-Over-UDP tunela za određenu adresu, mrežni interfejs ili soket (prethodno je vezivanje vršeno samo zajedničkom maskom);
    • U bežičnoj mreži osiguran mogućnost implementacije rukovalaca
      OWE (Opportunistic Wireless Encryption) u korisničkom prostoru;

    • U Netfilteru, podrška za familiju inet adresa je dodata nat lancima (na primjer, sada možete koristiti jedno pravilo prevođenja za obradu ipv4 i ipv6, bez razdvajanja pravila za ipv4 i ipv6);
    • U netlink dodano mod strog za strogu provjeru ispravnosti svih poruka i atributa, u kojima nije dozvoljeno prekoračenje očekivane veličine atributa i zabranjeno dodavanje dodatnih podataka na kraju poruka;
  • Memorijski i sistemski servisi
    • Oznaka CLONE_PIDFD je dodana u sistemski poziv clone(), kada je specificirano, deskriptor datoteke “pidfd” identificiran sa kreiranim podređenim procesom se vraća roditeljskom procesu. Ovaj deskriptor datoteke, na primjer, može se koristiti za slanje signala bez straha da će doći do stanja trke (odmah nakon slanja signala, ciljni PID može biti oslobođen zbog prekida procesa i zauzet drugim procesom);
    • Za drugu verziju cgroup-a, dodana je funkcionalnost kontrolera zamrzivača, s kojom možete prekinuti rad u cgroup-u i privremeno osloboditi neke resurse (CPU, I/O, a potencijalno čak i memoriju) za obavljanje drugih zadataka. Upravljanje se vrši preko kontrolnih datoteka cgroup.freeze i cgroup.events u stablu cgroup. Unos 1 u cgroup.freeze zamrzava procese u trenutnoj cgroup i svim podređenim grupama. Budući da zamrzavanje traje neko vrijeme, obezbjeđena je dodatna datoteka cgroup.events putem koje možete saznati o završetku operacije;
    • Osigurano izvoz memorijskih atributa pridruženih svakom čvoru u sysfs-u, koji vam omogućava da iz korisničkog prostora odredite prirodu obrade memorijskih banaka u sistemima sa heterogenom memorijom;
    • Poboljšan je podsistem PSI (Pressure Stall Information) koji vam omogućava da analizirate informacije o vremenu čekanja za prijem različitih resursa (CPU, memorija, I/O) za određene zadatke ili skupove procesa u cgrupi. Koristeći PSI, rukovaoci korisničkog prostora mogu preciznije procijeniti nivo opterećenja sistema i obrazaca usporavanja u poređenju sa prosjekom opterećenja. Nova verzija pruža podršku za postavljanje pragova osjetljivosti i mogućnost korištenja poziva poll() za primanje obavijesti da su postavljeni pragovi aktivirani u određenom vremenskom periodu. Ova funkcija omogućava Androidu da prati nedostatak memorije u ranoj fazi, identifikuje izvor problema i ukida nevažne aplikacije bez izazivanja problema koji su vidljivi korisniku. Prilikom testiranja stresa, alati za praćenje potrošnje memorije zasnovani na PSI-ju pokazali su 10 puta manje lažnih pozitivnih rezultata u poređenju sa statistikom vmpressure;
    • Kod za provjeru BPF programa je optimiziran, što omogućava provjeru do 20 puta brže za velike programe. Optimizacija je omogućila povećanje granice veličine BPF programa sa 4096 na milion instrukcija;
    • Za BPF programe obezbeđeno mogućnost pristupa globalnim podacima, što vam omogućava da definišete globalne varijable i konstante u programima;
    • Dodano API, koji vam omogućava da kontrolišete promene u sysctl parametrima iz BPF programa;
    • Za MIPS32 arhitekturu implementiran je JIT kompajler za eBPF virtuelnu mašinu;
    • Za 32-bitnu PowerPC arhitekturu, dodata je podrška za KASan (Kernel address sanitizer) alat za otklanjanje grešaka, koji pomaže u identifikaciji grešaka pri radu sa memorijom;
    • Na x86-64 sistemima, ograničenje postavljanja dumpova stanja tokom pada kernela (crash-dump) u memorijske oblasti iznad 896MB je uklonjeno;
    • Za arhitekturu s390 implementirana je podrška za randomizaciju adresnog prostora kernela (KASLR) i mogućnost provjere digitalnih potpisa prilikom učitavanja kernela putem kexec_file_load();
    • Za PA-RISC arhitekturu, dodata podrška za kernel debugger (KGDB), oznake za skok i kprobe;
  • Oprema
    • Driver uključen Lima za Mali 400/450 GPU, koji se koristi u mnogim starijim čipovima baziranim na ARM arhitekturi. Za novije Mali GPU-ove, dodat je Panfrost drajver koji podržava čipove zasnovane na Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) i Bifrost (Mali G3x, G5x, G7x) mikroarhitekturama;
    • Dodata podrška za audio uređaje koji koriste otvoreni firmver Zvuk Otvoreni firmver (SOF). Uprkos dostupnosti otvorenih drajvera, kod firmvera za zvučne čipove i dalje je ostao zatvoren i isporučen je u binarnom obliku. Projekt Sound Open Firmware je razvio Intel za kreiranje otvorenog firmvera za DSP čipove koji se odnose na obradu zvuka (Google se kasnije također pridružio razvoju). Trenutno je projekat već pripremio otkriće firmvera za zvučne čipove na platformama Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake i IceLake;
    • Intel DRM drajver (i915) dodaje podršku za čipove
      Elkhartlake (Gen11). Dodati PCI ID-ovi za čipove Comet Lake (Gen9). Podrška za Icelake čipove je stabilizirana, za koje su također dodani dodatni identifikatori PCI uređaja.
      Uključeno
      način asinhronog prebacivanja između dva bafera u video memoriji (async flip) prilikom izvođenja operacija pisanja putem mmio-a, što je značajno povećalo performanse nekih 3D aplikacija (na primjer, performanse u 3DMark Ice Storm testu povećane su za 300-400%). Dodata tehnološka podrška HDCP2.2 (High-bandwidth Digital Content Protection) za šifriranje video signala koji se prenose preko HDMI-ja;

    • Amdgpu drajver za Vega20 GPU dodano podrška za RAS (pouzdanost, dostupnost, mogućnost servisiranja) i eksperimentalna podrška za podsistem SMU 11, koji je zamijenio Powerplay tehnologiju. Za GPU Vega12 dodano podrška za BACO način rada (Bus Active, Chip Off). Dodata početna podrška za XGMI, magistralu velike brzine (PCIe 4.0) za GPU interkonekciju. Dodani nedostajući identifikatori za kartice bazirane na Polaris10 GPU u amdkfd drajver;
    • Nouveau drajver je dodao podršku za ploče zasnovane na NVIDIA Turing 117 čipsetu (TU117, koji se koristi u GeForce GTX 1650). IN
      kconfig dodano postavka za onemogućavanje zastarjelih funkcija koje se više ne koriste u trenutnim izdanjima libdrm-a;

    • Podrška za objekte sinhronizacije „vremenske linije“ dodata je DRM API-ju i amdgpu drajveru, što vam omogućava da radite bez klasičnog blokiranja.
    • Vboxvideo drajver za VirtualBox virtuelni GPU je premešten sa staging grane u glavnu strukturu;
    • Dodan aspeed drajver za GFX SoC ASPEED čip;
    • Dodata podrška za ARM SoC i Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi ) ploče 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).

Istovremeno, Latinoamerička fondacija za slobodni softver formirana
opcija potpuno besplatan kernel 5.2 - Linux-libre 5.2-gnu, očišćen od firmvera i elemenata upravljačkog programa koji sadrže neslobodne komponente ili dijelove koda, čiji je opseg ograničen od strane proizvođača. Novo izdanje uključuje učitavanje fajlova
Zvuk Otvorite firmver. Učitavanje blob-ova u drajverima je onemogućeno
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp i ucsi_ccg. Kod za čišćenje mrlja u drajverima i podsistemima ixp4xx, imx-sdma, amdgpu, nouveau i goya, kao i u dokumentaciji mikrokoda, je ažuriran. Zaustavljeno čišćenje mrlja u upravljačkom programu r8822be zbog njegovog uklanjanja.

izvor: opennet.ru

Dodajte komentar