A Linux kernel 6.15 kiadása

Két hónapos fejlesztés után Linus Torvalds bemutatta a Linux 6.15 kernel kiadását. A legfigyelemreméltóbb változások között szerepel: az audit mechanizmus a Landlockban, a memória-térképezés rögzítési módja, a fwctl alrendszer, az NVIDIA GPU-hoz készült Nova driverek, a Hyper-V hypervisor számára készített host-rendszer megvalósítása, a zónázott tároló eszközök támogatása az XFS-ben, a hálózati alrendszer optimalizálása, a scrub-ellenőrzés a Bcachefs-ben és az io_uring segítségével történő műveletek feletti ellenőrzés lehetősége.

Az új verzióba 15945 javítást fogadtak el 2154 fejlesztőtől, a patch mérete 59 MB (a változtatások 13596 fájlt érintenek, 739608 sor kód került hozzáadásra, 312168 sor törlésre került). Az előző kiadásban 12115 javítást nyújtottak be 1984 fejlesztőtől, a patch mérete 39 MB. A 6.15-ben bemutatott összes változás körülbelül 41%-a az eszköz driverekhez kapcsolódik, körülbelül 16%-a a hardverarchitektúrákra vonatkozó kód frissítéséhez, 13%-a a hálózati verembe, 5%-a a fájlrendszerekhez és 4%-a a kernel belső alrendszereihez kapcsolódik.

Fő újdonságok a 6.15 kernelben:

  • Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
    • A fanotify mechanizmushoz hozzáadva a csatolás és leválasztás események nyomon követésének lehetősége.
    • Az XFS-ben hozzáadták a zónázott tároló eszközök támogatását (blokkok vagy szektorok zónákra történő felosztása, amelyekben csak sorozatos adat-hozzáadás engedélyezett, a blokkok teljes csoportjának frissítésével). Hozzáadták a rwf_dontcache zászlót a cache kikapcsolásához írás közben. Megvalósították több adatblokk atomikus írásának lehetőségét.
    • A Btrfs-ben megvalósították a negatív zstd tömörítési szintek megjelölésének lehetőségét csatoláskor (-15-től -1-ig, például, „compress=zstd:-5”), ami magasabb teljesítményt biztosít a tömörítési hatékonyság csökkentésének árán. Javították a fájlútvonalak cache-elését (a végzett teszt során a „send” művelet 30%-kal gyorsabb lett). Hozzáadták a 2 KB méretű blokkok támogatását.
    • Az EXT4-ben növelték a teljesítményt az újból előkerült rekordokkal rendelkező naplózás során (ez a Lustre FS számára jellemző terhelés). Megvalósították a „dentry” rekordok lineáris keresését (a könyvtári elemek belső ábrázolása), amely megoldja a fájlokhoz való hozzáférés problémáit kis- és nagybetűérzéketlen módban. Finomhangolták a „errors=remount-ro” csatolási lehetőség működését. Növelték a sérült FS-ek kezelésének ellenállóképességét.
    • Az F2FS-ben megvalósult az ioctl, amely lehetővé teszi a megadott fájl írási/olvasási műveletének prioritásának lekérdezését. Megkezdődött a memóriaoldalak (page folios) alkalmazásának átállítása.
    • A Bcachefs-hez hozzáadták a 'scrub' üzemmódot, amelyben a fájlrendszer összes adatának és metadatanak olvasási helyességét ellenőrzik. Hibák észlelése esetén helyreállítási eljárás indul. A Bcachefs-ben a fájlrendszerek támogatása is hozzá lett adva, ahol a blokk mérete nagyobb, mint a memóriaoldalé. A Bcachefs lemezstruktúrájának formátuma stabilizálva lett (további formátumváltozások opcionális kiegészítések formájában fognak megvalósulni).
    • Az EROFS-hez hozzáadták a 48 bites blokkcímzés támogatását.
    • A FUSE alrendszerbe megvalósult a sysctl default_request_timeout és max_request_timeout, amelyek lehetővé teszik a lekérések végrehajtási időtúllépéseinek beállítását, így nyomon követhetők a felhasználói térben működő FUSE alkatrészek fagyási problémái. A fájlnevek maximális hossza a FUSE-ban 1024 karakterre nőtt.
    • A statmount() rendszerhívásba integrálták a lehetőséget a csatolt fájlrendszerek felhasználóazonosítók mappolásának lekérdezésére, mely a megadott felhasználó fájljainak mappolásához szükséges külső partíción.
    • Megvalósult a csatolási pont létrehozásának lehetősége más felhasználói azonosítók mappolásával, mint az alapul szolgáló csatolt partíción.
    • A csatoláskezelő API-jába olyan módosítások kerültek be, amelyek megkönnyítik bonyolult fájlrendszerek hierarchiájának összeszerelését anélkül, hogy felfednék azokat a fájlrendszer részeit, amelyeket titokban kell tartani.
    • A blokkeszközökkel foglalkozó alrendszerbe integrálták a hardveres titkosítási kulcsvédelmi eszközök támogatását.
    • Az SMB fájlrendszerhez megvalósították az is_network_name_deleted opciót, és alapértelmezés szerint engedélyezve lett a smb_server_kerberos5 üzemmód.
    • Az OverlayFS-hez hozzáadták az 'override_creds' csatolási opciót, amely lehetővé teszi, hogy a tároló alsó szintjeinek eléréséhez a hívó felhasználó hitelesítő adatait használják, nem pedig a csatolóét. Ez a módosítás például lehetővé teszi, hogy az OverlayFS csatolásakor a felhasználótól CAP_SYS_ADMIN jogosultságokat kérjenek, de a fájlrendszer használatához ne szükségesek ezen jogosultságok.
    • Az exFAT fájltörlési műveletek felgyorsultak. A törlendő fájl minden kiszabadított klaszterére külön-külön "discard" kéréseket küldő meghajtó mostantól csoportosítja a kéréseket. A teszt során egy 80 GB méretű fájl törlésének ideje 286 másodpercről 1,6 másodpercre csökkent.
    • Minden pseudo-fájl rendszer és az EXT2 fájlrendszer átállt az új partíciós csatlakozási API használatára.
    • Eltávolításra került a SYSV fájlrendszer támogatásához szükséges kód (SystemV/386, Xenix és Coherent), amely 2023-tól kezdve támogatás nélküli (orphaned) jelölést kapott.
  • Memória és rendszerszolgáltatások
    • A kernel építéséhez szükséges minimális GCC verziót 8.1-re, míg a Clang-ot 15.0.0-ra emelték.
    • Hozzáadásra került a fwctl (Firmware Control) alrendszer, amely API-t biztosít a firmware-ek biztonságos kezeléséhez és a felhasználói térből történő firmware-kezelők végrehajtásához. A fwctl alapjain készültek a CXL (Compute Express Link) eszközök, Mellanox ConnectX (mlx5) Ethernet adapterek és AMD/Pensando szolgáltatók driverei.
    • Kibővítették a pidfd mechanizmus lehetőségeit, amely lehetővé teszi a konkrét folyamatokhoz kapcsolódó azonosítók használatát, amelyek nem rendelhetők újra ellentétben a pid-del. Lehetőség nyílik a pidfd-n keresztül azonosított folyamat kilépési állapotának adatainak kinyerésére, miután a szülő folyamat megerősítést kapott a gyermekfolyamat befejezéséről (reaped) és az erőforrásait felszabadították. A rendszerhívásokhoz hozzáadódott a PIDFD_SELF zászló, amellyel a folyamat hivatkozhat önmagára.
    • A RISC-V architektúrához támogatást nyújtottak a BFloat16, Zaamo (atomikus műveletek a memóriával), Zalrsc (Load-Reserved/Store-conditional) és ZBKB (bitműveletek kriptográfiához) kiterjesztések számára.
    • A nyomkövetés során lehetőség nyílik a hívott függvények argumentumainak mentésére és azok nyomkövetési naplókban való megjelenítésére.
    • Az io_uring aszinkron bemeneti/kimeneti rendszerhez hozzáadták az epoll események információinak olvasására vonatkozó támogatást. Az io_uring alkalmazása az epoll események kezelésére csökkenti a kontextusváltások számát és lehetővé teszi egyszerre több epoll esemény kezelését.
    • Az eBPF alrendszerben javult a ciklusokat tartalmazó programok verifikációja. Új utasítások kerültek bevezetésre: „timed_may_goto”, „load-acquire” és „store-release”. Lehetővé vált, hogy BPF-programokból megváltoztathassuk a fájlok kiterjesztett attribútumait. Bevezetésre került a try_alloc_pages() funkció, amely memóriát kíván foglalni nagy valószínűséggel sikertelen művelet esetén (BPF-programok korlátozott kontextusban való futtatása során).

      Bevezetésre került egy új zárolási primitív — rqspinlock (Resilient Queued Spin Lock), amely futás közben észleli a holtpontokhoz vezető helyzeteket. Az új primitív lehetővé teszi olyan BPF-programok betöltését, amelyek esetében a verifikáló nem garantálta a zárolásokkal kapcsolatos működést.

    • Jelentősen javult a nagy méretű memóriapage-ek (huge-page) foglalásának megbízhatósága.
    • Jelentősen felgyorsult a CRC64 ellenőrző összegek számítása x86-os rendszereken. Többek között az AVX-512 utasításkészlet új vektoros utasításait használták a sebesség növelésére. Bizonyos helyzetekben a teljesítmény 100-szoros növekedést mutatott.
    • Folyamatban van a Rust-for-Linux ágból érkező változások átvitele, amelyek a Rust nyelv mint második nyelv használatára vonatkoznak a driverek és a kernel modulok fejlesztése során (a Rust támogatás alapértelmezés szerint nem aktív, és nem teszi kötelezővé a Rust-ot mint építési függőséget a kernelhez). Lehetővé vált a „#[kunit_tests()]” makró használata a kernel kódban egységtesztek futtatásához. ARMv7 architektúra támogatás került bevezetésre. Bevezetésre kerültek a dma és hrtimer modulok Rust-borításokkal a DMA számára (Linus által a maintainer megkerülésével, aki ezt követően távozott) és a nagy pontosságú időzítők. Kiterjesztették a 'list', 'str', 'sync', 'error' és 'alloc' modulokat. Bevezetésre került egy új szintaxis támogatása: ‘&raw’ (raw_ref_op).
    • A perf alrendszerben megvalósították a késleltetési profilozás lehetőségét a feladatkezelőtől kapott információk felhasználásával.
    • Bevezetésre került a kernel parancssori paramétere «traceoff_after_boot», amely letiltja a nyomkövetést azután, hogy a kernel betöltődött és elindult az init folyamat. A paraméter problémák diagnosztizálására használható a betöltéssel kapcsolatban, biztosítva, hogy a betöltés során gyűjtött nyomkövetési adatok ne íródjanak felül.
    • A 32-bites x86 rendszerek támogatása megszűnt, amelyek több mint 8 CPU-val és 4 GB RAM-mal rendelkeznek. Az ilyen hardver már régóta nem elérhető, és a hasonló erőforrásokat igénylő rendszerek átálltak 64-bites CPU-kra.
    • A POSIX-időzítők megvalósításában olyan változtatásokat hajtottak végre, amelyek lehetővé teszik a CRIU (Checkpoint/Restore in Userspace) eszközkészlet számára, hogy menteni és helyreállítani tudja az időzítők azonosítóit.
  • Virtualizáció és biztonság
    • Lehetővé vált a Linux használata gyökér környezetként (Dom0, root partition) a Hyper-V (Microsoft Hypervisor) hypervisor számára. A host környezet felel a hypervisor kezeléséért, a vendég rendszerek indításának szervezéséért, az erőforrások kiosztásáért és az interakció biztosításáért. virtuális gépekhez a hardverrel. A Hyper-V hypervisor kezelése Linux alatt a /dev/mshv eszközön keresztül történik.
    • A Landlock modul, amely eszközöket biztosít a nem privilegizált programok számára a Linux kernel objektumok (fájlrendszer hierarchiák, hálózati socketek, ioctl stb.) használatának korlátozására, audit mechanizmussal bővült. Az audit lehetővé teszi a hozzáférés elzárásának okainak részletes értékelését, amelyeket a Landlock használatakor valósítanak meg, valamint segít megérteni, mikor és milyen műveletet blokkoltak, miért történt a blokkolás és melyik szabály lépett életbe.
    • Lehetővé vált az LSM modulok (Linux Security Modules) megvalósítása, amelyek kezelőket tartalmaznak az aszinkron bemeneti/kiadási io_uring rendszerhívások ellenőrzésére, és lehetővé teszik az io_uring használatának blokkolását a rendszerhívásokhoz való hozzáférés korlátozásának megkerülése érdekében. Az ilyen kezelők az LSM SELinux moduljában megvalósításra kerültek.
    • A SELinux lehetővé tette az irányelvek alkalmazását bármilyen adatformátumra, amelyet a kernel tölt be, beleértve a firmware képeket, a biztonsági irányelveket és a tanúsítványokat.
    • Új funkcióként bevezetésre került bizonyos memória leképezési műveletek rögzítési (seal) módja, amelyeket a kernel hajt végre a folyamat címterében. A rögzítés átállítja a leképezést írásvédett módba, és megakadályozza, hogy nyitott sebezhetőség esetén megváltozzon. Ez a vDSO, vsyscall, vvar, sigpage és uprobes leképezésekre vonatkozik. Az alapértelmezett mód ki van kapcsolva, mivel zavarhatja egyes alkalmazások működését. A funkció engedélyezéséhez újraépítési beállítás került bevezetésre, CONFIG_MSEAL_SYSTEM_MAPPINGS néven.
  • Hálózati alrendszer
    • Tovább folytatódik a hálózati stack globális zárolásának (RTNL) eltávolítása és ennek átalakítása, amely különböző hálózati névterekhez kapcsolódó zárolásokra épül.
    • Hozzáadva az alapfunkció a hálózati csomagok io_uring-en keresztüli megszerzésére, amely a tartalmat közvetlenül a felhasználói memória programjába másolja, köztes pufferelés nélkül (zero-copy). A végzett tesztek szerint a változtatás lehetővé tette a 200 gigabites csatornán keresztül érkező forgalom kezelését egy CPU maggal.
    • Megvalósult a sysctl tcp_rto_max_ms és a TCP-zsebek TCP_RTO_MAX_MS opciója, ami lehetővé teszi a csomagok újraküldési kísérletei közötti maximális idő beállítását.
    • A BPF-be egy sor callback hívás került hozzáadásra az időinformációk különböző helyekről való lekérésére a hálózati veremből, amely a hálózati késlekedések diagnosztizálására használható.
    • Hálózati műveletek teljesítményoptimalizálása történt:
      • The GRO (Generic Receive Offload) optimization, which combines multiple small packets into a single large one, is now utilized during the switching of packet processing to another CPU (for load balancing) while using the XDP (eXpress Data Path) subsystem, allowing packet processing at the network driver level before they are passed to the network stack. The performance gain from applying this optimization for TCP streams can reach up to two times.
      • Under heavy load, the performance of the connect() function has been increased by up to two times by replacing spin-locking with the RCU (Read-Copy-Update) synchronization mechanism when searching for records containing information about the connection endpoints (source and destination ports). Additionally, hash optimization has provided a further performance increase of 229%. IP address The implementation of MPTCP (Multipath TCP), an extension of the TCP protocol for delivering packets simultaneously over multiple routes through different network interfaces associated with different IP addresses, has been accelerated. MPTCP in single-stream mode has been sped up by 29%.
      • In netfilter, the execution of route search operations in FIB (Forwarding Information Base) has been halted in the presence of a socket. Thanks to this optimization, performance has increased by 20%.
      • UDP performance in flood conditions has been increased by 10% due to the elimination of unnecessary operations with the sk_tsflags structure when receiving packets.
      • A UDP teljesítménye flood helyzetekben 10%-kal nőtt a felesleges műveletek eltávolításával az sk_tsflags struktúrával a csomagok fogadása során.
    • Hozzáadva egy illesztőprogram az MCTP-over-USB protokoll megvalósításával.
  • Hardver
    • A kernelbe bekerült a Nova illesztőprogram kezdeti megvalósítása NVIDIA GPU-khoz, amelyek GSP firmware-rel vannak felszerelve, az NVIDIA GeForce RTX 2000 sorozattól kezdődően, a Turing mikroarchitektúrával. Az illesztőprogram Rust nyelven íródott. Az első szakaszban csak a nova-core kerete került be, körülbelül 400 sor kóddal, amely az GSP firmware programozási interfészek alapvető absztrakciós szintjét valósítja meg. A következő szakaszban a kernelbe tervezik beépíteni a nova-drm (Direct Rendering Manager) DRM illesztőprogramot, amely lehetővé teszi a GPU-k felhasználói térből való elérését, valamint a VFIO illesztőprogramot a vGPU menedzserrel, amely lehetővé teszi az NVIDIA virtuális GPU-k használatát virtualizáló rendszerekben.
    • Folytatódott az Xe DRM illesztőprogram (Direct Rendering Manager) fejlesztése Intel Xe architektúrára épülő GPU-khoz, amelyeket Intel Arc grafikus kártyákban és integrált grafikában használnak a Tiger Lake processzoroktól kezdődően. Támogatás került hozzáadásra az SVM-hez (Shared Virtual Memory), amely a DRM keretrendszer megosztott memóriáért felelős kiegészítője, használva a CPU és GPU között.
    • Az i915 illesztőprogramban új GPU-k azonosítói kerültek hozzáadásra.
    • A Nouveau illesztőprogramban újratervezésre került a GSP RPC és integrálva lett a drm_slave_encoder interfész.
    • Az AMDGPU illesztőprogramban megvalósult a DCN36 architektúra (Display Core Next) támogatása. Lehetővé vált a saját fényerőgörbék beállítása a kijelző fényerejének korrekciójához.
    • Az adreno illesztőprogramhoz hozzáadva a Qualcomm Adreno 623 GPU támogatása.
    • Hozzáadva az Apple Touch Bar érintőpanelek támogatása.
    • Hozzáadva az Embedded USB2 2.0 verziójának második változata (eUSB2V2), amely csökkenti a tápegység feszültségét (1,2 voltig) és növeli a USB 2.0 teljesítményét. Az eUSB2V2 adatszükséglete elérheti a 4,8 Gbit/s sebességet, ami tízszer gyorsabb a szokásos 480 Mbit/s-nál, amely jellemző a USB 2.0-ra. Az eUSB2V2 lehetővé teszi a gyártók számára, hogy a laptopokat magasabb felbontású webkamerákkal szereljék fel, miközben az Embedded USB2 buszt használják a csatlakoztatásukhoz.
    • Hozzáadva az Intel Killer E5000 (RTL8126) Ethernet adapterek támogatása.
    • Hozzáadva a Visionox RM692E5, Rockchip w552793dba-v10, kingdisplay-kd110n11-51ie és starry-2082109qfh040022-50e kijelzőpanelek támogatása.
    • Hozzáadva a Samsung Galaxy Book laptopokhoz készült meghajtó.
    • Hozzáadva a Presonus Studio 1824c és Jabra Evolve 65 hangrendszerek támogatása. Hozzáadva az AMD ACP 7.x, AWINC WM88166, Everest ES8388, Intel AVS PEAKVOL és GAIN DSP modulok támogatása. Fejlesztve a hang támogatása ASUS, HP és Lenovo laptopokhoz.
    • Hozzáadva az ARM platformok, SoC és eszközök támogatása: Arm Morello, AMD (Xilinx) Versal NET, Google Pixel Pro 6, NetCube Kumquat, MYIR Remi Pi, Huawei Matebook E Go, Milk-V Jupiter ST STM32MP2, Mediatek MT8370, Apple T2, Skov (i.MX8MP), EVK (i.MX95), Rockchip RK35xx, Allwinner A523, 11 Toradex alapú i.MX6 lap.

Ez idő alatt a latin-amerikai Szabad Szoftver Alapítvány kidolgozott egy teljesen szabad Linux 6.15-ös kernel variációt – Linux-libre 6.15-gnu, amelyet eltávolítottak a nem szabad összetevőket vagy gyártó által korlátozott kódrészeket tartalmazó firmware elemekből. A 6.15-ös verzióban semlegesítették a blobok betöltését a nova, Qualcomm iris v4l2, Airoha NPU, Tehuti Networks TN40xx 10G ethernet, Realtek 8814A wifi, Apple Silicon SoC érintőképernyők, Renesas UFS és aw88166 audio meghajtóin. Megszűnt a Spider 1Gb ethernet meghajtó tisztítása, amelyet eltávolítottak a kernel összetételéből. Eltávolították a tivozált bináris fájlokra való hivatkozásokat. Megvalósították a blobok Rust nyelvű kódból való betöltésének blokkolását.

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