Vydání jádra Linux 7.1

Po dvou měsících vývoje vydal Linus Torvalds jádro. Linux 7.1. Mezi nejvýznamnější změny patří: nový ovladač ntfsplus, první fáze ukončení podpory CPU i486, odstranění starých ethernetových adaptérů, odstranění protokolů ISDN a AX.25, standardně povolení mechanismu Intel FRED, podpora obslužných rutin BPF v io_uring, optimalizace subsystému swap, podpora podplánovačů v sched_ext, I/O s nulovou kopií v ovladači ublk, "vypnutí" operace ioctl v Btrfs, dynamické přepínání režimu výkonu v ovladači amd-pstate, podpora xattr pro Unixové sockety.

Nová verze obsahuje 17275 2589 oprav od XNUMX XNUMX vývojářů,
Velikost záplaty je 57 MB (změny ovlivnily 13 528 souborů, přidaly 751 785 řádků kódu a odstranily 405 916 řádků). Předchozí verze obsahovala 15 624 oprav od 2 477 vývojářů a velikost záplaty je 56 MB. Asi 41 % všech změn ve verzi 7.1 se týká ovladačů zařízení, přibližně 12 % změn se týká aktualizací kódu specifického pro hardwarové architektury, 14 % se týká síťového zásobníku, 5 % souborových systémů a 3 % interních subsystémů jádra.

Hlavní nové funkce v jádře 7.1 (1, 2, 3):

  • Diskový subsystém, I/O a souborové systémy
    • Byla přijata nová implementace souborového systému NTFS, ntfsplus. Je založena na kódu klasického ovladače ntfs, který byl z jádra odstraněn. Starý ovladač byl přepracován, rozšířen o možnost zápisu dat a upraven pro podporu moderních funkcí, jako je použití paměťových stránek (folií) namísto struktury buffer_head. Nový ovladač implementuje línou alokaci bloků, která umožňuje vysoký výkon zápisu a sníženou fragmentaci. Knihovna iomap se používá pro operace čtení/zápisu s vyrovnávací pamětí, přímý vstup/výstup, mapování extentů a operace čtení/zápisu stránek. V testech iozone byl ovladač ntfsplus o 3–5 % rychlejší než ntfs3 při zápisu v jednovláknovém režimu a o 35–110 % rychlejší při použití 4 vláken. Rychlost čtení ntfsplus a ntfs3 je přibližně stejná. Ovladač ntfs3 zůstává v jádře a byl aktualizován s opravami a drobnými vylepšeními.
    • Přidána podpora pro generování a ověřování dat kontroly integrity T10 na úrovni souborového systému, nikoli na úrovni blokového zařízení, což zlepšuje výkon operací čtení.
    • Ovladač blokového zařízení ublk, který umožňuje přesun specifické logiky do procesu v uživatelském prostoru, nyní podporuje vstup/výstup přes sdílenou paměť bez kopírování dat mezi vyrovnávacími pamětí (režim nulové kopie).
    • Pro samošifrovací bloková zařízení SED-OPAL byly přidány příkazy ioctl pro řízení režimu pro jednoho uživatele a byl implementován příkaz STACK_RESET.
    • Btrfs oznámil stabilní podporu pro operaci ioctl „shutdown“, která umožňuje souborovému systému přejít do stavu, ve kterém se pokouší ukončit již spuštěné operace, ale blokuje všechny nové operace.
    • exfat implementuje možnost rezervovat prázdné oblasti voláním funkce fallocate().
    • Souborový systém CIFS nyní podporuje vytváření dočasných souborů s příznakem O_TMPFILE.
    • Systémové volání fsmount() nyní obsahuje volbu FSMOUNT_NAMESPACE, která vytváří nový jmenný prostor přípojného bodu pro připojený souborový systém. Do systémových volání clone3() a unshare() byly přidány příznaky, které vracejí nový jmenný prostor přípojného bodu obsahující pouze připojený, prázdný stub souborového systému založený na nullfs a ovladač fs-dax s rozhraním souborového systému pro zařízení DAX (přímý přístup).
    • NFS server nyní obsahuje ochranu proti útokům hrubou silou na souborové deskriptory, která je implementována kryptografickým podepisováním deskriptorů. Tato ochrana se aktivuje pomocí volby připojení sign_fh.
    • Byl přidán symbolický ovladač fs-dax, který poskytuje rozhraní pro interakci se zařízeními DAX (Direct Access), jež podporují obcházení mezipaměti stránek. Toto rozhraní je nezbytné pro integraci souborového systému famfs v paměti do jádra.
    • Souborový systém Ceph implementuje sběr metrik I/O pro každý svazek.
  • Paměťové a systémové služby
    • První kolo změn zaměřených na odstranění podpory procesorů i486 bylo přijato. Z Kconfig byly odstraněny možnosti pro sestavení jádra s podporou procesorů 486DX, 486SX a AMD ELAN (CONFIG_M486, CONFIG_M486SX a CONFIG_MELAN) a z Makefile byly odstraněny možnosti kompilace pro systémy i486 (-march=i486). Samotný kód pro podporu procesorů i486 je stále v jádře, ale sestavení pro takové systémy nyní bude vyžadovat záplaty do makefilů. Důvodem pro odstranění podpory procesorů i486 je zbavit jádro složitého kódu emulujícího určité hardwarové operace, jako je CX8 (porovnání a výměna 8 bajtů) a TSC (čítač cyklů CPU používaný v plánovači úloh).
    • Ovladač amd-pstate, používaný pro správu napájení v systémech s procesory AMD, nyní dynamicky přepíná nastavení výkonu a upravuje chování správy napájení v závislosti na tom, zda je systém napájen z baterie nebo ze zdroje napájení. Při připojení ke zdroji napájení se nyní aktivuje režim „performance“, zatímco při napájení z baterie se aktivuje režim „balance_performance“.
    • Mechanismus Intel Flexible Return and Event Delivery (FRED) je ve výchozím nastavení povolen, což zlepšuje efektivitu a spolehlivost doručování událostí na nízké úrovni. Výkon a latence se zlepšují vracením událostí pomocí instrukce procesoru IRET namísto jejich předávání přes tabulku deskriptorů přerušení (IDT). Spolehlivost se zlepšuje oddělením příjmů událostí v kontextu jádra a uživatele, ochranou před vnořeným prováděním NMI a uložením všech registrů CPU souvisejících s výjimkami v rozšířeném zásobníku.
    • Subsystém perf byl aktualizován, aby podporoval jednotky pro monitorování paměti Performance Monitoring Unit (PMU) používané v SoC NVIDIA Tegra410.
    • Operace Futexu na systémech ARM byly zrychleny využitím instrukcí Arm 9.6 LSUI, které umožňují jádru přístup k paměti uživatelského prostoru bez předchozího vypnutí ochranného režimu PAN (Privileged Access Never).
    • V systémech s procesory ARM byla vylepšena podpora pro rozšíření architektury instrukční sady Memory System Resource Partitioning and Monitoring (MPAM) s možností jeho použití v uživatelském prostoru pro správu zdrojů prostřednictvím mechanismu resctrl. MPAM označuje každý přístup k paměti identifikátorem oddílu (PARTID) a identifikátorem monitorovací skupiny (PMG). Pomocí PARTID můžete omezit spotřebu zdrojů, jako je šířka pásma paměti nebo velikost mezipaměti, a zabránit tak, aby jedna skupina úloh spotřebovávala všechny zdroje. V kontextu monitorování lze kombinaci PMG a PARTID použít ke sledování spotřeby paměťových zdrojů při specifických úlohách.
    • Přidána podpora pro režim reálného času (PREEMPT_RT) na 32bitových procesorech ARM. Dříve byla podpora PREEMPT_RT poskytována pro architektury x86 a x86-64, ARM64, RISC-V a LoongArch.
    • Do systémového volání clone3() byly přidány nové příznaky: CLONE_NNP — zabraňuje nově vytvořenému procesu v získávání nových oprávnění; CLONE_AUTOREAP — automaticky ukončí proces, místo aby jej přeměnil na zombie proces, dokud nadřazený proces neprovede funkci wait();
      CLONE_PIDFD_AUTOKILL - ukončí podřízený proces, pokud je uzavřen handle pidfd, který je s ním spojen (například při ukončení nadřazeného procesu).
    • Pro každý modul jádra byl do adresáře /sys/module přidán soubor import_ns, který obsahuje seznam importovaných jmenných prostorů symbolů.
    • Asynchronní I/O systém io_uring nyní podporuje použití subsystému BPF k vytváření obslužných rutin. Například hlavní smyčku odesílání lze nahradit programem BPF.
    • Subsystém BPF má modernizovanou analýzu využití zásobníku, což výrazně zrychluje kontrolu mnoha programů BPF ověřovačem.
    • Subsystém hrtimer (časovač s vysokým rozlišením) byl přepsán pro optimalizaci výkonu. Plánovač úloh nyní může používat časovače s vysokým rozlišením bez obětování výkonu namísto méně přesných časovačů.
    • Pokračování migrace změn z verze Rust for branchLinux, související s použitím jazyka Rust jako druhého jazyka pro vývoj ovladačů a modulů jádra (podpora Rustu není ve výchozím nastavení aktivní a nevede k tomu, že by Rust byl zahrnut do seznamu povinných závislostí sestavení jádra). Až do verze 1.85 (dodáváno v Debian 13) Zvýšené požadavky na verzi Rust potřebnou pro sestavení komponent jádra. Přidána experimentální volba Kconfig CONFIG_RUST_INLINE_HELPERS pro vkládání interpolací jazyka C do kódu Rust během kompilace (tato optimalizace zlepšila výkon ovladače nulových bloků o 2 %). Přidáno makro 'const_assert!'. Rozšířeny možnosti modulů 'sizes', 'clk', 'ptr', 'sync' a 'error'.
    • Mechanismus SCHED_EXT, který umožňuje použití BPF k vytváření plánovačů úloh CPU, byl doplněn o počáteční možnost vytvářet vnořené plánovače (podplánovače), které umožňují každé kontrolní skupině používat vlastní plánovač úloh.
    • Optimalizace subsystému swap pokračovaly. Stará struktura swap_map byla odstraněna a nahrazena mechanismem „Swap Table“. Tato změna zlepšila výkon a snížila spotřebu paměti ve subsystému swap.
    • Subsystém DAMON (Data Access MONitor), který umožňuje sledovat přístup procesu k datům v paměti RAM (například lze zjistit, ke kterým oblastem paměti proces přistupoval a které oblasti paměti zůstaly nevyužité), byl doplněn o podporu různých algoritmů automatického ladění kvót.
    • Trasovací subsystém implementuje koncept externích kruhových vyrovnávacích pamětí, které umožňují načítání trasovacích dat z virtuální strojeTato funkce je povolena v hypervizorech. KVM a nVHE pro přenos trasovacích dat z hosta na hostitelskou stranu.
    • Subsystém RV (Runtime Verification), určený ke kontrole správného provozu vysoce spolehlivých systémů, byl doplněn o komponenty pro monitorování „zastavení“ pro sledování úloh, jejichž provádění je dočasně pozastaveno nebo blokováno, a „termín“ pro analýzu chování plánovače úloh.
  • Virtualizace a bezpečnost
    • Ve výchozím nastavení je nastaven příznak PROC_MEM_FORCE_PTRACE, který umožňuje obejít přístupová práva procesů k paměti prostřednictvím souboru /proc/PID/mem pouze pro procesy, které pro ladění používají systémové volání ptrace().
    • Přidána nová sada hooků pro LSM moduly (Linux Bezpečnostní modul), který zjednodušuje implementaci politik pro souborové systémy založené na zásobníku, jako je overlayfs. LSM také přidal hook pro správu přístupu k unixovým socketům, který se používá v modulu Landlock LSM k přiřazení přístupových politik unixovým socketům.
    • Vestavěná krypto knihovna lib/crypto, která poskytuje jednodušší a rychlejší funkce než tradiční krypto API, byla aktualizována a nyní podporuje algoritmy AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH a SM3. Byla přidána dokumentace k knihovně lib/crypto.
    • Pro architekturu AArch64 jsme implementovali režim pKVM (Protected KVM) pro striktní anonymní izolaci paměti pomocí virtualizačních rozšíření. V tomto režimu jsou stránky paměti hosta vyloučeny z tabulky virtuálních adres hostitelského systému.
    • Hypervizor KVM nyní podporuje pátou verzi virtuálního generického řadiče přerušení ARM (VGICv5).
  • Síťový subsystém
    • Pro Unixové sockety vytvořené funkcí socket() byla implementována podpora rozšířených atributů souborů (xattr) "user.*". Jednou z oblastí použití je označování Unixových socketů používaných pro Varlink IPC pomocí rozšířených atributů, což umožňuje jejich odlišení od ostatních pro inspekci a ladění IPC pomocí programů BPF. V systemd-journald jsou rozšířené atributy určeny k definování formátu protokolu pro socket /dev/log.
    • Podpora protokolu UDP-Lite (RFC 3828), který umožňuje doručování paketů s neplatnými kontrolními součty v naději, že například částečně poškozená audio a video data lze obnovit na úrovni kodeku, byla odstraněna. Tento protokol byl odstraněn, protože jej nikdo nepoužívá.
    • Možnost sestavit IPv6 stack jako modul jádra byla odstraněna. Tato možnost se v praxi nepoužívala (IPv6 je buď integrován v jádru, nebo zcela zakázán), ale komplikovala údržbu, protože při sestavování IPv6 jako modulu jádra (CONFIG_IPV6=m) je mnoho subsystémů nuceno přidávat nepotřebné obslužné rutiny v případě, že je modul IPv6 uvolněn.
  • Оборудование
    • Ovladač AMDGPU obsahuje nový grafický engine (DC) pro APU řady AMD HD 7000 (Sea Islands, GCN 1.1).
    • Ovladač Nouveau přidává počáteční podporu pro grafickou kartu NVIDIA GA100 založenou na mikroarchitektuře Ampere.
    • Pokračovaly práce na ovladači Xe DRM (Direct Rendering Manager) pro GPU založené na architektuře Intel Xe, která se používá v grafických kartách řady Intel Arc a integrovaných grafických kartách, počínaje procesory Tiger Lake. Byla přidána podpora grafického subsystému procesorů Intel Nova Lake-P. Byly implementovány objekty Purgeable Buffer Objects.
    • Pokračovali jsme v integraci komponent ovladače Nova pro grafické karty NVIDIA vybavené firmwarem GSP, který se používá od řady NVIDIA GeForce RTX 2000 založené na mikroarchitektuře Turing. Ovladač je napsán v jazyce Rust. Byla přidána počáteční podpora pro grafické karty založené na mikroarchitektuře Turing.
    • Přidán ovladač DRM corebootdrm pro výstup grafiky přes framebuffer firmwaru založeného na CoreBootu.
    • Přidána podpora pro následující ASoC: AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP a WM8962. Vylepšená podpora pro USB audio zařízení: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow.
      PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
    • Přidán ovladač yogafan pro sledování otáček ventilátoru na noteboocích Lenovo Yoga, Legion a IdeaPad.
    • Přidána podpora pro desky, SoC a zařízení ARM: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 a ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
    • Podpora pro řadiče AHCI SATA a PCIe používané v SoC Baikal-T1, stejně jako pro ovladače časovače, paměti, fyzikální mapy, sběrnice, hwmon, dwc a bt1-rom, byla odstraněna. Důvodem odstranění je nedostatečná podpora a neúplná integrace komponent platformy Baikal do jádra, jelikož výroba v Rusku byla ukončena v listopadu 2025.
    • Odstraněno 12 ovladačů pro ethernetová zařízení s rozhraními ISA a PCMCIA, vydaných před rokem 2002, u kterých nebyl nalezen žádný uživatel, který by je používal v produkčních systémech. Také odstraněno z jádra.
      Byly odstraněny ovladače ISDN subsystému, implementace protokolů AX.25, CAIF a Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), ovladače yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport a logibm (busmouse). Důvodem odstranění byl nedostatek aktivních správců uprostřed rostoucího počtu chyb identifikovaných nástroji syzbot a umělé inteligence, které nikdo nebyl ochoten opravit, takže veškeré břemeno opravování závažných problémů leželo na správcích základních síťových subsystémů jádra. Celkem bylo odstraněno přes 140 000 řádků kódu.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster