A Linux 7.1 kernel kiadása

Két hónapnyi fejlesztés után Linus Torvalds bemutatta a Linux 7.1 kernel kiadását. A legszembetűnőbb változások között szerepel: az új ntfsplus driver, az i486 CPU támogatásának leállításának első szakasza, régi Ethernet adapterek eltávolítása, ISDN és AX.25 protokollok eltávolítása, az Intel FRED mechanizmus alapértelmezett bekapcsolása, BPF feldolgozók támogatása az io_uring-ban, a swap alrendszer optimalizálása, a sched_ext ben a szubütemezők támogatása, zero-copy I/O a ublk driverben, a Btrfs „shutdown” ioctl művelet, a teljesítmény üzemmód dinamikus váltása az amd-pstate driverben, xattr támogatás a Unix socketekhez.

Az új verzió 17275 javítást tartalmaz 2589 fejlesztőtől,
a patch mérete — 57 MB (a változások 13528 fájlt érintenek, 751785 sor kód került hozzáadásra, 405916 sor törlésre került). Az előző kiadásban 15624 javítás volt 2477 fejlesztőtől, a patch mérete — 56 MB. A 7.1-es verzióban bemutatott összes változás körülbelül 41%-a eszközmeghajtókhoz kapcsolódik, körülbelül 12% a hardverarchitektúrákhoz specifikus kód frissítésével, 14% a hálózati stackhez, 5% a fájlrendszerekhez és 3% a kernel belső alrendszereivel kapcsolatos.

A 7.1 kernel legfontosabb újításai (1, 2, 3):

  • Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
    • Új NTFS fájlrendszer megvalósítását, az ntfsplus-t fogadták el, amely a klasszikus ntfs driverből eltávolított kódon alapul. A régi drivert átírták, bővítették az adatok írásának lehetőségével és modern funkciók támogatására alkalmazták, mint például a memóriaoldalak (folios) használata a buffer_head struktúra helyett. Az új driver lehetővé tette a késleltetett blokkallokálást, ami a magas írási teljesítményt és a töredezés csökkentését eredményezte. A pufferekkel ellátott írási/olvasási, közvetlen I/O, kiterjedés mapping és oldali írási/olvasási műveletekhez az iomap könyvtárat használták. Az iozone tesztek során az ntfsplus driver 3-5%-kal gyorsabb volt az ntfs3-nál egyszálú módban, és 35-110%-kal gyorsabb a 4 szál használatakor. Az ntfsplus és az ntfs3 olvasási sebessége körülbelül azonos szinten áll. Az ntfs3 driver továbbra is a kernel része marad, és kisebb javításokat és fejlesztéseket kapott.
    • Hozzáadták a T10 integritás-ellenőrzési adatok generálásának és érvényesítésének támogatását a fájlrendszer szintjén, nem pedig a blokk eszköz szintjén, ami lehetővé teszi az olvasási műveletek teljesítményének növelését.
    • Az ublk blokk eszköz drivert kiegészítették a felhasználói térbe való specifikus logika áthelyezésének támogatásával, és lehetővé tették a megosztott memórián keresztüli I/O-t másolás nélkül a pufferek között (zero-copy módban).
    • A self-encrypting blokk eszközök (SED-OPAL) számára ioctl hívások kerültek hozzáadásra az Egyfelhasználói üzemmód vezérlésére, valamint megvalósult a STACK_RESET parancs.
    • A Btrfs-ben stabilnak nyilvánították az ioctl művelet "shutdown" támogatását, amely lehetővé teszi a fájlrendszer állapotának módosítását, hogy megkísérelje befejezni a már megkezdett műveleteket, miközben blokkolja az összes új műveletet.
    • Az exfat-ban lehetőséget valósítottak meg üres területek lefoglalására a fallocate() híváson keresztül.
    • A CIFS fájlrendszerben hozzáadták a TEMPFILE zászlóval rendelkező ideiglenes fájlok létrehozásának támogatását.
    • Az fsmount() rendszerhívásba hozzáadták az FSMOUNT_NAMESPACE opciót, amely új névtér létrehozását teszi lehetővé az előtét fájlok számára a csatlakoztatott fájlrendszerhez. A clone3() és unshare() rendszerhívásokhoz zászlók kerültek hozzáadásra az új névtér visszaadásához, amely csak a nullfs alapú csatlakoztatott üres fájóvcsapda fájlrendszert tartalmazza, szintén a DAX (Direct Access) eszközökhöz kapcsolódó fs-dax drivert.
    • Az NFS szerverhez hozzáadták a fájl leírók ellenére irányuló támadásokkal szembeni védelmet, amelyet a leírók kriptográfiai aláírása végez. A védelem a sign_fh csatolási opcióval aktiválható.
    • Hozzáadtak egy karakter alapú drivert a fs-dax-hoz, amely interfészt biztosít a DAX (Direct Access) eszközökkel való interakcióhoz, amelyek a lapozási gyorsítótáron keresztüli működést támogatják. Ez az interfész elengedhetetlen a famfs fájlrendszer kernelbe való integrációjához, amely az operatív memória alatt található.
    • A Ceph fájlrendszerben megvalósították az I/O metrikák gyűjtését szekciókhoz való kötődéssel.
  • Memória és rendszerszolgáltatások
    • Elfogadták az első sorozat módosításait az i486 processzorok támogatásának megszüntetésére. A Kconfig fájlból eltávolították a 486DX, 486SX és AMD ELAN processzorok támogatását szolgáló lehetőségeket (CONFIG_M486, CONFIG_M486SX és CONFIG_MELAN), a Makefile-ból pedig ki lettek zárva az i486 rendszerekhez tartozó fordítási opciók (-march=i486). Az i486 processzorokra való valódi működés támogatásának kódja egyelőre megmaradt a kernelben, de az ilyen rendszerekhez való fordítás mostantól patch-ek alkalmazását fogja megkövetelni a fordítási fájlokhoz. Az i486 processzorok támogatásának eltávolításának indoka az volt, hogy meg akarják szabadítani a kernelt a bonyolult kódtól, amely bizonyos hardveres műveleteket, mint például a CX8 (8 bájt összehasonlítás és csere) és a TSC (CPU ciklusszámláló, amelyet a feladatütemező használ) emulált.
    • Az amd-pstate illesztőprogramban, amelyet az AMD processzorok energiaszükségletének kezelésére használnak, megvalósították a teljesítménybeállítások dinamikus váltását és a tápegység vagy akkumulátor működésével összhangban álló energiaellátás kezelésének viselkedését. Állandó csatlakozás esetén mostantól a "performance" üzemmód aktiválódik, míg akkumulátorról való működés esetén a "balance_performance" üzemmód lép érvénybe.
    • Alapértelmezés szerint aktiválva lett az Intel FRED (Flexible Return and Event Delivery) mechanizmus, amely növeli az alacsony szintű események információjának hatékonyságát és megbízhatóságát. A teljesítmény növelését és a késleltetések csökkentését a CPU által végzett IRET utasítással történő esemény-visszaállítással valósítják meg, ahelyett, hogy az eseményeket az IDT (Interrupt Descriptor Table) táblán keresztül továbbítanák. A megbízhatóság növelése a kernel és a felhasználói kontextusban érkező események elkülönített feldolgozásával, az NMI beágyazott végrehajtásának védelmével és az összes kapcsolódó CPU regiszter mentésével az kiterjesztett veremben történik.
    • A perf alrendszerbe hozzáadva a memória teljesítménymonitorozó egységeinek (PMU – Performance Monitoring Unit) támogatása, amelyek az NVIDIA Tegra410 SoC-ben találhatók.
    • Felgyorsult a futexműveletek végrehajtása ARM rendszereken, az Arm 9.6 LSUI utasítások kihasználása révén, amelyek lehetővé teszik a kernel számára, hogy a felhasználói memória területhez hozzáférjen a PAN (Privileged Access Never) védelmi mód előzetes letiltása nélkül.
    • Az ARM processzorokkal rendelkező rendszereken javult az MPAM (Memory System Resource Partitioning and Monitoring) architektúra támogatása, és hozzáadódott a felhasználói térben való használat lehetősége az erőforrások kezelésére a resctrl mechanizmuson keresztül. Az MPAM lehetővé teszi, hogy a memória minden hozzáférést szekcióazonosítóval (PARTID, Partition ID) és megfigyelési csoportazonosítóval (PMG, Monitoring Group ID) jelöljön. A PARTID-hoz kapcsolódóan korlátozható a memória sávszélessége vagy a gyorsítótár mérete, hogy egy adott feladatcsoport ne foglalhassa el az összes erőforrást. A PMG és a PARTID kombinációt a memória erőforrások felhasználásának nyomkövetésére használhatjuk bizonyos terhelési típusok esetében.
    • Új lehetőségként hozzáadódott a valós idejű üzemmód (PREEMPT_RT) használata a 32 bites ARM processzorokhoz. Korábban a PREEMPT_RT támogatását x86, x86-64, ARM64, RISC-V és LoongArch architektúrák számára biztosították.
    • A clone3() rendszerhívásba új zászlók kerültek bevezetésre: CLONE_NNP — a létrehozott folyamatban új privilégiumok megszerzésének megtiltása; CLONE_AUTOREAP — a folyamat automatikus befejezése ahelyett, hogy zombifolyamattá válna a szülő folyamat wait() funkciója előtt;
      CLONE_PIDFD_AUTOKILL — a gyermek folyamat befejezése, ha a hozzá kapcsolódó pidfd leíró zárva van (például a szülő folyamat befejezésekor).
    • Minden kernel modulhoz a /sys/module könyvtárban hozzáadódott egy import_ns fájl, amely a behozott szimbólumnévtárak (symbol namespace) listáját tartalmazza.
    • Az io_uring aszinkron bemeneti/kimeneti rendszerbe hozzáadódott a BPF alrendszer használatának támogatása kezelők létrehozásához. Például a fő ütemezési ciklus helyett BPF-program használható.
    • A BPF alrendszerben modernizálták a veremhasználat elemzését, ami jelentősen felgyorsította sok BPF-program verifikáló általi ellenőrzését.
    • A teljesítmény optimalizálása érdekében átírták a hrtimer (high resolution timer) alrendszert. A feladatütemező most már nagy felbontású időzítőket használhat teljesítményvesztés nélkül, a kevésbé pontos időzítők helyett.
    • Folyamatban van a Rust-for-Linux ágból származó módosítások áttelepítése, amelyek a Rust nyelv második nyelvként való felhasználására vonatkoznak kernel meghajtók és modulok fejlesztésében (a Rust támogatása alapértelmezés szerint nincs aktív állapotban, és nem kötelező a Rust a kernel kötelező build függőségei közé). Az 1.85-ös verzióhoz (amely Debian 13-ban kerül forgalomba) megnövekedtek a Rust verzió követelményei, amely a kernel komponensek összeállításához szükséges. Kísérleti Kconfig opciót adtak hozzá, a CONFIG_RUST_INLINE_HELPERS-t, amely lehetővé teszi a C-átjárók beágyazását Rust-kódba fordítás közben (az optimalizálás 2%-kal gyorsította meg a null blokkoló meghajtó működését). Hozzáadták a 'const_assert!' makrót. Bővítették a 'sizes', 'clk', 'ptr', 'sync', 'error' modulok lehetőségeit.
    • A SCHED_EXT mechanizmushoz, amely lehetővé teszi a BPF használatát CPU ütemezők létrehozására, kezdeti lehetőséget adtak a beágyazott ütemezők (sub-scheduler) létrehozására, amelyek segítségével minden cgroup saját feladatütemezőt használhat.
    • Folyamatosan optimalizálják a swap alrendszert. Eltávolították a régi swap_map struktúrát, amelyet a 'Swap Table' mechanizmus váltott fel. A változtatás lehetővé tette a teljesítmény növelését és a swap alrendszer memóriakibocsátásának csökkentését.
    • A DAMON (Data Access MONitor) alrendszerbe, amely lehetővé teszi a folyamat adat-hozzáférésének nyomon követését a rendszermemóriában (például megállapítható, hogy a folyamat mely memóriaterületekhez nyúlt, és melyek maradtak kihasználatlanok), támogatást adtak különböző automatikus hangolási algoritmusokhoz.
    • A nyomkövető alrendszerben megvalósították a külső körkörös pufferek koncepcióját, amely lehetővé teszi a nyomkövetési adatok nyerését virtuális gépekhez. A lehetőség a hipervizorokban van érvényben KVM és nVHE a nyomkövetési adatok átvitelére a vendég rendszerről a gazdagép felé.
    • A RV (Runtime Verification) alrendszerhez, amely a nagy megbízhatóságú rendszerek működésének ellenőrzésére szolgál, hozzáadták a 'stall' megfigyelő összetevőket, amelyek a kivitelezett feladatok nyomozására szolgálnak, amikor azok ideiglenesen leálltak vagy blokkolva vannak, valamint a 'deadline'-t, amely a feladatütemező viselkedésének elemzésére szolgál.
  • Virtualizáció és biztonság
    • Alapértelmezés szerint beállítva van a PROC_MEM_FORCE_PTRACE zászló, amely lehetővé teszi a folyamat memóriahozzáférési jogainak megkerülését a fájlon keresztül /proc/PID/mem, csak azok számára a folyamatok számára, amelyek a ptrace() rendszerhívást használják a hibakereséshez.
    • Új hook készlet került hozzáadásra az LSM modulokhoz (Linux Security Module), amely megkönnyíti a politikák megvalósítását a verem alapú fájlrendszerekhez, mint például az overlayfs. Az LSM-hez hozzáadott hook a Unix socketek hozzáférésének kezelésére is szolgál, amelyet az LSM modul Landlock használ a Unix socketekhez való hozzáférési politikák kijelölésére.
    • A beépített lib/crypto kriptográfiai könyvtárhoz, amely egyszerűbb és gyorsabb funkciókat kínál, mint a hagyományos crypto API, hozzáadódott az AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH és SM3 algoritmusok támogatása. A lib/crypto dokumentációja is hozzá lett adva.
    • A pKVM (Protected KVM) üzemmód megvalósítása a névtelen memória szigorú elszigetelésére a AArch64 architektúra virtualizációs kiterjesztéseivel. Ebben az üzemmódban a vendég memóriájának oldalai ki vannak zárva a gazda rendszer virtuális címzési táblájából.
    • A KVM hypervisorhoz hozzá lett adva az ARM virtuális megszakító vezérlő ötödik verziójának (VGICv5 – ARM Virtual Generic Interrupt Controller v5) támogatása.
  • Hálózati alrendszer
    • A socket() függvénnyel létrehozott unix socketekhez hozzá lett adva a fájlok kiterjesztett attribútumainak (xattr) támogatása a „user.*” alakban. Alkalmazási területek között szerepel a címkék beállítása a Unix socketek kiterjesztett attribútumain keresztül, amelyeket IPC Varlink használ, hogy kiemelje őket az általános tömegből az IPC BPF programok általi ellenőrzésére és hibakeresésére. A systemd-journald a kiterjesztett attribútumokat szándékozik használni a napló formátumának meghatározására a /dev/log sockethez való kötődéssel.
    • A UDP-Lite protokoll (RFC 3828) támogatása eltávolításra került, amely lehetővé tette hibás ellenőrző összeggel rendelkező csomagok kézbesítését, számítva például arra, hogy a részben sérült audió és videóadatokat a kodek szintjén helyre lehet állítani. A protokoll eltávolításra került, mivel senki sem használja.
    • Eltávolításra került az IPv6 verem kernel module formájában történő összeállításának lehetősége, amely a gyakorlatban nem volt használva (az IPv6-ot vagy beágyazzák a kernelbe, vagy teljesen lekapcsolják), de bonyolította a karbantartást, mivel az IPv6 kernel modulként történő összeállítása (CONFIG_IPV6=m) esetén számos alrendszer kénytelen volt haszontalan kezelőket hozzáadni az IPv6 modul leállításának eseteire.
  • Hardver
    • Az AMDGPU meghajtóba új megjelenítési motor (DC) került beépítésre az AMD HD 7000 sorozatú APU-khoz (Sea Islands, GCN 1.1).
    • A Nouveau meghajtóhoz kezdeti támogatás került hozzáadásra a NVIDIA GA100 GPU számára, amely az Ampere mikroarchitektúrán alapul.
    • Folytatódtak a drm-illesztőprogram (Direct Rendering Manager) Xe fejlesztései az Intel Xe architektúrára épülő GPU-knál, amelyek az Intel Arc családú grafikus kártyákban és az integrált grafikus megoldásokban találhatók, kezdve a Tiger Lake processzoroktól. Támogatás került a Nova Lake-P processzorok grafikus alrendszerére. Megvalósultak a törölhető pufferobjektumok (Purgeable Buffer Objects).
    • Folytatódott a Nova illesztőprogram komponenseinek integrációja a NVIDIA GSP firmware-rel rendelkező GPU-khoz, amelyek a Turing mikroarchitektúrára épülő NVIDIA GeForce RTX 2000 sorozattól kezdődnek. Az illesztőprogram Rust nyelven készült. Kezdeti támogatás került a Turing mikroarchitektúrára épülő GPU-khoz.
    • Hozzáadva a corebootdrm DRM-illesztőprogram a grafika kiadásához CoreBoot firmware-ként.
    • Hozzáadva az AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP és WM8962 hangzás ASoC támogatása. Fejlesztve lett a USB interfészű hangkészülékek támogatása: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow.
      PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
    • Hozzáadva a yogafan illesztőprogram a Lenovo Yoga, Legion és IdeaPad laptopok ventilátorának sebességének nyomon követésére.
    • Hozzáadva az ARM platformok, SoC-k és eszközök támogatása: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 és ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
    • Eltávolítva a Baikal-T1 SoC-kban alkalmazott AHCI SATA és PCIe vezérlők, valamint az időzítő, memória, physmap, busz, hwmon, dwc és bt1-rom illesztőprogramok támogatása. Az eltávolítás indoka a támogatás hiánya és a Baikal platform alkatrészeinek kernelben való befejezésének hiányossága, amelynek gyártását Oroszországban 2025 novemberében leállították.
    • Tizenkettő Ethernet-illesztőprogram eltávolítva ISA és PCMCIA interfészekkel, amelyek 2002 előtt készültek, és amelyekhez nem találtak felhasználókat a munkarendszerekben. Szintén kizárva a kernelből.
      ISDN alrendszer, AX.25, CAIF és Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol) protokollok implementációi, yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport és logibm (busmouse) illesztőprogramok. Az eltávolítás oka az aktív támogató hiánya, miközben a syzbot és AI-eszközök által felfedezett hibák száma folyamatosan növekszik, amelyeket senki sem vállal magára, és minden teher az alapvető hálózati alrendszerek támogatóiéra hárul. Összesen több mint 140 ezer sor kódot távolítottak el.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster