Izdanje Linux jezgre 5.14

Nakon dva mjeseca razvoja, Linus Torvalds predstavio je izdanje Linux jezgre 5.14. Među najistaknutijim promjenama su: novi sustavni pozivi quotactl_fd() i memfd_secret(), uklanjanje ide i raw drajvera, novi kontroler prioriteta ulaz/izlaz za cgroup, način planiranja zadataka SCHED_CORE, infrastruktura za izradu učitavača verifikovanih BPF programa.

U novu verziju uključeno je 15883 ispravki od 2002 programera, veličina zakrpe iznosi 69 MB (promjene su zahvatile 12580 datoteka, dodano je 861501 linija koda, uklonjeno 321654 linija). Oko 47% svih predstavljenih promjena u 5.14 odnosi se na upravljačke drajvere, otprilike 14% promjena ima veze s ažuriranjem koda specifičnog za hardverske arhitekture, 13% se odnosi na mrežni sloj, 3% na datotečne sustave i 3% na unutarnje podsustave jezgre.

Glavne novine:

  • Sistem diska, ulaz/izlaz i datotečni sustavi
    • Za cgroup implementiran je novi kontroler prioritizacije ulaz/izlaz — rq-qos, koji može upravljati prioritetom obrade zahtjeva za blok uređaje, generiranih sudionicima svake cgroup. Podrška novom kontroleru prioriteta dodana je u mq-deadline planifikator ulaz/izlaz.
    • U datotečnom sustavu ext4 implementirana je nova ioctl komanda EXT4_IOC_CHECKPOINT, koja prisilno prepisuje na disk sve čekajuće transakcije iz dnevnika i povezane s njima međuspremnike, kao i prepisuje područje koje koristi dnevnik u skladištu. Promjena je pripremljena u okviru inicijative za sprječavanje curenja informacija iz datotečnih sustava.
    • U Btrfs su napravljene optimizacije performansi: isključivanjem nepotrebnog dnevničkog zapisa proširenih atributa tijekom izvršavanja fsync, performanse intenzivnih operacija s proširenim atributima povećane su do 17%. Osim toga, tijekom operacija skraćenja koje ne zahvaćaju ekstente, isključena je potpuna sinkronizacija, što je smanjilo vrijeme izvršavanja operacije za 12%. U sysfs je dodana opcija za ograničavanje propusnosti ulaz/izlaz tijekom provjere FSi. Dodane su ioctl pozive za otkazivanje operacija promjene veličine i uklanjanja uređaja.
    • U XFS je redizajnirana implementacija memorijskog predmemoriranja, koja je prebačena na dodjelu stranica memorije u paketnom režimu. Povećana je učinkovitost rada predmemorije.
    • U F2FS dodana je opcija za rad u režimu samo za čitanje i implementiran je režim keširanja komprimiranih blokova (compress_cache) radi poboljšanja performansi nasumičnog čitanja. Uvedena je podrška za kompresiju datoteka reflektiranih u memoriji pomoću operacije mmap(). Za selektivno isključivanje kompresije datoteka po maski ponuđena je nova opcija montaže nocompress.
    • U exFAT upravljaču izvršeni su radovi na poboljšanju kompatibilnosti s pohranama nekih digitalnih kamera.
    • Dodana je sistemska funkcija quotactl_fd(), koja omogućava upravljanje kvotama ne preko datoteke posebnog uređaja, već putem specificiranja datotečnog deskriptora vezanog za datotečni sustav na koji se primjenjuje kvota.
    • Iz jezgre su uklonjeni stari upravljači za blok uređaje s IDE sučeljem, koje su odavno zamijenile libata podsustav.
    • Iz jezgre je uklonjen 'raw' upravljač, koji omogućava nebuforizirani pristup blok uređajima preko sučelja /dev/raw. Ova funkcionalnost se već dugo implementira u aplikacijama pomoću O_DIRECT zastavice.
  • Memorija i sistemske usluge
    • U planeru zadataka implementiran je novi režim raspoređivanja SCHED_CORE, koji omogućava upravljanje time koji procesi mogu zajednički raditi na jednoj CPU jezgri. Svakom procesu može biti dodijeljen cookie-identifikator, koji određuje područje povjerenja među procesima (na primjer, pripadnost jednom korisniku ili kontejneru). Tijekom organizacije izvršavanja koda, planer može osigurati dijeljenje jedne CPU jezgre samo za procese povezane s jednim vlasnikom, što može biti korišteno za blokiranje nekih Spectre klase napada sprečavanjem zajedničkog izvršavanja pouzdanih i nepouzdanih zadataka u istom SMT (Hyper Threading) toku.
    • Za cgroup implementirana je podrška za operaciju kill, koja omogućava istovremeno završavanje svih procesa povezanih s grupom (slanje SIGKILL), zapisivanjem '1' u virtualnu datoteku cgroup.kill.
    • Povećane su mogućnosti vezane uz reakciju na otkrivanje "split lock" blokada koje se pojavljuju prilikom pristupa neuređenim podacima u memoriji zbog toga što prilikom izvršavanja atomske instrukcije podaci prelaze dvije CPU cache linije. Ove blokade dovode do značajnog smanjenja performansi, pa je ranije bila omogućena mogućnost prisilnog završetka aplikacije koja je izazvala blokadu. U novom izdanju dodana je opcija naredbenog retka jezgre "split_lock_detect=ratelimit:N", koja omogućuje postavljanje općeg sustavnog limita intenziteta operacija blokiranja po sekundi, nakon čega će bilo koji proces koji postane izvor split blokade umjesto završetka biti prisilno zaustavljen na 20 ms.
    • U CFS (CFS bandwidth controller) kontroleru cgroup-a, koji određuje koliko procesorskog vremena može biti dodijeljeno svakoj cgroup, omogućeno je definiranje limita koji su ograničeni zadanom vremenom trajanja, što poboljšava regulaciju opterećenja osjetljivih na kašnjenja. Na primjer, postavljanje vrijednosti cpu.cfs_quota_us na 50000 i cpu.cfs_period_us na 100000 omogućit će grupi procesa da troši 50ms CPU vremena svakih 100ms.
    • Dodana je inicijalna infrastruktura za izradu BPF programskih učitavača, koja će kasnije omogućiti učitavanje samo BPF programa koji su potpisani pouzdanim digitalnim ključem.
    • Dodana je nova futex operacija FUTEX_LOCK_PI2 koja koristi monotoni mjerač vremena za izračun timeout-a koji uzima u obzir vrijeme provedeno u mirovanju sustava.
    • Za RISC-V arhitekturu implementirana je podrška za velike stranice memorije (Transparent Huge-Pages) i mogućnost korištenja KFENCE mehanizma za otkrivanje grešaka u radu s memorijom.
    • U sistemski poziv madvise(), koji pruža sredstva za optimizaciju upravljanja memorijom procesa, dodani su flagevi MADV_POPULATE_READ i MADV_POPULATE_WRITE za generiranje „page fault“ za sve stranice memorije, odražene za operacije čitanja ili pisanja, bez izvršavanja stvarnog čitanja ili pisanja (prefault). Primjena flagova može biti korisna za smanjenje latencije u radu programa, zahvaljujući proaktivnom izvršavanju obradnika „page fault“ jednom za sve nealokirane stranice, ne čekajući stvarni pristup njima.
    • U sustav unit-testiranja kunit dodana je podrška za pokretanje testova u okruženju QEMU.
    • Dodani su novi traceri: „osnoise“ za praćenje latencija u aplikacijama uzrokovanih obradom prekida, i „timerlat“ za ispis detaljnih informacija o latencijama prilikom buđenja signalom tajmera.
  • Virtualizacija i sigurnost
    • Dodani je sistemski poziv memfd_secret(), koji omogućava stvaranje privatne memorijske regije u izoliranom adresnom prostoru, vidljivoj samo procesu-vlasniku, neodraženoj u druge procese i direktno nedostupnoj jezgru.
    • U sustavu filtriranja sistemskih poziva seccomp, pri izvođenju obradnika blokade u korisničkom prostoru, ponuđena je mogućnost korištenja jedne atomarne operacije za stvaranje datotečnog deskriptor za izoliranu zadaću i njegovo vraćanje prilikom obrade sistemskog poziva. Predložena operacija rješava problem s prekidom obradnika u korisničkom prostoru prilikom dolaska signala.
    • Dodana je nova mehanizam za upravljanje ograničenjima resursa u prostoru imenskih identiteta korisnika, koja povezuje pojedinačne brojače rlimit sa korisnikom u „user namespace“. Promjena rješava problem s primjenom zajedničkih brojača resursa prilikom pokretanja procesa od strane jednog korisnika u različitim kontejnerima.
    • U hipervizoru KVM za sustave ARM64 dodana je mogućnost korištenja u gostujućim sustavima proširenja MTE (MemTag, Memory Tagging Extension), koja omogućava povezivanje oznaka s operacijama alokacije memorije i organizaciju provjere ispravnosti korištenja pokazivača radi blokiranja iskorištavanja ranjivosti uzrokovanih pristupom već oslobođenim blokovima memorije, prekomjernim punjenjem međuspremnika, pristupima prije inicijalizacije i korištenjem izvan trenutnog konteksta.
    • Sredstva pružena od strane ARM64 platforme za autentifikaciju pokazivača (Pointer Authentication) sada se mogu posebno konfigurirati za kernel i korisnički prostor. Tehnologija omogućava korištenje specijaliziranih ARM64 instrukcija za provjeru adresa povratka koristeći digitalne potpise koji se čuvaju u neiskorištenim gornjim bitovima samog pokazivača.
    • U User-mode Linux dodana je podrška za korištenje drajvera za PCI uređaje s virtuelnom PCI magistralom koju implementira drajver PCI-over-virtio.
    • Za x86 sisteme dodana je podrška za para-virtualizovano uređaj virtio-iommu, koje omogućava slanje IOMMU upita, kao što su ATTACH, DETACH, MAP i UNMAP, preko virtio transporta bez emulacije tabela stranica memorije.
    • Za Intel CPU, počevši od Skylake porodice do Coffee Lake, po defaultu je isključena upotreba Intel TSX (Transactional Synchronization Extensions), koja pruža sredstva za poboljšanje performansi više-nitnih aplikacija dinamičkim izbacivanjem suvišnih operacija sinhronizacije. Proširenja su isključena zbog mogućnosti izvođenja Zombieload napada, koji manipulišu curenjem informacija kroz sporedne kanale tokom rada mehanizma asinhronog prekida operacija (TAA, TSX Asynchronous Abort).
  • Mrežni subsistem
    • Nastavljena je integracija u MPTCP kernel (MultiPath TCP), proširenje TCP protokola za organizaciju TCP veze s isporukom paketa istovremeno kroz više ruta putem različitih mrežnih interfejsa, povezanih sa različitim IP adrese. U novom izdanju dodat je mehanizam za postavljanje vlastitih pravila za heširanje saobraćaja za IPv4 i IPv6 (multipath hash policy), koji omogućava korisničkom prostoru da odredi koja će se polja u paketima, uključujući inkapsulirane, koristiti za proračun heša koji određuje izbor puta za paket.
    • U virtuelni transport virtio dodana je podrška za sokete SOCK_SEQPACKET (uređeno i pouzdano slanje datagrama).
    • Proširene su mogućnosti mehanizma soketa SO_REUSEPORT, koji omogućuje da se više aktivnih soketa poveže na jednu točku za prijem veza, raspodjeljujući dolazne zahtjeve među svim povezanim soketima putem SO_REUSEPORT, čime se olakšava stvaranje višedretvenih serverskih aplikacija. U novoj verziji dodani su alati za prijenos kontrole na drugi soket u slučaju kvara prilikom obrade zahtjeva od izvorno odabranog soketa (riješava problem gubitka pojedinačnih veza prilikom ponovnog pokretanja usluga).
  • Oprema
    • U drajveru amdgpu implementirana je podrška za nove serije GPU AMD Radeon RX 6000, razvijene pod kodnim imenima „Beige Goby” (Navi 24) i „Yellow Carp”, a također je poboljšana podrška za GPU Aldebaran (gfx90a) i APU Van Gogh. Dodana je mogućnost simultanog rada s više eDP panela. Za APU Renoir implementirana je podrška za rad s enkriptiranim predmemorijama u video memoriji (TMZ, Trusted Memory Zone). Dodana je podrška za vruće uklanjanje grafičkih kartica (hot-unplug). Za GPU Radeon RX 6000 (Navi 2x) i starije GPU AMD uključena je po defaultu podrška za mehanizam uštede energije ASPM (Active State Power Management), koji je prije bio omogućen samo za GPU Navi 1x, Vega i Polaris.
    • Za čipove AMD dodana je podrška za dijeljenu virtualnu memoriju (SVM, shared virtual memory) na bazi podsustava HMM (Heterogeneous memory management), koja omogućava korištenje uređaja s vlastitim upravljačkim blokovima memorije (MMU, memory management unit) koji mogu pristupiti glavnoj memoriji. Uključujući putem HMM moguće je organizirati zajednički adresni prostor između GPU i CPU, u kojem GPU može pristupiti glavnoj memoriji procesa.
    • Dodana je početna podrška za tehnologiju AMD Smart Shift, koja dinamički mijenja parametre potrošnje energije CPU i GPU na prijenosnim računalima s čipsetom i grafičkom karticom AMD, kako bi se poboljšala izvedba prilikom igranja, uređivanja videa i 3D renderiranja.
    • U drajveru i915 za grafičke kartice Intel uključena je podrška za čipove Intel Alderlake P.
    • Dodani su drajver drm/hyperv za virtualni grafički adapter Hyper-V.
    • Dodana je podrška za računalo-monoblok Raspberry Pi 400.
    • Dodan je drajver dell-wmi-privacy za podršku hardverskim prekidačima kamere i mikrofona koji se nalaze u Dell prijenosnicima.
    • Za prijenosnike Lenovo dodan je WMI sučelje za promjenu postavki BIOS-a putem sysfs /sys/class/firmware-attributes/.
    • Proširena podrška za uređaje s USB4 sučeljem.
    • Dodana podrška za zvučne kartice i kodeke AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 i Texas Instruments TAS2505. Poboljšana podrška za zvuk na prijenosnicima HP i ASUS. Dodane zakrпе za smanjenje kašnjenja pri pokretanju reprodukcije zvuka na uređajima s USB sučeljem.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster