Uvoľnenie jadra Linux 5.11

Po dvoch mesiacoch vývoja Linus Torvalds predstavil uvoľnenie jadra Linux 5.11. Medzi najvýznamnejšími zmenami patrí podpora integrovaných zabezpečených zón Intel SGX, nový mechanizmus zachytávania systémových volaní, virtuálny zberník auxiliary, zákaz zostavovania modulov bez MODULE_LICENSE(), režim rýchlej filtrácie systémových volaní v seccomp, zastavenie podpory architektúry ia64, presun technológie WiMAX do vetvy „staging“ a možnosť enkapsulácie SCTP v UDP.

Do novej verzie bolo prijatých 15480 opráv od 1991 vývojárov, veľkosť záplaty je 72 MB (zmeny sa dotkli 12090 súborov, bolo pridaných 868025 riadkov kódu a 261456 riadkov bolo odstránených). Približne 46 % všetkých zmien v 5.11 súvisí s ovládačmi zariadení, asi 16 % zmien sa týka aktualizácie kódu špecifického pre hardvérové architektúry, 13 % súvisí so sieťovým zásobníkom, 3 % s súborovými systémami a 4 % s internými subsystémami jadra.

Hlavné novinky:

  • Diskový subsystém, I/O a súborové systémy
    • V Btrfs bolo pridaných niekoľko montážnych možností na použitie pri obnove údajov z poškodeného FS: „rescue=ignorebadroots“ na montáž aj napriek poškodeniu niektorých koreňových stromov (extent, uuid, data reloc, device, csum, free space), „rescue=ignoredatacsums“ na vypnutie kontroly kontrolných súm pre údaje a „rescue=all“ na súčasné zapnutie režimov ‘ignorebadroots’, ‘ignoredatacsums’ a ‘nologreplay’. Podpora montážnej voľby „inode_cache“, ktorá bola predtým označená ako zastaraná, bola ukončená. Pripravený bol kód na implementáciu podpory blokov s metadátami a údajmi menšími ako stránka (PAGE_SIZE) a tiež na podporu režimu zónovaného prideľovania miesta. Nepožičiavané (Direct IO) požiadavky boli presunuté na infraštruktúru iomap. Výkon niektorých operácií bol optimalizovaný, v niektorých prípadoch môže zrýchlenie dosiahnuť desiatky percent.
    • V XFS bol zavedený flag „needsrepair“, ktorý signalizuje potrebu opravy. Ak je tento flag nastavený, FS nie je možné pripojiť, pokiaľ flag nie je resetovaný pomocou nástroja xfs_repair.
    • V Ext4 sú navrhnuté len opravy chýb a optimalizácie, ako aj vyčistenie kódu.
    • Bol povolený opätovný export súborových systémov pripojených cez NFS (t. j. pripojený cez NFS oddiel teraz možno exportovať cez NFS a používať ako medziúložisko).
    • Do systémového volání close_range(), které umožňuje procesu uzavřít celou řadu otevřených souborových deskriptorů najednou, byla přidána možnost CLOSE_RANGE_CLOEXEC pro uzavření deskriptorů v režimu close-on-exec.
    • Ve souborovém systému F2FS byly přidány nové volání ioctl(), které umožňují z prostoru uživatele ovládat, které soubory se ukládají v komprimované podobě. Byla přidána možnost montování „compress_mode=“, která umožňuje výběr umístění ovladače pro řízení komprese na straně jádra nebo v uživatelském prostoru.
    • Byla poskytována možnost montování Overlayfs neprivilegovanými procesy, pomocí odděleného prostoru identifikátorů uživatelů (user namespace). Pro kontrolu shody s implementací bezpečnostního modelu byl proveden důkladný audit kódu. V Overlayfs byla také přidána možnost spuštění pomocí kopií obrazů souborového systému prostřednictvím volitelného vypnutí ověření UUID.
    • Do souborového systému Ceph byla přidána podpora protokolu msgr2.1, který umožňuje použít algoritmus AES-GCM při přenosu dat v zašifrované podobě.
    • V modulu dm-multipath byla implementována možnost zohlednění vazby na CPU („IO affinity“) při výběru trasy požadavků vstupu/výstupu.
  • Pamäť a systémové služby
    • Byl přidán nový mechanismus pro zachytávání systémových volání, založený na prctl(), který umožňuje z prostoru uživatele generovat výjimky při pokusu o určité systémové volání a emulovat jeho provádění. Uvedená funkcionalita je žádána ve Wine a Proton pro emulaci systémových volání Windows, což je nutné pro zajištění kompatibility s hrami a programy, které přímo vykonávají systémová volání mimo Windows API (například pro ochranu proti neoprávněnému používání).
    • Do systémového volání userfaultfd(), určeného pro zpracování page faults (přístup k nealokovaným stránkám paměti) v uživatelském prostoru, byla přidána možnost vypnout zpracování výjimek, které vznikají na úrovni jádra, aby se ztížila exploatace některých zranitelností.
    • Do subsystému BPF byla přidána podpora lokálního úložiště dat pro úlohu (task-local storage), které zajišťuje vazbu dat na konkrétní BPF zpracovatel.
    • Úplne prepracované sledovanie spotreby pamäte programami BPF – na správu využívania pamäte v objektoch BPF bol navrhnutý kontrolér cgroup namiesto memlock rlimit.
    • V mechanizme BTF (BPF Type Format), ktorý poskytuje informácie na kontrolu typov v pseudokóde BPF, bola implementovaná podpora modulov jadra.
    • V rozhraní pre asynchrónny vstup/výstup io_uring bola pridaná podpora systémových volaní shutdown(), renameat2() a unlinkat(). Pri volaní io_uring_enter() bola pridaná možnosť určiť časový limit (podporu argumentu na určenie časového limitu je možné overiť pomocou príznaku IORING_FEAT_EXT_ARG).
    • Architektúra ia64, používaná v procesoroch Intel Itanium, bola prevedená do kategórie bez podpory („orphaned“), čo znamená ukončenie testovania. Spoločnosť Hewlett Packard Enterprise ukončila prijímanie objednávok na nové zariadenia Itanium, zatiaľ čo Intel to urobil už minulý rok.
    • Podpora systémov na báze architektúry MicroBlaze, ktoré nie sú vybavené blokom správy pamäte (MMU), bola zrušená. Takéto systémy sa už dlhodobo nevyskytujú v praxi.
    • Pre architektúru MIPS bola pridaná podpora testovania pokrytia kódu (coverage testing) pomocou nástroja gcov.
    • Bola pridaná podpora virtuálnej zbernice auxiliary na interakciu s multifunkčnými zariadeniami, ktoré kombinujú funkcie vyžadujúce rôzne ovládače (napríklad sieťové karty s podporou Ethernet a RDMA). Zbernica sa môže používať na priradenie primárneho a sekundárneho ovládača pre zariadenie, keď je problematické používanie subsystému MFD (Multi-Function Devices).
    • Pre architektúru RISC-V bola pridaná podpora systému rozdeľovania pamäte CMA (Contiguous Memory Allocator), ktorý je optimalizovaný na pridelenie veľkých neprerušených oblastí pamäte s použitím techniky presúvania strán pamäte. Pre RISC-V boli taktiež implementované prostriedky na obmedzenie prístupu k /dev/mem a sledovanie času spracovania prerušenia.
    • Pre 32-bitové systémy ARM bola pridaná podpora ladacieho nástroja KASan (Kernel address sanitizer), ktorý zabezpečuje odhaľovanie chýb pri práci s pamäťou. Pre 64-bitové ARM bola implementácia KASan prevedená na používanie tagov MTE (MemTag).
    • Bol pridaný systémový hovor epoll_pwait2(), ktorý umožňuje používanie časových limitov s nanosekundovou presnosťou (hovor epoll_wait manipuluje milisekundami).
    • V systéme zostavenia je zabezpečené výstup chýb pri pokuse o zostavenie nahrávaných modulov jadra, v ktorých nebola pomocou makra MODULE_LICENSE() určená licencia na kód. Chyba pri zostavení teraz tiež spôsobí použitie makra EXPORT_SYMBOL() pre statické funkcie.
    • Pridaná podpora mapovania GEM-objektov z pamäte vyhradenej pre vstup/výstup, čo umožnilo zrýchliť prácu s framebufferom na niektorých architektúrach.
    • V Kconfig bola ukončená podpora Qt4 (podpora Qt5, GTK a Ncurses bola ponechaná).
  • Virtualizácia a bezpečnosť
    • Do systémového volania seccomp() bola pridaná podpora režimu rýchlej reakcie, ktorá umožňuje veľmi rýchlo určiť, či je určitý systémový hovor povolený alebo zakázaný na základe pripojenej tabuľky oprávnení (constant-action bitmap), ktorá nevyžaduje spustenie BPF spracovateľa.
    • Integrované komponenty jadra pre vytváranie a správu enkláv na báze technológie Intel SGX (Software Guard eXtensions), ktorá umožňuje aplikáciám vykonávať kód v izolovaných šifrovaných oblastiach pamäte, pričom prístup ostatných systémov k nim je obmedzený.
    • V rámci iniciatívy na obmedzenie prístupu z užívateľského priestoru k registrám MSR (model-specific register) bola zakázaná zápis do registra MSR_IA32_ENERGY_PERF_BIAS, ktorý umožňuje zmeniť režim energetickej účinnosti procesora („normal“, „performance“, „powersave“).
    • Z vetvy kernel-rt pre systémy reálneho času bola prenesená možnosť vypnutia migrácie vysoko prioritných úloh medzi CPU.
    • Pre systémy ARM64 bola pridaná možnosť použiť štítky MTE (MemTag, Memory Tagging Extension) pre adresy pamäte spracovateľov signálov. Použitie MTE sa aktivuje určením možnosti SA_EXPOSE_TAGBITS v sigaction() a umožňuje organizovať kontrolu správnosti používania ukazovateľov na zabránenie zneužívaniu zraniteľností, ktoré spôsobujú prístup k už uvoľneným blokom pamäte, pretečením vyrovnávacej pamäte, prístupom pred inicializáciou a používaním mimo aktuálneho kontextu.
    • Pridaný parameter „DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING“, ktorý umožňuje subsystému dm-verity overovať hash-signatúry certifikátov umiestnených v sekundárnom úložisku kľúčov (keyring). V praxi táto konfigurácia umožňuje overiť nielen certifikáty zabudované do jadra, ale aj certifikáty nahrané počas behu, čo umožňuje aktualizovať certifikáty bez aktualizácie celého jadra.
    • Do User-mode Linux added support for the suspend-to-idle mode, allowing the environment to be frozen and using the SIGUSR1 signal to wake it up from sleep mode.
    • In the virtio-mem mechanism, enabling hot-plugging and unplugging of memory to virtual machines, support for Big Block Mode (BBM) has been added, allowing memory to be transferred or retrieved in blocks exceeding the size of the kernel's memory block, necessary for optimizing VFIO in QEMU.
    • Support for the CHACHA20-POLY1305 cipher has been added to the kernel-level TLS implementation.
  • Sieťový subsystém
    • A Connectivity Fault Management (CFM) mechanism has been implemented for 802.1Q (VLAN), allowing the detection, verification, and isolation of faults in networks with virtual bridges. For example, CFM can be used to localize problems in networks spanning multiple independent organizations, whose employees have access only to their own equipment.
    • Support for encapsulating SCTP packets in UDP packets (RFC 6951) has been added, making it possible to use SCTP in networks with old address translators that do not directly support SCTP, as well as implement SCTP on systems that do not provide direct access to the IP layer.
    • The implementation of WiMAX technology has been moved to staging and is slated for removal in the future if no users are found who need WiMAX. WiMAX is no longer used in public networks, and the only driver supporting WiMAX in the kernel remains the outdated Intel 2400m driver. Support for WiMAX in the NetworkManager network configurator was discontinued in 2015. Currently, WiMAX has been almost completely displaced by technologies such as LTE, HSPA+, and Wi-Fi 802.11n.
    • Work has been done to optimize the performance of incoming TCP traffic processing in zerocopy mode, i.e., without additional copying into new buffers. For medium-sized traffic covering dozens or several hundreds of kilobytes of data, using zerocopy instead of recvmsg() is significantly more efficient. For example, the implemented changes allowed for a 60-70% increase in traffic processing efficiency in RPC style with messages of 32 KB when using zerocopy.
    • Pridané nové volania ioctl() na vytváranie sieťových mostov pokrývajúcich niekoľko kanálov PPP. Predložená funkcia umožňuje presun rámcov z jedného kanála na druhý, napríklad z PPPoE do relácie PPPoL2TP.
    • Pokračuje integrácia do jadra MPTCP (MultiPath TCP), rozšírenia protokolu TCP na zabezpečenie funkcie TCP pripojenia s dodávaním paketov súčasne viacerými trasami cez rôzne sieťové rozhrania priradené k rôznym IP adresám. V novej verzii bola implementovaná podpora možnosti ADD_ADDR na ohlásenie dostupných IP adresy na ktoré je možné pripojenie pri pridaní nových tokov k existujúcemu pripojeniu MPTCP.
    • Pridaná možnosť nastavenia akcií pri prekročení rozpočtu polly konfigurácie pripojení (busy-polling). Predtým dostupný režim SO_BUSY_POLL predpokladal prepínanie na softirq pri vyčerpaní rozpočtu. Pre aplikácie, ktoré musia naďalej používať polling, bola navrhnutá nová možnosť SO_PREFER_BUSY_POLL.
    • V IPv6 bola implementovaná podpora režimov SRv6 End.DT4 a End.DT6, používaných na vytváranie viacužívateľských IPv4 L3 VPN a zariadení VRF (Virtual Routing and Forwarding).
    • V Netfilter bola zjednotená implementácia výrazov set, čo umožnilo zabezpečiť možnosť určiť niekoľko výrazov pre každý prvok set-zoznamov.
    • Do bezdrôtového zásobníka 802.11 boli pridané API na konfiguráciu obmedzení výkonu SAR, ako aj parametrov AE PWE a HE MCS. V ovládači Intel iwlwifi bola pridaná podpora pásma 6GHz (Ultra High Band). V ovládači Qualcomm Ath11k bola pridaná podpora technológie rýchlej konfigurácie pripojenia FILS (Fast Initial Link Setup, štandardizovaná ako IEEE 802.11ai), umožňujúcej zbaviť sa oneskorení pri roamingu počas migrácie z jedného prístupového bodu na druhý.
  • Zariadenie
    • V ovládači amdgpu bola implementovaná podpora APU AMD "Green Sardine" (Ryzen 5000) a GPU "Dimgrey Cavefish" (Navi 2), ako aj počiatočná podpora APU AMD Van Gogh s jadrom Zen 2 a GPU RDNA 2 (Navi 2). Pridaná podpora nových identifikátorov APU Renoir (na báze CPU Zen 2 a GPU Vega).
    • V ovládači i915 pre grafické karty Intel bola implementovaná podpora technológie IS (Integer scaling) s realizáciou filtra na zväčšenie mierky zohľadňujúceho stav susedných pixelov (interpolačný Nearest-neighbor) na určenie farby chýbajúcich pixelov. Rozšírená podpora diskrétnych kariet Intel DG1. Bola implementovaná podpora technológie „Big Joiner“, ktorá je prítomná už od čipov Ice Lake / Gen11 a umožňuje použiť jeden transcoder na spracovanie dvoch tokov, napríklad na výstup na 8K obrazovku prostredníctvom jedného DisplayPort. Pridaný režim asynchrónneho prepínania medzi dvoma vyrovnávacími pamäťami vo video pamäti (async flip).
    • Do ovládača nouveau bola pridaná počiatočná podpora GPU NVIDIA založených na mikroarchitektúre „Ampere“ (GA100, GeForce RTX 30xx), zatiaľ obmedzená prostriedkami na správu video režimov.
    • Pridaná podpora protokolu 3WIRE, ktorý sa používa v LCD paneloch. Pridaná podpora panelov novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 a ABT Y030XX067A 3.0. Môžeme osobitne vyzdvihnúť podporu panela pre smartfóny OnePlus 6 a 6T, ktorá umožnila organizovať bootovanie na zariadeniach s nemodifikovaným jadrom.
    • Pridaná podpora prvého diskrétneho USB4 host kontrolleru Intel Maple Ridge.
    • Pridaná podpora zvukových kodekov Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI a XCVR, Realtek RT715 a Qualcomm SM8250.
    • Pridaná podpora ARM platforiem, zariadení a platforiem: 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 založený na Marvell Prestera 98DX3236, servery s Nuvoton NPCM750 BMC, Kontron i.MX8M Mini, Espressobin Ultra, „Trogdor“ Chromebook, Kobol Helios64, Engicam PX30.Core.
    • Zabudovaná podpora hernej konzoly Ouya založenej na NVIDIA Tegra 3.

Zároveň latinskoamerický Fond slobodného softvéru vytvoril variant úplne slobodného jadra 5.11 — Linux-libre 5.11-gnu, vyčisteného od prvkov firmvéru a ovládačov obsahujúcich neslobodné komponenty alebo úseky kódu, ktorých použitie je obmedzené výrobcom. V novej verzii bola vykonaná čistka ovládačov pre qat_4xxx (crypto), lt9611uxcm (dsi/hdmi most), ccs/smia++ (senzor), ath11k_pci, nxp audio transceiver a mhi pci controller. Aktualizovaný kód na čistenie blobov v ovládačoch a subsystémoch amdgpu, btqca, btrtl, btusb, i915 csr. Vypnuté nové bloby v m3 rproc, idt82p33 ptp clock a qualcomm arm64.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster