Két hónap fejlesztés után Linus Torvalds bemutatott A Linux 6.14 kernel release. Notable changes include: the ntsync driver with Windows NT synchronization primitives, read operation balancing settings in Btrfs RAID1, reflink support in XFS in realtime mode, support for uncached buffered I/O, dmem cgroup for GPU memory limitation, implementation of io_uring in FUSE, delegation of attributes in NFS, support for atomic writes in Device mapper, acceleration of symbolic links, script execution management, support for Qualcomm Snapdragon 8 Elite chips, and a driver for AMD NPU.
The new version incorporates 12,115 fixes from 1,984 developers, the patch size is 39 MB (changes affected 10,170 files, 531,586 lines of code were added, and 235,999 lines were removed). The previous release contained 14,172 fixes from 2,086 developers, with a patch size of 46 MB. About 41% of the changes in 6.14 are related to device drivers, approximately 13% pertain to architecture-specific code updates, 14% relate to the networking stack, 7% to file systems, and 4% to internal kernel subsystems.
- Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
- In the Btrfs file system megjelenik support for new read operation balancing methods among drives in a RAID1 array. In addition to the previously existing load balancing based on process IDs (pid), the new version offers three new balancing modes: 'rotation' (even distribution of load across all drives, default mode enabled); 'latency' (distribution considering delays, which can be beneficial in case of failures or unstable drive performance); devid (manual control). To change the balancing mode hozzáadva the interface /sys/fs/btrfs//read_policy. Among other changes in Btrfs are implementációja, ioctl FS_IOC_READ_VERITY_METADATA.
- az „Alkalmazás” eszköz the mode of uncached buffered I/O, where data is removed from the page cache immediately after read or write operations are completed. This change can be useful when using very fast storage devices, where caching operations in RAM is redundant. For such devices, the new mode allows avoiding excessive memory consumption by the page cache without resorting to a complicated Direct I/O API.
- In fsnotify, the mechanism for tracking changes in the FS, hozzáadva Új FS_PRE_ACCESS esemény generálódik a fájl tartalmához történő hozzáférés előtt. Az eseményt szinkron módon dolgozzák fel, azaz a kernel elküldi az eseményt, és várja a választ. Ha választ kap, a művelet végrehajtódik, és ha hiba történt, a rendszerhívás hibakódot ad vissza a felhasználói térbe. Az FS_PRE_ACCESS segítségével a felhasználói térben például megvalósítható a fájl kitöltése, amint az adatok elérhetők a lassú tárolóban.
- A FUSE alrendszerhez, amely lehetővé teszi fájlrendszerek megvalósítását a felhasználói térben, hozzáadták Passkey az adatok cseréjét a kernel és a felhasználói térben lévő kezelő között io_uring bemeneti/kimeneti mechanizmus használatával. A módosítás javítja a FUSE teljesítményét a kernel és a felhasználói tér közötti kontextusváltások csökkentésével.
- Az XFS fájlrendszerhez hozzáadták lehetőség a visszafelé térképezés (rmap, reverse-mapping) használatát, amely kiszámítható késleltetésekkel működik („realtime device”). A visszafelé térképezés lehetővé teszi, hogy meghatározzuk, hogy melyik fájl tárolására használják a megadott blokkot a tárolóeszközön. Az rmap használatával az XFS realtime üzemmódjában megvalósították a reflink művelet támogatását, amely lehetővé teszi fájlok másolását a fájl metainformációinak klónozásával és egy már meglévő adatra mutató hivatkozás létrehozásával anélkül, hogy a tényleges másolásra szükség lenne.
- A VFS megvalósult a szimbolikus linkek méretének gyorsítótárazása, amely 1,5%-kal felgyorsította a readlink művelet végrehajtását (a tesztben a /initrd.img az ext4-ben). A gyorsítótárazás engedélyezve van az ext4 és tmpfs fájlrendszerekben.
- Az NFSv4.2 megvalósításához hozzáadták a támogatást a fájlok attribútumainak delegálásához, amely lehetővé teszi a fájlok módosítási idejének (mtime) kezelését az NFS-kliens oldalán, anélkül, hogy a változásokat a szerverre kellene visszaállítani. Az NFS rendszerben javult a „LOCALIO” protokoll támogatása, amely lehetővé teszi annak meghatározását, hogy az NFS kliens és a szerver ugyanazon a gazdagépen található-e, hogy megfelelő optimalizálások lépjenek életbe, mint például a kliens közvetlen bemeneti/kimenet (Direct I/O) használata.
- Fokozott az olvasási műveletek teljesítményének javítása a NETFS, CIFS és AFS (Andrew File System) fájlrendszerekben.
- A Squashfs-ba bekapcsolva a közvetlen betöltési mód blokkos fájlok oldalkészre (SQUASHFS_FILE_DIRECT), amely lehetővé teszi, hogy külön olvasó oldalkész nélkül is működjön. A változtatás lehetővé tette a Squashfs működése során felhasznált memória mennyiségének csökkentését.
- a statx() rendszerhívásban megvalósították a STATX_DIO_READ_ALIGN zászló, amely a fájlokból történő olvasási műveletekhez szükséges igazítás meghatározására szolgál.
- a Bcachefs fájlrendszerben frissítve lett és stabilizálva a lemezes struktúrák formátuma. Minden további formátumváltozás kötelezően opcionális kiegészítések formájában fog megvalósulni. Jelentősen megnövelték a fájlrendszer integritásának ellenőrzési sebességét. Továbbá, a Bcachefs-ben javult az olvasásra szakosodott működés; megszüntették a memória felszabadítása utáni hozzáférés problémáit; orvosolták a reflink-referenciák fsck-ben lévő problémáit; javították a tranzakciók újraindításának kezelését.
- Visszaállítva az md-linear modul, amely blokkeszközök összevonására szolgál. E modul korábban elavultként lett nyilvántartva és eltávolítva a 6.8-as kerneltől, de kiderült, hogy szükség volt rá, így most vissza lett állítva.
- az F2FS és SQUASHFS fájlrendszerek átálltak oldalakhoz (oldal foliók).
- A null_blk driverben megvalósították a "rotational" attribútumot, amelyet a configfs-en keresztül állítanak be, és lehetővé teszi, hogy a forgólemezeken alapuló eszközzel való munkát szimuláljanak az kernel funkciók tesztelésének megkönnyítése érdekében.
- A Device mapper rendszerben és a dm-mirror, dm-io, dm-table, dm-linear, dm-stripe és dm-raid1 modulokban megvalósítva támogatja az atomikus írást.
- Memória és rendszerszolgáltatások
- Befejezve a nt_ntsync driver integrálása a kernelbe , amely a /dev/ntsync szimbolikus eszközt és a Windows NT kernelében alkalmazott szinkronizálási primitívek halmazát valósítja meg. Az ilyen primitívek kernel szintű megvalósítása jelentősen növeli a Wine segítségével futtatott Windows-játékok teljesítményét. Teljesítménynövekedés valósul meg az RPC felhasználói térben történő alkalmazása miatti költségek megszüntetésének köszönhetően. A Linux kernel számára külön driver létrehozása a Windows NT szinkronizálási API megfelelő megvalósításának nehézsége miatt szükséges.Új cgroup vezérlőt adtak hozzá
- DMEM DMEM az eszközök, például a GPU memóriaterületeinek külön nyilvántartásához. A DMEM lehetővé teszi külön csoportok létrehozását különböző GPU-val dolgozó feladatok számára, hogy azok egymás befolyásolása nélkül futhassanak. Az új lehetőség megoldja a GPU műveletek kényszerített lezárásának problémáját a rendelkezésre álló memória kimerülésekor, a GPU által használt memória és a CPU által használt memória külön csoportokban való nyilvántartásával.
- Optimalizációk kerültek bevezetésre a TLB (Translation Lookaside Buffer) cache kiürítési (flush) műveletének skálázásához, amely a virtuális címek fizikai címekké történő átkonvertálását gyorsítja. A bevezetett optimalizációk lényege a kontextusváltás során néhány adatstruktúra késleltetett frissítése, amely javítja a teljesítményt egyes tesztek során.
- Fokozott a mechanizmus teljesítménye MGLRU (Többgenerácós LRU), amely a memóriában használt és a swap területre kiüríthető oldalak meghatározására szolgál.
- Folyamatban van a változások átvitele a Rust-for-Linux, a Rust nyelv második nyelvként való felhasználásával kapcsolatos, a kernel meghajtók és modulok fejlesztésében (a Rust támogatás alapértelmezés szerint nem aktív, és nem jár a Rustnak a kernel kötelező build függőségei közé való felvételével). Lehetővé vált a kernel kódjában a “derive(CoercePointee)„ makró használata, amely lehetővé teszi az intelligens mutatók használatát trait-objektumokkal. A kernel tartalmazza belekerültek Rust-wrapper-eket a PCI, platformokhoz,, Open Firmware, szimbolikus eszközöket, és néhány bejárati/kimeneti funkciót.. Greg Kroah-Hartman, aki a Linux kernel stabil ágának támogatásáért felelős, jellemezte a jelenlegi állapotot mint „majdnem készen áll a valódi Rust meghajtó írására”.
- A build forgatókönyvekben ajánlott új kód került bevezetésre a betölthető modulok hibakeresési szimbólumainak verziózásához, amely most DWARF formátumú hibakeresési bejegyzésekből nyer információt, nem közvetlenül a forráskódot elemzi. A módosítás lehetővé teszi a Rust nyelven írt modulok hibakeresési szimbólumainak verziózását. A régi implementáció szintén megtalálható a kernelben, és a generátor kiválasztása a build opciók szintjén történik.
- A PowerPC architektúrához. megvalósítva támogatja a késleltetett feladatkiválasztás módját (PREEMPT_LAZY, lazy preemption), amely megfelel a teljes véletlen kiválasztás („full preemption”) módnak a realtime feladatokhoz (RR/FIFO/DEADLINE), de késlelteti a normál feladatok (SCHED_NORMAL) kiválasztását a pihenési határig.
- A teljesítményprofilozó almenü perf hozzáadva lett támogatja az AMD processzorok energiafogyasztását mérő számlálókat. Hozzáadva lehetőséget biztosít olyan rendszerek működtetésére, ahol akár 2048 CPU mag is található.
- A biztosítva lehetővé teszi a pid_max sysctl-paraméter használatát a folyamatazonosítók névterével (ID namespace). A pid_max paraméter célja a folyamatazonosítók (PID) maximális értékének korlátozása, amely mostantól a megadott névtérben futó folyamatok maximális számának korlátozására is használható. A paraméter hierarchikusan kerül feldolgozásra, azaz a külső névterek megszorításai a beágyazott névterekre is vonatkoznak.
- A rendszerhívás indításához használt execveat mostantól a "/proc" fájlrendszerben a futó fájl neve jelenik meg, nem pedig a fájl deszkriptor azonosítója.
- A kernel forráskódjába (a samples könyvtárban) bevezetésre került a mountinfo eszköz, amely bemutatja a statmount() és listmount() rendszerhívások használatát.
- A BPF rendszerben kínálnak új funkciók bpf_local_irq_save() és bpf_local_irq_restore() a megszakítások ideiglenes letiltására a helyi CPU-n. Ezek a funkciók alkalmazhatók olyan struktúrák kezelésére, amelyeket nem szakítanak meg a megszakítások.
- A rendszerhívásnál madvise() MADV_DONTNEED és MADV_FREE zászlók használatakor biztosította a memóriacímek felszabadítandó tartományához kapcsolódó lapok tábláinak felszabadítása, mivel bizonyos helyzetekben az üres memóriapage-ek viszonylag sok memóriát foglalhatnak el.
- Az OpenRISC architektúrához támogatást valósítottak meg a restartálható sorozatok (rseq, restartable sequences) gyors atomikus műveletek végrehajtására, amelyek megszakítás esetén törlődnek, és megpróbálják újra végrehajtani.
- A kód átszervezése megtörtént a CRC32 és CRC-T10DIF algoritmusok megvalósításával, amely már nem keresztezi a crypto alrendszert, és közvetlenül a könyvtári interfészen keresztül hívják meg. A változtatás lehetővé tette a kód egyszerűsítését és hatékonyságának növelését.
- Az io_uring aszinkron bemeneti/kimeneti rendszerbe hozzáadva interfész került bevezetésre az integritás kiegészítő metaadatainak átvitelére az olvasási és írási műveletek végrehajtása során.
- Virtualizáció és biztonság
- A rendszerhívásba execveat hozzáadva AT_EXECVE_CHECK zászlót vezettek be, amely lehetővé teszi a vizsgálat elvégzését a fájl tényleges futtatása nélkül történő végrehajtásának lehetősége, figyelembe véve a biztonsági politikákat, a hozzáférési jogokat és az aktív LSM-modulokat. Az AT_EXECVE_CHECK használatára javasolt a SECBIT_EXEC_RESTRICT_FILE és a SECBIT_EXEC_DENY_INTERACTIVE securebit-flagek, amelyeket a szkripteket végrehajtó fájlok futtatásának korlátozására lehet használni értelmezett programozási nyelveken. A SECBIT_EXEC_RESTRICT_FILE zászló előírja a linkernek és az értelmezőknek, hogy az AT_EXECVE_CHECK opciót használják a végrehajtás engedélyezhetőségének ellenőrzésére, míg a SECBIT_EXEC_DENY_INTERACTIVE zászló megtiltja az interaktív parancsok kezelését. Az alapvető ötlet a biztonsági politikák alkalmazhatóságának lehetőségeinek megváltoztatásában rejlik, nemcsak a hagyományos végrehajtható fájlokra, hanem az értelmezőn keresztül betölthető szkriptek szöveges fájljaira is (azaz a végrehajtás tiltsága nemcsak a './script.sh' indításakor, hanem a 'sh script.sh' végrehajtásakor is megvalósítható).
- Az x86 rendszereken megvalósult a védett időzítő számlálók támogatása a vendégrendszerek számára, amelyek nem engedik meg a vendégrendszer rendszeridőzítőjének megváltoztatását a gazda környezetből. A lehetőség a AMD SEV (Secure Encrypted Virtualization) mechanizmusra épül, amelyet a virtualizációs rendszerekben használnak a virtuális gépek védelmére a hypervisor vagy a gazda rendszer adminisztrátora által történő beavatkozástól.
- A SELinux mandátum-alapú hozzáférés-ellenőrző rendszerébe hozzáadva lett Passkey xperm-szabályokat, amelyek lehetővé teszik a SELinux politikák bizonyos ioctl() hívásokhoz vagy netlink üzenetekhez való kötését.
- A meglévő kernel modulok digitális aláírásba történő érvényesítéséhez alapértelmezés szerint a aktív SHA512 algoritmust használják.
- A VirtualBox vendégrendszer-illesztőprogramjaiban bekapcsolva ARM64 architektúra támogatás.
- A KVM hypervisorban folytatódott működés az Intel TDX (Trusted Domain Extensions) mechanizmus alkalmazásával a vendégrendszerek memóriájának titkosítására.
- A virtio_blk hozzáadva lett hibajavító mód támogatása.
- Hálózati alrendszer
- A RxRPC megjelenik protokoll megvalósításában lehetőség nyílik nagyobb UDP keretek használatára a sávszélesség növelése érdekében.
- A TCP-hez hozzáadva a RACK-TLP algoritmus támogatása a csomagvesztés meghatározásához.
- az „Alkalmazás” eszköz új sysctl tcp_tw_reuse_delay paraméter, amely a névtér (network namespace) vonatkozásában működik, és lehetővé teszi a késleltetés meghatározását, amelyet a rendszer akkor alkalmaz, mielőtt újra felhasználhatja a TCP-számláló számát a TCP-szekvencia bezárása után.
- Hozzáadva a pontos idő (PTP) szolgáltató kiválasztásának lehetősége a PHY és MAC szinten történő időbélyegzők előállításához.
- IPsec-hez megvalósítva az encapsulated IP-csomagok aggregálásának és fragmentálásának mechanizmusának támogatása - IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
- A hálózati socket rendszerben hozzáadva lett Passkey az információs prioritás átadásához (SO_PRIORITY) vezérlő üzenetek formájában (cmsg — control messages). A hálózati socketekhez hozzáadva lett SO_RCVPRIORITY opció, amely a recvmsg() funkciókban lehetővé teszi a socket prioritási információjának átadását.
- Hardver
- az „Alkalmazás” eszköz hajtóerő amdxdna az AMD CPU-ba integrált NPU (Neural Processing Unit) gyorsítókkal, amelyek az XDNA, a gépi tanulással kapcsolatos műveletek gyorsítására szolgálnak. Az XDNA architektúrára alapozott NPU az AMD Ryzen processzorok 7040 és 8040 sorozataiban, az AMD Alveo V70 gyorsítókban és az AMD Versal SoC-ban érhető el.
- Az i915 illesztőprogramban hozzáadva az új GPU-k azonosítói, a HDMI inicializálási hibakezelő implementálásra került, javult a GPU motorok visszaállításának megbízhatósága a Haswell és az annál régebbi rendszerekben.
- tisztítás folytatódik a DRM-illesztőprogram (Direct Rendering Manager) Xe munkája az Intel Xe architektúrára alapozott GPU-k számára, amely az Intel Arc család videokártyáiban és az integrált grafikában érhető el a Tiger Lake processzoroktól kezdődően.
- A Nouveau driverhez hozzáadódott a GSP-RM log bufferjeinek debugfs-en keresztüli továbbításának lehetősége.
- Az AMDGPU-illesztőprogramban bevezetésre került a DRM panic mechanizmus támogatása, amely a hibák esetén a „kék halál” hasonmását jeleníti meg. A jövőbeli Radeon RX 9000 grafikus kártyák támogatásának előkészítése folyamatban van, amely az RDNA4 architektúrára épül. Frissítve a DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS és ISP támogatás.
- A DRM-illesztőprogram msm (Qualcomm Adreno GPU) támogatást nyújt a Qualcomm SM6150 (QCS615) platformhoz.
- A panfrost DRM driverhez hozzáadódott a MediaTek MT8188 SoC támogatása Mali-G57 GPU-val.
- A vc4 DRM driverhez hozzáadódott a Broadcom BCM2712 (Raspberry Pi 5) SoC támogatása.
- A vfio illesztőprogram nvgrace-gpu hozzáadva lett Passkey NVIDIA Grace Blackwell 200 chipjeihez.
- A következő alkotórészek bekapcsolva illesztőprogram az Intel THC (Touch Host Controller) vezérlőkhöz, amely a képernyők és touchpadok interakciójához használatos néhány laptopon. Támogatás került bevezetésre a PCI interfésszel rendelkező Wacom eszközökhöz. Hozzáadva támogatás a QH Electronics játékkontrolleréhez.
- Hozzáadva Passkey ARM platformok, SoC-k és eszközök: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, Microchip SAMA7D65, Renesas R-Car V4H ES3.0, Renesas RZ/G3E. Támogatás került bevezetésre a SoC-hoz SpacemiT K1 RISC-V architektúrára alapozva.
- Az ALSA hangrendszerben a MIDI 2.0 kibővítették rawmidi és sequencer API-jának támogatása. Az audio kártyákra történő kompressziós műveletek kiszervezésére szolgáló API-ba az ASRC (Asynchronous Sample Rate Conversion) támogatása került bevezetésre.
- Támogatás került be a következő eszközök hangrendszereihez: Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 és 18i20. Hozzáadva SteelSeries Arctis 9 vezeték nélküli fejhallgató támogatás.
Forrás: linux.org.ru
