Izdaja jedra Linux 7.1

Po dvoh mesiacoch vývoja Linus Torvalds predstavil vydanie jadra Linux 7.1. Medzi najvýraznejšie zmeny patrí nový ovládač ntfsplus, prvá fáza ukončenia podpory CPU i486, odstránenie starých Ethernet adaptérů, odstránenie protokolov ISDN a AX.25, zapnutie mechanizmu Intel FRED ako predvolene, podpora spracovateľov BPF v io_uring, optimalizácia subsystému stránkovania, podpora subsystémov v sched_ext, vstup/výstup v režime zero-copy v ovládači ublk, ioctl operácia „shutdown“ v Btrfs, dynamické prepínanie režimu výkonu v ovládači amd-pstate, podpora xattr pre Unix sokety.

Do novej verzie bolo prijatých 17275 opráv od 2589 vývojárov,
veľkosť patchu je 57 MB (zmeny sa dotkli 13528 súborov, pridalo sa 751785 riadkov kódu, odstránilo 405916 riadkov). V predchádzajúcej verzii bolo 15624 opráv od 2477 vývojárov, veľkosť patchu bola 56 MB. Približne 41% všetkých zmien v 7.1 je spojených s ovládačmi zariadení, približne 12% zmien sa týka aktualizácie kódu špecifického pre hardvérové architektúry, 14% je spojených so sieťovým zásobníkom, 5% s súborovými systémami a 3% s internými subsystémami jadra.

Hlavné novinky v jadre 7.1 (1, 2, 3):

  • Дисковая подсистема, ввод/вывод и файловые системы
    • Do jadra bola prijatá nová implementácia súborového systému NTFS – ntfsplus, založená na kóde odstráneného jadra klasického ovládača ntfs. Starý ovládač bol prepracovaný, rozšírený o schopnosť zapisovania dát a prispôsobený na podporu súčasných funkcií, ako je použitie zbierok stránok pamäte (folios) namiesto štruktúry buffer_head. V novom ovládači bola implementovaná oneskorená alokácia blokov, čo umožnilo dosiahnuť vysokú výkonnosť operácií zápisu a zníženie fragmentácie. Pre vyrovnávacie operácie zápisu/čítenia, priame vstupy/výstupy, mapovanie extenzív a operácie stránkového zápisu/čítenia bola použitá knižnica iomap. V testoch iozone sa ovládač ntfsplus ukázal byť o 3-5% rýchlejší než ntfs3 pri zápise v jednovláknovom režime a o 35-110% pri použití 4 vlákien. Rýchlosť čítania ntfsplus a ntfs3 je na približne rovnakej úrovni. Ovládač ntfs3 zostáva súčasťou jadra a boli do neho zapracované opravy a malé zlepšenia.
    • Dodana je podpora za generiranje in preverjanje podatkov o integriteti T10 na ravni datotečnega sistema, namesto na ravni blokovnega naprava, kar omogoča povečanje zmogljivosti bralnih operacij.
    • V gonilniku blokovnih naprav ublk, ki omogoča premik specifične logike na stran procesa v uporabniškem prostoru, je dodana podpora za vhod/izhod preko deljene pomnilnika brez kopiranja podatkov med predpomnilniki (režim zero-copy).
    • Za samodejno šifrirane blokovne naprave SED-OPAL so dodani ioctl za upravljanje v načinu Enotnega uporabnika in implementirana je ukazna funkcija STACK_RESET.
    • V Btrfs je postala stabilna podpora za ioctl operacijo 'shutdown', ki omogoča prehod datotečnega sistema v stanje, kjer se poskuša končati izvajanje že zagnanih operacij, hkrati pa se blokirajo vse nove operacije.
    • V exfat je bila implementirana možnost rezervacije praznih območij preko klica fallocate().
    • V datotečnem sistemu CIFS je dodana podpora za ustvarjanje začasnih datotek s flagom O_TMPFILE.
    • V sistemski klic fsmount() je dodana možnost FSMOUNT_NAMESPACE, ki ustvari novo ime prostora za točke montaže za montirani datotečni sistem. V sistemske klice clone3() in unshare() so dodani zastavice za vrnitev novega imena prostora za točke montaže, ki vsebuje samo montirano prazno FS-zastavo na osnovi nullfs, gonilnik fs-dax z FS vmesnikom za naprave DAX (Direct Access).
    • V NFS strežniku je bila dodana zaščita pred napadi za dostop do datotečnih descriptorjev, ki je implementirana preko overitve descriptorjev s kriptografsko digitalno podpisom. Zaščita se vključi preko možnosti montaže sign_fh.
    • Dodano je simbolno gonilo fs-dax, ki omogoča vmesnik za interakcijo z napravami DAX (Direct Access), ki podpirajo delovanje ob obhodu stranišnjega predpomnilnika. Ta vmesnik je potreben za integracijo v jedro datotečnega sistema famfs, ki se nahaja v pomnilniku.
    • V datotečnem sistemu Ceph je bila realizirana zbirka metrik o vhodu/izhodu v povezavi s podsektori.
  • Pomnilnik in sistemske storitve
    • Prva serija spremenb za prenehanje podpore za procesorje i486 je bila sprejeta. Možnosti za gradnjo jedra s podporo za procesorje 486DX, 486SX in AMD ELAN (CONFIG_M486, CONFIG_M486SX in CONFIG_MELAN) so bile odstranjene iz Kconfig-a, prav tako so bile možnosti za kompilacijo za sisteme i486 (-march=i486) izločene iz Makefile-a. Koda za dejansko podporo delovanja na procesorjih i486 je še vedno ostala v jedru, vendar bo sedaj gradnja za takšne sisteme zahtevala uporabo popravkov na gradbenih datotekah. Razlogi za odstranitev podpore procesorjev i486 izhajajo iz želje, da se jedro razbremeni zapletenega kode, ki simulira nekatere strojne operacije, kot sta CX8 (primerjaj in zamenjaj 8 bajtov) in TSC (števljenje ciklov CPU, uporabljeno v schedulerju nalog).
    • V gonilniku amd-pstate, ki se uporablja za upravljanje porabe energije na sistemih s procesorji AMD, je bila uvedena dinamična preklapljanje nastavitev zmogljivosti in spremembo vedenja upravljanja napajanja glede na delovanje iz omrežnega napajanja ali baterije. Ob priključku na omrežje se sedaj aktivira način „performance”, pri delovanju iz baterije pa „balance_performance”.
    • Privzeto je bil uveden mehanizem Intel FRED (Flexible Return and Event Delivery), ki omogoča povečanje učinkovitosti in zanesljivosti dostavljanja informacij o nizkoobčutljivih dogodkih. Povečanje zmogljivosti in zmanjšanje zakasnitev se doseže s pomočjo vrnitve dogodkov z uporabo procesorske ukaze IRET namesto prenosa dogodkov prek tabele IDT (Interrupt Descriptor Table). Povečanje zanesljivosti se doseže z ločenim obravnavanjem prihoda dogodka v kontekstu jedra in kontekstu uporabnika, zaščito pred vstavljenim izvajanjem NMI in shranjevanjem vseh registrov CPU povezanih z izjemo v razširjenem skladu.
    • V podsystem perf je bila dodana podpora za blokiranje enot za spremljanje zmogljivosti pomnilnika (PMU - Performance Monitoring Unit), ki se uporabljajo v SoC NVIDIA Tegra410.
    • Izvedba operacij futex je bila pospešena na sistemih ARM, zahvaljujoč uporabi ukazov Arm 9.6 LSUI, ki jedru omogočajo dostop do pomnilnika uporabniškega prostora brez predhodnega izklopa zaščitnega načina PAN (Privileged Access Never).
    • Na sistemih s procesorji ARM je izboljšana podpora za razširitev arhitekture MPAM (Memory System Resource Partitioning and Monitoring) in dodana možnost njene uporabe v uporabniškem prostoru za upravljanje virov preko mehanizma resctrl. MPAM omogoča označevanje vsakega dostopa do pomnilnika z identifikatorjem sekcije (PARTID, Partition ID) in identifikatorjem skupine za spremljanje (PMG, Monitoring Group ID). V povezavi s PARTID je mogoče omejiti porabo virov, kot so propustnost pomnilnika ali velikost predpomnilnika, da določena skupina nalog ne zavzame vseh virov. V kontekstu spremljanja je možno kombinacijo PMG in PARTID uporabiti za sledenje porabi pomnilnika pri določenih vrstah obremenitev.
    • Dodana je bila možnost uporabe realnočasovnega načina (PREEMPT_RT) na 32-bitnih procesorjih ARM. Prej je bila podpora za PREEMPT_RT zagotovljena za arhitekture x86 in x86-64, ARM64, RISC-V ter LoongArch.
    • V sistemski klic clone3() so dodane nove zastavice: CLONE_NNP — prepoved pridobivanja novih privilegijev v ustvarjenem procesu; CLONE_AUTOREAP — samodejno zaključitev procesa namesto njegove preobrazbe v zombie proces do klica funkcije wait() s strani nadrejenega procesa;
      CLONE_PIDFD_AUTOKILL — zaključitev otroškega procesa v primeru zaprtja povezanega deskriptorja pidfd (na primer ob končanju nadrejenega procesa).
    • Za vsak modul jedra je v imenik /sys/module dodana datoteka import_ns, ki vsebuje seznam uvoženih prostorov imen simbolov (symbol namespace).
    • V sistem za asinhrono vhod/izhod io_uring je dodana podpora za uporabo podsystems BPF za ustvarjanje obdelovalcev. Na primer, lahko zamenjate osnovni cikel usklajevanja z BPF programom.
    • V podsystemu BPF je bila modernizirana analiza uporabe sklada, kar je močno pospešilo preverjanje številnih BPF programov s strani preverjevalnika.
    • Z namenom optimizacije zmogljivosti je bila pr rewritten sistemska podpora hrtimer (high resolution timer). Načrtovalnik nalog zdaj lahko uporablja visokoločljive časovnike brez izgube zmogljivosti namesto manj natančnih časovnikov.
    • Nadaljuje se prenos sprememb iz veje Rust-for-Linux, povezanih z uporabo jezika Rust kot drugega jezika za razvoj gonilnikov in modulov jedra (podpora za Rust ni privzeta in ne vodi do vključitve Rust-a med obvezne gradbene odvisnosti jedra). Do različice 1.85 (dostopne v Debianu 13) so se povečale zahteve po različici Rust-a, potrebni za gradnjo komponent jedra. Dodana je eksperimentalna Kconfig možnost CONFIG_RUST_INLINE_HELPERS za vgrajevanje C-ovojkov v Rust kodo med prevajanjem (optimizacija je pospešila delovanje blokovnega gonilnika null za 2%). Dodan je makro ‘const_assert!’. Razširjene so možnosti modulov ‘sizes’, ‘clk’, ‘ptr’, ‘sync’, ‘error’.
    • V mehanizem SCHED_EXT, ki omogoča uporabo BPF za ustvarjanje načrtovalnikov CPU, je dodana začetna možnost ustvarjanja vgrajenih načrtovalnikov (sub-scheduler), s pomočjo katerih lahko za vsako cgroup uporabi svoj lasten načrtovalnik nalog.
    • Optimiranje podsystems za izmenjavo (swap) se nadaljuje. Stara struktura swap_map je odstranjena in zamenjana z mehanizmom 'Swap Table'. To je povečalo zmogljivost in zmanjšalo porabo pomnilnika v podsystems za izmenjavo.
    • V podsystem DAMON (Data Access MONitor), ki omogoča sledenje dostopu procesa do podatkov v pomnilniku (na primer, lahko ugotovite, do katerih predelov pomnilnika je dostopal proces, in katera območja pomnilnika so ostala neizkoriščena), je dodana podpora za različne algoritme samodejnega nastavljanja kvot.
    • V podsystemu sledenja je bila uvedena koncept zunanjih obročiških pomnilnikov, ki omogočajo pridobivanje podatkov sledenja iz virtualnih naprav. Možnost je bila vključena v hipervizorje KVM in nVHE za prenos podatkov sledenja iz gostujočega sistema na stran gostitelja.
    • V podsystem RV (Runtime Verification), namenjenem za preverjanje pravilnosti delovanja visoko zanesljivih sistemov, so dodane komponente nadzora 'stall' za sledenje nalogam, katerih izvajanje je začasno ustavljeno ali blokirano, in 'deadline' za analizo obnašanja načrtovalnika nalog.
  • Virtualizacija in varnost
    • Privzeto je nastavljen zastavica PROC_MEM_FORCE_PTRACE, ki omogoča obhod pravic dostopa do pomnilnika procesa preko datoteke /proc/PID/mem le za procese, ki za odpravljanje napak uporabljajo sistemski klic ptrace().
    • Dodana je nova skupina hook-ova za LSM module (Linux Security Module), koja olakšava implementaciju pravila za stekaste datotečne sisteme kao što je overlayfs. U LSM je takođe dodan hook za upravljanje pristupom Unix soketima, koji se koristi u LSM modulu Landlock za postavljanje pravila pristupa Unix soketima.
    • U ugrađenu kriptografske biblioteku lib/crypto, koja pruža jednostavnije i brže funkcije nego tradicionalni crypto API, dodata je podrška za algoritme AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH i SM3. Dodana je dokumentacija za lib/crypto.
    • Implementiran je pKVM (Protected KVM) režim za strogu izolaciju anonimne memorije koristeći proširenja virtualizacije za AArch64 arhitekturu. U ovom režimu, stranice memorije gostitelja isključene su iz tabele virtuelnih adresa host sistema.
    • Podržana je peta verzija virtuelnog prekidačkog kontrolera ARM (VGICv5 — ARM Virtual Generic Interrupt Controller v5) u KVM hipervizoru.
  • Mrežna podsistem
    • Za unix sokete koje kreira funkcija socket() implementirana je podrška za proširene atribute datoteka (xattr) „user.*“. Od oblasti primene navodi se označavanje putem proširenih atributa Unix soketa koji se koriste za IPC Varlink, kako bi se izdvojili iz opće mase za inspekciju i debagovanje IPC-a pomoću BPF programa. U systemd-journald, prošireni atributi su nameravani za određivanje formata dnevnika u vezi sa soketom /dev/log.
    • Uklonjena je podrška za UDP-Lite protokol (RFC 3828), koji dozvoljava isporuku paketa s netačnom kontrolnom sumom uz pretpostavku da se, na primer, delimično oštećeni audio i video podaci mogu obnoviti na nivou kodeka. Protokol je uklonjen jer se niko ne koristi njime.
    • Uklonjena je mogućnost kompilacije IPv6 steka u obliku modula jezgra, koja se nije primenjivala u praksi (IPv6 se ili ugrađuje u jezgro ili se potpuno isključuje), ali je otežavala održavanje jer su pri kompilaciji IPv6 kao modula jezgra (CONFIG_IPV6=m), mnoge pod-sistema morale dodavati beskorisne obradnike u slučaju da se IPv6 modul isključi.
  • Oprema
    • U AMDGPU drajveru je uključen novi displej motor (DC) za APU AMD serije HD 7000 (Sea Islands, GCN 1.1).
    • U Nouveau drajveru je dodata početna podrška za GPU NVIDIA GA100 baziran na mikroarhitekturi Ampere.
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. Добавлена поддержка графической подсистемы процессоров Intel Nova Lake-P. Реализованы очищаемые буферные объекты (Purgeable Buffer Objects).
    • Integracija komponent gonilnika Nova za GPU NVIDIA, opremljenih z GSP-firmware, se nadaljuje in se uporablja od serije NVIDIA GeForce RTX 2000 na osnovi mikroarhitekture Turing. Gonilnik je napisan v jeziku Rust. Dodana je začetna podpora za GPU na osnovi mikroarhitekture Turing.
    • Добавлен DRM-драйвер corebootdrm для вывода графики через фреймбуфер прошивок на базе CoreBoot.
    • Добавлена поддержка звуковых ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP и WM8962. Улучшена поддержка звуковых устройств с интерфейсом USB: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
      Добавлен драйвер yogafan для отслеживания скорости вращения кулера на ноутбуках Lenovo Yoga, Legion и IdeaPad.
    • Добавлена поддержка ARM-плат, SoC и устройств: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 и ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
    • Удалена поддержка применяемых в SoC Baikal-T1 контроллеров AHCI SATA и PCIe, а также драйверов таймера, памяти, physmap, шины, hwmon, dwc и bt1-rom. В качестве причины удаления называется отсутствие сопровождения и незавершённая интеграция в состав ядра компонентов платформы Baikal, производство которой в РФ свернули в ноябре 2025 года.
    • Удавлены 12 драйверов для Ethernet-устройств с интерфейсами ISA и PCMCIA, выпускавшихся до 2002 года, для которых не нашлись пользователи, применяющие их в рабочих системах. Также из ядра исключены подсистема ISDN, реализации протоколов AX.25, CAIF и Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), драйверы yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport и logibm (busmouse). Причиной удаления стало отсутствие активных сопровождающих на фоне увеличения числа выявляемых при помощи syzbot и AI-инструментов ошибок, которые никто не берётся исправлять и вся нагрузка nа устранение серьёзных проблем ложится на сопровождающих основные сетевые подсистемы ядра. Всего удалено более 140 тысяч строк кода.
    • После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 7.1.
      🥇Релиз ядра Linux 7.1 | ProHoster

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster