Izdanje jezgre Linuxa 5.11

Nakon dva mjeseca razvoja, Linus Torvalds predstavio je izdanje Linux kernela 5.11. Među najznačajnijim promjenama: podrška za Intel SGX enklave, novi mehanizam za presretanje sistemskih poziva, virtualna pomoćna sabirnica, zabrana sastavljanja modula bez MODULE_LICENSE(), način brzog filtriranja za sistemske pozive u seccompu, ukidanje podrške za ia64 arhitektura, prijenos WiMAX tehnologije u “staging” granu, mogućnost enkapsulacije SCTP-a u UDP.

Nova verzija uključuje 15480 popravaka od 1991 programera, veličina zakrpe je 72 MB (promjene su zahvatile 12090 datoteka, dodano je 868025 redaka koda, izbrisano je 261456 redaka). Oko 46% svih promjena uvedenih u 5.11 odnosi se na upravljačke programe uređaja, približno 16% promjena odnosi se na ažuriranje koda specifičnog za hardverske arhitekture, 13% se odnosi na mrežni stog, 3% se odnosi na sustav datoteka, a 4% povezani su s unutarnjim podsustavima jezgre.

Glavne inovacije:

  • Diskovni podsustav, I/O i datotečni sustavi
    • Nekoliko opcija montiranja dodano je u Btrfs za korištenje pri vraćanju podataka iz oštećenog datotečnog sustava: “rescue=ignorebadroots” za montiranje, unatoč oštećenju nekih korijenskih stabala (extent, uuid, data reloc, device, csum, free space), “ rescue=ignoredatacsums” za onemogućavanje provjere kontrolnog zbroja za podatke i "rescue=all" za istovremeno omogućavanje načina rada 'ignorebadroots', 'ignoredatacsums' i 'nologreplay'. Opcija montiranja "inode_cache", koja je prethodno bila zastarjela, ukinuta je. Kod je pripremljen za implementaciju podrške za blokove s metapodacima i podacima manjim od veličine stranice (PAGE_SIZE), kao i podršku za zonski način dodjele prostora. Zahtjevi bez međuspremnika (izravni IO) premješteni su u infrastrukturu iomap. Izvedba niza operacija je optimizirana; u nekim slučajevima ubrzanje može doseći desetke postotaka.
    • XFS implementira oznaku "needsrepair", koja signalizira potrebu za popravkom. Kada je ova zastavica postavljena, datotečni sustav se ne može montirati sve dok se zastavica ne poništi putem uslužnog programa xfs_repair.
    • Ext4 nudi samo ispravke grešaka i optimizacije, kao i čišćenje koda.
    • Dopušten je ponovni izvoz datotečnih sustava montiranih preko NFS-a (tj. particija montirana putem NFS-a sada se može izvesti putem NFS-a i koristiti kao međupredmemorija).
    • Sistemski poziv close_range(), koji omogućuje procesu da zatvori čitav raspon otvorenih deskriptora datoteke odjednom, dodao je opciju CLOSE_RANGE_CLOEXEC za zatvaranje deskriptora u načinu rada close-on-exec.
    • Datotečni sustav F2FS dodaje nove pozive ioctl() kako bi omogućio kontrolu korisničkog prostora nad time koje su datoteke pohranjene u komprimiranom obliku. Dodana opcija montiranja "compress_mode=" za odabir postavljanja rukovatelja kompresijom na strani kernela ili u korisničkom prostoru.
    • Omogućena je mogućnost montiranja Overlayfs-a neprivilegiranim procesima pomoću zasebnog korisničkog prostora imena. Kako bi se provjerila usklađenost s implementacijom sigurnosnog modela, provedena je potpuna revizija koda. Overlayfs također dodaje mogućnost pokretanja korištenjem kopija slika datotečnog sustava izbornim onemogućavanjem UUID provjere.
    • Datotečni sustav Ceph dodao je podršku za protokol msgr2.1 koji omogućuje korištenje AES-GCM algoritma pri prijenosu podataka u šifriranom obliku.
    • Modul dm-multipath implementira mogućnost uzimanja u obzir CPU afiniteta ("IO afiniteta") pri odabiru rute za I/O zahtjeve.
  • Memorija i usluge sustava
    • Dodan je novi mehanizam za presretanje sistemskih poziva, temeljen na prctl(), koji vam omogućuje generiranje iznimaka iz korisničkog prostora prilikom pristupa određenom sistemskom pozivu i emulaciju njegovog izvršenja. Ova je funkcionalnost potrebna u Wineu i Protonu za emulaciju Windows sistemskih poziva, što je neophodno za osiguranje kompatibilnosti s igrama i programima koji izravno izvode sistemske pozive zaobilazeći Windows API (na primjer, radi zaštite od neovlaštene upotrebe).
    • Sistemski poziv userfaultfd(), dizajniran za rukovanje pogreškama stranice (pristup nedodijeljenim memorijskim stranicama) u korisničkom prostoru, sada ima mogućnost onemogućiti rukovanje iznimkama koje se javljaju na razini kernela kako bi se otežalo iskorištavanje određenih ranjivosti.
    • Podsustav BPF dodao je podršku za lokalnu pohranu zadataka, koja omogućuje vezanje podataka na određeni BPF rukovatelj.
    • Računovodstvo potrošnje memorije od strane BPF programa potpuno je redizajnirano - predložen je cgroup kontroler umjesto memlock rlimit za upravljanje korištenjem memorije u BPF objektima.
    • BTF (BPF Type Format) mehanizam, koji pruža informacije o provjeri tipa u BPF pseudokod, pruža podršku za module kernela.
    • Dodana je podrška za shutdown(), renameat2() i unlinkat() sistemske pozive na io_uring asinkrono I/O sučelje. Prilikom pozivanja io_uring_enter(), dodana je mogućnost određivanja vremenskog ograničenja (možete provjeriti podršku za argument za određivanje vremenskog ograničenja pomoću oznake IORING_FEAT_EXT_ARG).
    • Arhitektura ia64 koja se koristi u procesorima Intel Itanium premještena je u kategoriju siročadi, što znači da je testiranje prekinuto. Hewlett Packard Enterprise prestao je primati narudžbe za novu Itanium opremu, a Intel je to učinio prošle godine.
    • Podrška za sustave temeljene na MicroBlaze arhitekturi koji ne uključuju jedinicu za upravljanje memorijom (MMU) je prekinuta. Ovakvi sustavi već dugo nisu viđeni u svakodnevnom životu.
    • Za MIPS arhitekturu, dodana je podrška za testiranje pokrivenosti koda pomoću uslužnog programa gcov.
    • Dodana podrška za virtualnu pomoćnu sabirnicu za sučelje s višenamjenskim uređajima koji kombiniraju funkcionalnost koja zahtijeva različite upravljačke programe (na primjer, mrežne kartice s podrškom za Ethernet i RDMA). Sabirnica se može koristiti za dodjeljivanje primarnog i sekundarnog pokretačkog programa uređaju, u situacijama kada je korištenje podsustava MFD (Multi-Function Devices) problematično.
    • Za RISC-V arhitekturu, dodana je podrška za sustav dodjele memorije CMA (Contiguous Memory Allocator), koji je optimiziran za dodjelu velikih kontinuiranih područja memorije korištenjem tehnika pomicanja memorijske stranice. Za RISC-V također su implementirani alati za ograničavanje pristupa /dev/mem i uzimanje u obzir vremena obrade prekida.
    • Za 32-bitne ARM sustave dodana je podrška za KASan (Kernel address sanitizer) alat za otklanjanje pogrešaka, koji pomaže identificirati pogreške pri radu s memorijom. Za 64-bitni ARM, implementacija KASan je pretvorena u upotrebu MTE oznaka (MemTag).
    • Dodan je sistemski poziv epoll_pwait2() za dopuštanje vremenskih ograničenja s preciznošću od nanosekunde (poziv epoll_wait manipulira milisekundama).
    • Sustav za izgradnju sada prikazuje pogrešku kada pokušava izgraditi module jezgre koji se mogu učitavati u kojima licenca koda nije definirana korištenjem makronaredbe MODULE_LICENSE(). Od sada će upotreba makronaredbe EXPORT_SYMBOL() za statičke funkcije također uzrokovati pogrešku u izradi.
    • Dodana podrška za mapiranje GEM objekata iz memorije koja se koristi za I/O, što je omogućilo ubrzanje rada s okvirnim međuspremnikom na nekim arhitekturama.
    • Kconfig je ukinuo podršku za Qt4 (dok je zadržao podršku za Qt5, GTK i Ncurses).
  • Virtualizacija i sigurnost
    • Podrška za način brzog odgovora dodana je sistemskom pozivu seccomp(), koji vam omogućuje da vrlo brzo odredite je li određeni poziv sustava dopušten ili zabranjen na temelju bitmape konstantne akcije priložene procesu, koji ne zahtijeva pokretanje BPF rukovatelj.
    • Integrirane komponente kernela za stvaranje i upravljanje enklavama temeljene na tehnologiji Intel SGX (Software Guard eXtensions), koja aplikacijama omogućuje izvršavanje koda u izoliranim kriptiranim područjima memorije, kojima ostatak sustava ima ograničen pristup.
    • Kao dio inicijative za ograničavanje pristupa iz korisničkog prostora u MSR (registar specifičan za model), pisanje u registar MSR_IA32_ENERGY_PERF_BIAS, koji vam omogućuje promjenu načina energetske učinkovitosti procesora ("normalno", "performance", "powersave") , zabranjeno je.
    • Mogućnost onemogućavanja migracije zadataka visokog prioriteta između CPU-a premještena je iz grane kernel-rt za sustave u stvarnom vremenu.
    • Za ARM64 sustave dodana je mogućnost korištenja MTE oznaka (MemTag, Memory Tagging Extension) za memorijske adrese rukovatelja signalima. Korištenje MTE-a omogućeno je određivanjem opcije SA_EXPOSE_TAGBITS u sigaction() i omogućuje provjeru ispravne upotrebe pokazivača za blokiranje iskorištavanja ranjivosti uzrokovanih pristupom već oslobođenim memorijskim blokovima, preljevima međuspremnika, pristupima prije inicijalizacije i upotrebom izvan trenutni kontekst.
    • Dodan je parametar "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING", koji podsustavu dm-verity omogućuje provjeru hash potpisa certifikata postavljenih u sekundarni privjesak ključeva. U praksi vam postavljanje omogućuje provjeru ne samo certifikata ugrađenih u kernel, već i certifikata učitanih tijekom rada, što omogućuje ažuriranje certifikata bez ažuriranja cijele jezgre.
    • Linux u korisničkom načinu rada dodao je podršku za način rada suspend-to-idle, koji vam omogućuje da zamrznete okruženje i koristite signal SIGUSR1 za buđenje iz načina mirovanja.
    • Mehanizam virtio-mem, koji vam omogućuje vruće priključivanje i isključivanje memorije s virtualnih strojeva, ima dodatnu podršku za Big Block Mode (BBM), koji omogućuje prijenos ili preuzimanje memorije u blokovima većim od veličine memorije kernela. blok, koji je neophodan za optimizaciju VFIO u QEMU.
    • Podrška za šifru CHACHA20-POLY1305 dodana je implementaciji jezgre TLS-a.
  • Mrežni podsustav
    • Za 802.1Q (VLAN) implementiran je mehanizam upravljanja greškama veze (CFM, Connectivity Fault Management) koji vam omogućuje prepoznavanje, provjeru i izolaciju grešaka u mrežama s virtualnim mostovima (Virtual Bridged Networks). Na primjer, CFM se može koristiti za izolaciju problema u mrežama koje obuhvaćaju više neovisnih organizacija čiji zaposlenici imaju pristup samo svojoj opremi.
    • Dodana podrška za enkapsulaciju paketa SCTP protokola u UDP pakete (RFC 6951), što vam omogućuje korištenje SCTP-a na mrežama sa starijim prevoditeljima adresa koji izravno ne podržavaju SCTP, kao i implementaciju SCTP-a na sustavima koji ne pružaju izravan pristup IP-u sloj.
    • Implementacija WiMAX tehnologije premještena je u fazu i predviđeno je da se u budućnosti ukloni ako ne bude korisnika koji trebaju WiMAX. WiMAX se više ne koristi u javnim mrežama, au kernelu jedini driver s kojim se može koristiti WiMAX je zastarjeli Intel 2400m driver. WiMAX podrška ukinuta je u mrežnom konfiguratoru NetworkManager 2015. Trenutno je WiMax gotovo u potpunosti zamijenjen tehnologijama kao što su LTE, HSPA+ i Wi-Fi 802.11n.
    • Radilo se na optimizaciji performansi obrade dolaznog TCP prometa u načinu nulte kopije, tj. bez dodatnog kopiranja u nove međuspremnike. Za promet srednje veličine, koji pokriva desetke ili nekoliko stotina kilobajta podataka, upotreba zerocopy umjesto recvmsg() je osjetno učinkovitija. Na primjer, implementirane promjene omogućile su povećanje učinkovitosti obrade prometa u stilu RPC-a s porukama od 32 KB pri korištenju zerocopy za 60-70%.
    • Dodani novi ioctl() pozivi za stvaranje mrežnih mostova koji obuhvaćaju više PPP veza. Predložena mogućnost omogućuje premještanje okvira s jednog kanala na drugi, na primjer s PPPoE na PPPoL2TP sesiju.
    • Integracija u jezgru MPTCP (MultiPath TCP), proširenje TCP protokola za organiziranje rada TCP veze s dostavom paketa istovremeno duž nekoliko ruta kroz različita mrežna sučelja povezana s različitim IP adresama. Novo izdanje uvodi podršku za opciju ADD_ADDR za oglašavanje dostupnih IP adresa na koje se može spojiti prilikom dodavanja novih tokova postojećoj MPTCP vezi.
    • Dodana je mogućnost konfiguriranja radnji kada je proračun anketiranja veze prekoračen (busy-polling). Prethodno dostupan način rada SO_BUSY_POLL značio je prebacivanje na softirq kada je proračun iscrpljen. Za aplikacije koje trebaju nastaviti koristiti glasanje, predlaže se nova opcija SO_PREFER_BUSY_POLL.
    • IPv6 implementira podršku za SRv6 End.DT4 i End.DT6 načine, koji se koriste za stvaranje višekorisničkih IPv4 L3 VPN-ova i VRF (virtualno usmjeravanje i prosljeđivanje) uređaja.
    • Netfilter je objedinio implementaciju skupnih izraza, što je omogućilo specificiranje višestrukih izraza za svaki element skupnih lista.
    • API-ji su dodani 802.11 bežičnom skupu za konfiguriranje ograničenja SAR snage, kao i AE PWE i HE MCS parametara. Intel iwlwifi upravljački program dodao je podršku za raspon od 6 GHz (Ultra High Band). Upravljački program Qualcomm Ath11k dodao je podršku za FILS (Fast Initial Link Setup, standardizirano kao IEEE 802.11ai) tehnologiju, koja vam omogućuje da se riješite kašnjenja u roamingu tijekom migracije s jedne pristupne točke na drugu.
  • Оборудование
    • Amdgpu upravljački program pruža podršku za AMD "Green Sardine" APU (Ryzen 5000) i "Dimgrey Cavefish" GPU (Navi 2), kao i početnu podršku za AMD Van Gogh APU sa Zen 2 jezgrom i RDNA 2 GPU (Navi 2). Dodana podrška za nove Renoir APU identifikatore (temeljene na Zen 2 CPU i Vega GPU).
    • Upravljački program i915 za Intelove video kartice podržava tehnologiju IS (Integer scaling) s implementacijom filtra za povećanje skale uzimajući u obzir stanje susjednih piksela (interpolacija najbližeg susjeda) za određivanje boje piksela koji nedostaju. Podrška za diskretne Intel DG1 kartice je proširena. Implementirana je podrška za “Big Joiner” tehnologiju, koja je prisutna od Ice Lake / Gen11 čipova i omogućuje korištenje jednog transkodera za obradu dva streama, na primjer, za izlaz na 8K zaslon putem jednog DisplayPort-a. Dodan je način rada za asinkrono prebacivanje između dva međuspremnika u video memoriji (async flip).
    • Nouveau driver je dodao početnu podršku za NVIDIA GPU-ove koji se temelje na mikroarhitekturi Ampere (GA100, GeForce RTX 30xx), do sada ograničenu na alate za kontrolu video modova.
    • Dodana podrška za 3WIRE protokol koji se koristi u LCD panelima. Dodana podrška za novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 i ABT Y030XX067A 3.0 ploče. Zasebno možemo primijetiti podršku za ploču pametnih telefona OnePlus 6 i 6T, što je omogućilo organiziranje učitavanja neizmijenjene jezgre na uređajima.
    • Dodana podrška za Intelov prvi diskretni USB4 host kontroler, Maple Ridge.
    • Dodana podrška za Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI i XCVR, Realtek RT715 i Qualcomm SM8250 audio kodeke.
    • Dodana podrška za ARM ploče, uređaje i platforme: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, Nuvoton NPCM730, Marvell Armada 382, ​​​​Mikrotik baziran na Marvell Prestera 98DX3236, serveri sa Nuvoton NPCM750 BMC, Kontron i.MX8M Mini, Espressobin Ultra, “Trogdor” Chromebook, Kobol Helios64, Engicam PX30.Core.
    • Ugrađena podrška za Ouya igraću konzolu temeljenu na NVIDIA Tegra 3.

U isto vrijeme, Latinoamerička zaklada za slobodni softver formirala je verziju potpuno besplatnog kernela 5.11 - Linux-libre 5.11-gnu, očišćenog od elemenata firmvera i upravljačkih programa koji sadrže neslobodne komponente ili dijelove koda, čiji je opseg ograničen od strane proizvođača. Novo izdanje čisti upravljačke programe za qat_4xxx (kripto), lt9611uxcm (dsi/hdmi most), ccs/smia++ (senzor), ath11k_pci, nxp audio primopredajnik i mhi pci kontroler. Ažurirani kod za čišćenje mrlja u upravljačkim programima i podsustavima amdgpu, btqca, btrtl, btusb, i915 csr. Onemogućeni su novi blobovi u m3 rproc, idt82p33 ptp clock i qualcomm arm64.

Izvor: opennet.ru

Dodajte komentar