Izdanje jezgre Linuxa 5.2

Nakon dva mjeseca razvoja Linus Torvalds podnijeti izdanje jezgre Linux 5.2. Među najuočljivijim promjenama: način rada Ext4 ne razlikuje velika i mala slova, odvojeni sistemski pozivi za montiranje datotečnog sustava, upravljački programi za GPU Mali 4xx/ 6xx/7xx, mogućnost rukovanja promjenama sysctl vrijednosti u BPF programima, uređaj-maper 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) podsustava na mogućnost korištenja u Androidu.

Nova verzija prihvatila je 15100 popravka od 1882 programera,
veličina zakrpe - 62 MB (promjene su zahvatile 30889 datoteka, dodano je 625094 redaka koda, 531864 redaka je izbrisano). Oko 45% svih prikazanih u 5.2
promjene su povezane s upravljačkim programima uređaja, otprilike 21% promjena ima
stav prema ažuriranju koda specifičnog za hardverske arhitekture, 12%
odnosi se na mrežni stog, 3% na datotečne sustave i 3% na interne
kernel podsustavi. 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 podsustav, I/O i datotečni sustavi
    • Dodano za Ext4 podržati rade bez razlikovanja veličine znakova u nazivima datoteka, što se aktivira samo u odnosu na pojedinačne prazne direktorije pomoću novog atributa “+F” (EXT4_CASEFOLD_FL). Kada je ovaj atribut postavljen na direktorij, sve operacije s datotekama i poddirektorijima unutar njih bit će izvršene bez uzimanja u obzir velikih i malih slova, uključujući velika i mala slova koja će biti zanemarena prilikom pretraživanja i otvaranja datoteka (na primjer, datoteke Test.txt, test.txt i test.TXT u takvim imenicima smatrat će se istima). Prema zadanim postavkama, datotečni sustav nastavlja biti osjetljiv na velika i mala slova, s izuzetkom direktorija s atributom “chattr +F”;
    • Unificirane su funkcije za obradu UTF-8 znakova u nazivima datoteka, koji se koriste pri izvođenju operacija usporedbe nizova i normalizacije;
    • XFS dodaje infrastrukturu za nadzor ispravnosti datotečnog sustava i novi ioctl za upit o statusu ispravnosti. Implementirana je eksperimentalna značajka za provjeru brojača superblokova na mreži.
    • Dodan novi modul device-mapper "dm-prašina“, koji vam omogućuje simulaciju pojave loših blokova na mediju ili grešaka prilikom čitanja s diska. Modul vam omogućuje da pojednostavite otklanjanje pogrešaka i testiranje aplikacija i raznih sustava za pohranu u slučaju mogućih kvarova;
    • Izvedeno Značajne optimizacije performansi za BFQ I/O planer. U uvjetima velikog I/O opterećenja, napravljene optimizacije dopustiti Skratite vrijeme operacija kao što je pokretanje aplikacija do 80%.
    • Dodan je niz sistemskih poziva za montiranje datotečnih sustava: fsopen(), otvoreno_stablo(), fspick(), fsmount(), fsconfig() и premjestiti_mount(). Ovi sistemski pozivi vam omogućuju da zasebno obradite različite faze montiranja (obrada superbloka, dobivanje informacija o datotečnom sustavu, montiranje, pripajanje na točku montiranja), koje su prethodno izvedene korištenjem zajedničkog 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ćuje da točno odredite razloge za izlaz kodova grešaka i postavite više izvora za višeslojne datotečne sustave, kao što su overlayfs;
    • Nova operacija IORING_OP_SYNC_FILE_RANGE dodana je sučelju za asinkroni I/O io_uring, koja izvodi radnje ekvivalentne pozivu sustava sync_file_range(), a također implementiran mogućnost registracije eventfd s io_uring i primanje obavijesti o završetku operacija;
    • Za CIFS datotečni sustav, FIEMAP ioctl je dodan, pružajući učinkovito mapiranje opsega, kao i podršku za SEEK_DATA i SEEK_HOLE načine rada;
    • U podsustavu FUSE zaprosio API za upravljanje predmemorijom podataka;
    • Btrfs je optimizirao implementaciju qgroups i poboljšao brzinu izvršavanja fsync za datoteke s više tvrdih veza. Poboljšan je kod za provjeru integriteta podataka, koji sada uzima u obzir moguće oštećenje informacija u RAM-u prije ispiranja podataka na disk;
    • CEPH je dodao podršku za izvoz snimki putem NFS-a;
    • Implementacija montiranja NFSv4 u “soft” modu je poboljšana (ako se pojavi greška u pristupu poslužitelju u “soft” modu, poziv na odmah vraća kod greške, a u “hard” modu kontrola se ne daje dok FS dostupnost ili vrijeme čekanja je vraćeno). Novo izdanje pruža točnije rukovanje timeoutom, brži oporavak od pada i novu "softerr" opciju montiranja koja vam omogućuje promjenu koda pogreške (ETIMEDOUT) koji se vraća kada nastupi timeout;
    • Nfsdcld API, dizajniran za praćenje stanja NFS klijenata, omogućuje NFS poslužitelju da ispravno prati stanje klijenta nakon ponovnog pokretanja. Dakle, nfsdcld demon sada može djelovati kao nfsdcltrack rukovatelj;
    • Za AFS dodao emulacija zaključavanja raspona bajtova u datotekama (Zaključavanje raspona bajtova);
  • Virtualizacija i sigurnost
    • Radilo se na uklanjanju mjesta u kernelu koja dopuštaju izvršavanje koda iz reflektiranih memorijskih područja koja se mogu pisati, što omogućuje blokiranje potencijalnih rupa koje bi se mogle iskoristiti tijekom napada;
    • Dodan je novi parametar naredbenog retka jezgre "mitigations=", pružajući pojednostavljeni način kontrole omogućavanja određenih tehnika za zaštitu od ranjivosti povezanih sa spekulativnim izvršavanjem instrukcija na CPU-u. Prolaskom "mitigations=off" onemogućuju se sve postojeće metode, a zadani način rada "mitigations=auto" omogućuje zaštitu, ali ne utječe na korištenje Hyper Threadinga. Način rada “mitigs=auto,nosmt” dodatno onemogućuje Hyper Threading ako to zahtijeva metoda zaštite.
    • Dodano podrška za elektronički digitalni potpis prema GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), razvijen od Vitaly Chikunov iz Basalt SPO. Dodana podrška za AES128-CCM izvornoj implementaciji TLS-a. Dodana podrška za AEAD algoritme modulu crypto_simd;
    • U Kconfig dodao zaseban odjeljak "očvršćivanje jezgre" s opcijama za poboljšanje zaštite jezgre. Trenutačno novi odjeljak sadrži samo postavke za omogućavanje GCC dodataka za poboljšanje provjere;
    • Kod kernela je gotovo dostavljeno iz non-breaking case naredbi u switch (bez return ili break nakon svakog case bloka). Preostaje popraviti 32 od 2311 slučajeva takve upotrebe prekidača, nakon čega će biti moguće koristiti način rada “-Wimplicit-fallthrough” prilikom izgradnje kernela;
    • Za PowerPC arhitekturu implementirana je podrška za hardverske mehanizme za ograničavanje neželjenih pristupnih staza jezgre podacima u korisničkom prostoru;
    • Dodan kod za blokiranje napad MDS (Microarchitectural Data Sampling) klasa u Intelovim procesorima. Možete provjeriti je li sustav ranjiv na ranjivosti putem SysFS varijable “/sys/devices/system/cpu/vulnerabilities/mds”. Dostupno dva načina zaštite: puni, koji zahtijeva ažurirani mikrokod, i premosnica, koja ne jamči potpuno brisanje CPU međuspremnika kada se kontrola prenese u korisnički prostor ili sustav za goste. Za kontrolu načina zaštite, parametar "mds=" je dodan u kernel, koji može uzeti vrijednosti "full", "full,nosmt" (+ onemogućiti Hyper-Threads) i "off";
    • Na x86-64 sustavima dodana je zaštita "stack guard-page" za IRQ, mehanizme za otklanjanje pogrešaka i rukovatelje iznimkama, čija je suština zamjena memorijskih stranica na granici sa stogom, pristup kojemu se stvara generiranje iznimka (page-fault);
    • Dodana sysctl postavka vm.unprivileged_userfaultfd, koja kontrolira sposobnost neprivilegiranih procesa da koriste sistemski poziv userfaultfd();
  • Mrežni podsustav
    • Dodano Podrška IPv6 pristupnika za IPv4 rute. Na primjer, sada možete odrediti pravila usmjeravanja kao što je “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 implementirani su za ignoriranje 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ćuje stvaranje decentraliziranih mreža u kojima je svaki čvor povezan preko susjednih čvorova, dodao podrška za emitiranje od multicast do unicast, kao i mogućnost kontrole putem sysfs-a;
    • U ethtoolu dodano novi parametar Fast Link Down koji vam omogućuje smanjenje vremena potrebnog za primanje informacija o događaju pada veze za 1000BaseT (u normalnim uvjetima kašnjenje je do 750ms);
    • Pojavio se prilika vezanje Foo-Over-UDP tunela na određenu adresu, mrežno sučelje ili utičnicu (prethodno se vezanje vršilo samo zajedničkom maskom);
    • U bežičnom skupu osiguran mogućnost implementacije handlera
      OWE (Opportunistic Wireless Encryption) u korisničkom prostoru;

    • U Netfilteru, podrška za obitelj inet adresa dodana je nat lancima (na primjer, sada možete koristiti jedno pravilo prijevoda za obradu ipv4 i ipv6, bez odvajanja pravila za ipv4 i ipv6);
    • U netlinku dodano način strict za strogu provjeru ispravnosti svih poruka i atributa, pri čemu nije dopušteno prekoračenje očekivane veličine atributa te je zabranjeno dodavanje dodatnih podataka na kraju poruka;
  • Memorija i usluge sustava
    • Oznaka CLONE_PIDFD dodana je pozivu sustava clone(), kada je navedena, deskriptor datoteke "pidfd" identificiran sa kreiranim podređenim procesom vraća se nadređenom procesu. Ovaj deskriptor datoteke, na primjer, može se koristiti za slanje signala bez straha od trčanja (odmah nakon slanja signala, ciljni PID može biti oslobođen zbog završetka procesa i zauzet drugim procesom);
    • Za drugu verziju cgrupa, dodana je funkcija kontrolera zamrzivača, s kojom možete zaustaviti rad u cgrupi i privremeno osloboditi neke resurse (CPU, I/O, a potencijalno čak i memoriju) za obavljanje drugih zadataka. Upravljanje se vrši putem kontrolnih datoteka cgroup.freeze i cgroup.events u cgroup stablu. Unos 1 u cgroup.freeze zamrzava procese u trenutnoj cgroup i svim podređenim grupama. Budući da zamrzavanje traje neko vrijeme, dostupna je dodatna datoteka cgroup.events putem koje možete saznati o završetku operacije;
    • Osiguran izvoz memorijskih atributa pripojenih svakom čvoru u sysfsu, što vam omogućuje da iz korisničkog prostora odredite prirodu obrade memorijskih banaka u sustavima s heterogenom memorijom;
    • Poboljšan je podsustav PSI (Pressure Stall Information) koji vam omogućuje analizu informacija o vremenu čekanja za primanje različitih resursa (CPU, memorija, I/O) za određene zadatke ili skupove procesa u cgroup-u. Koristeći PSI, rukovatelji korisničkim prostorom mogu točnije procijeniti razinu opterećenja sustava i obrasce usporavanja u usporedbi s prosječnim opterećenjem. 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 na određeno vremensko razdoblje. Ova značajka omogućuje Androidu da prati nedostatak memorije u ranoj fazi, identificira izvor problema i prekine nevažne aplikacije bez izazivanja problema koji su vidljivi korisniku. Prilikom testiranja otpornosti na stres, alati za praćenje potrošnje memorije temeljeni na PSI pokazali su 10 puta manje lažno pozitivnih rezultata u usporedbi sa statistikom vmpressure;
    • Kod za provjeru BPF programa je optimiziran, što omogućuje do 20 puta bržu provjeru velikih programa. Optimizacija je omogućila podizanje ograničenja veličine BPF programa s 4096 na milijun instrukcija;
    • Za BPF programe odobreno mogućnost pristupa globalnim podacima, što vam omogućuje definiranje globalnih varijabli i konstanti u programima;
    • Dodano API, koji vam omogućuje kontrolu promjena u sysctl parametrima iz BPF programa;
    • Za MIPS32 arhitekturu implementiran je JIT kompajler za eBPF virtualni stroj;
    • Za 32-bitnu PowerPC arhitekturu dodana je podrška za alat za otklanjanje pogrešaka KASan (Kernel address sanitizer), koji pomaže identificirati pogreške pri radu s memorijom;
    • Na x86-64 sustavima, uklonjeno je ograničenje postavljanja ispisa stanja tijekom pada jezgre (crash-dump) u memorijskim područjima iznad 896MB;
    • Za s390 arhitekturu implementirana je podrška za randomizaciju adresnog prostora jezgre (KASLR) i mogućnost provjere digitalnih potpisa prilikom učitavanja jezgre putem kexec_file_load();
    • Za PA-RISC arhitekturu, dodana podrška za kernel debugger (KGDB), oznake skokova i kprobes;
  • Оборудование
    • Vozač uključen Lima za Mali 400/450 GPU, koji se koristi u mnogim starijim čipovima temeljenim na ARM arhitekturi. Za novije Mali GPU-ove dodan je Panfrost driver koji podržava čipove temeljene na mikroarhitekturama Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) i Bifrost (Mali G3x, G5x, G7x);
    • Dodana podrška za audio uređaje koji koriste otvoreni firmware Zvučni otvoreni firmver (OFS). Unatoč dostupnosti otvorenih upravljačkih programa, programski kod za zvučne čipove i dalje je ostao zatvoren i isporučen je u binarnom obliku. Projekt Sound Open Firmware razvio je Intel kako bi stvorio otvoreni firmware za DSP čipove koji se odnose na audio obradu (Google se kasnije također pridružio razvoju). Trenutno je projekt već pripremio otkriće firmvera za zvučne čipove platformi Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake i IceLake;
    • Intel DRM driver (i915) dodaje podršku za čipove
      Elkhartlake (Gen11). Dodani PCI ID-ovi za Comet Lake (Gen9) čipove. Podrška za Icelake čipove je stabilizirana, za koje su također dodani dodatni identifikatori PCI uređaja.
      Uključen
      način asinkronog prebacivanja između dva međuspremnika u video memoriji (async flip) pri izvođenju operacija pisanja putem mmio, što je značajno povećalo performanse nekih 3D aplikacija (na primjer, performanse u 3DMark Ice Storm testu porasle su za 300-400%). Dodana tehnološka podrška HDCP2.2 (High-bandwidth Digital Content Protection) za šifriranje video signala koji se prenose putem HDMI-ja;

    • Amdgpu upravljački program za Vega20 GPU dodao podrška za RAS (Reliability, Availability, Serviceability) i eksperimentalna podrška za podsustav SMU 11, koji je zamijenio Powerplay tehnologiju. Za GPU Vega12 dodao podrška za BACO mod (Bus Active, Chip Off). Dodana početna podrška za XGMI, sabirnicu velike brzine (PCIe 4.0) za GPU međusobno povezivanje. Dodani identifikatori koji nedostaju za kartice temeljene na Polaris10 GPU u amdkfd upravljački program;
    • Upravljački program Nouveau dodao je podršku za ploče temeljene na NVIDIA Turing 117 čipsetu (TU117, korišten u GeForce GTX 1650). U
      kconfig dodao postavka za onemogućavanje zastarjelih funkcija koje se više ne koriste u trenutnim izdanjima libdrm-a;

    • Podrška za objekte sinkronizacije “timeline” dodana je u DRM API i amdgpu upravljački program, što vam omogućuje da radite bez klasičnog blokiranja.
    • Vboxvideo upravljački program za virtualni GPU VirtualBox premješten je iz staging grane u glavnu strukturu;
    • Dodan aspeed drajver za GFX SoC ASPEED čip;
    • Dodana 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, Free Software Foundation Latin America formirana
opcija potpuno besplatna jezgra 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 datoteka
Zvuk Otvori firmver. Onemogućeno je učitavanje blobova u upravljačke programe
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp i ucsi_ccg. Ažuriran je kod za čišćenje mrlja u upravljačkim programima i podsustavima ixp4xx, imx-sdma, amdgpu, nouveau i goya, kao i u dokumentaciji mikrokoda. Zaustavljeno čišćenje mrlja u drajveru r8822be zbog njegovog uklanjanja.

Izvor: opennet.ru

Dodajte komentar