A Linux 5.19 kernel kiadása

Két hónapos fejlesztés után Linus Torvalds bemutatta a Linux 5.19 kernel kiadását. A legkiemelkedőbb változások között szerepel: a LoongArch processzorarchitektúra támogatása, a „BIG TCP” patch-ek integrálása, az „on-demand” mód a fscache-ben, az a.out formátum támogatásának eltávolítása, a ZSTD alkalmazásának lehetősége a firmware-ek tömörítésére, interfész a felhasználói térből történő memória kényszerítés kezelésére, a véletlenszám-generátor megbízhatóságának és teljesítményének növelése, valamint az Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) és ARM SME (Scalable Matrix Extension) kiterjesztések támogatása.

A bejelentés során Linus közölte, hogy a következő kernel kiadás valószínűleg 6.0 számot fog kapni, mivel az 5.x ágban elegendő kiadás halmozódott fel ahhoz, hogy a verziószám első számjegye megváltozzon. A számozás változása esztétikai okokból történik, és formális lépés, amely eltünteti a kényelmetlenséget az 5.x sorozatban felhalmozódott nagy számú kiadás miatt.

Linus említette azt is, hogy az Apple ARM64 architektúrájára épülő laptopján (Apple Silicon) tesztelte a kiadást, amely az Asahi Linux disztribúcióval rendelkező Linux környezetben működött. Ez nem Linus fő munkaállomása, de ezt a platformot használta annak ellenőrzésére, hogy képes-e kernel kiadások készítésére útközben, egy könnyű laptop birtokában. Sok évvel ezelőtt Linus már tapasztalatot szerzett az Apple hardver fejlesztéséhez — régebben ppc970 CPU-val rendelkező gépet és Macbook Air laptopot használt.

Az új verzióban 16401 javítás került be a 2190 fejlesztőtől (az előző kiadásban 16206 javítás volt 2127 fejlesztőtől), a patch mérete 90 MB (a módosítások 13847 fájlt érintettek, 1149456 kódsor került hozzáadásra, 349177 kódsor törlésre került). Az 5.19 változások körülbelül 39%-a a készülékek illesztőprogramjaival kapcsolatos, körülbelül 21%-a a hardverarchitektúrákra vonatkozó kódfrissítésekhez, 11%-a a hálózati veremhez, 4%-a a fájlrendszerekhez, és 3%-a a kernel belső alrendszereihez kapcsolódik.

A 5.19 kernel fő újdonságai:

  • Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
    • Az EROFS (Enhanced Read-Only File System) fájlrendszer, amelyet csak olvasható módú partíciókon való használatra terveztek, átállt az fscache alrendszer használatára, amely adatokat cache-el. Ez a változás jelentősen növelte azon rendszerek teljesítményét, amelyek nagy számú konténert indítanak EROFS-alapú képből.
    • Az fscache alrendszerhez hozzáadták a kérésre olvasási módot („on-demand”), amelyet az EROFS optimalizálására használnak. Az új mód lehetővé teszi a fájlrendszerekből származó képek olvasásának cache-elését a helyi rendszeren. Az eredetileg elérhető módban, amely a hálózati fájlrendszereken keresztül továbbított adatok helyi fájlrendszerbeli cache-elésére irányult, az „on-demand” mód a háttérben futó folyamatnak delegálja az adatok kinyerésének és cache-elésének funkcióit, amely felhasználói térben fut.
    • Az XFS lehetővé teszi milliárdok kiterjesztett attribútumainak tárolását az i-nódban. Egy fájl maximális kiterjedése 4 milliárdról 247-re növekedett. Megvalósították a több kiterjesztett fájlattribútum atomikus frissítésének üzemmódját.
    • A Btrfs fájlrendszerben optimalizálták a zárak kezelését, ami körülbelül 7%-os teljesítménynövekedést eredményezett közvetlen írás esetén mostwait módra. Az NOCOW (copy-on-write nélkül) üzemmódban végzett műveletek teljesítménye körülbelül 3%-kal nőtt. Csökkent a lapcache-re nehezedő terhelés a „send” parancs használatakor. Az aloldalak minimális mérete 64K-ról 4K-ra csökkent (a lapoknál kisebb méretű aloldalak is használhatók). Átálltak az alaptól függő fákról (radix tree) az XArrays algoritmusra.
    • NFS-szerverhez hozzáadták a lezárási állapot megőrzésének hosszabbítási módját, amelyet az ügyfél állított be, de már nem reagál a kérdésekre. Az új mód lehetővé teszi, hogy a lezárás törlése akár egy napig késlekedjen, ha másik ügyfél nem kér versenyképes lezárást. Normál módban a lezárást 90 másodperccel azután törlik, hogy az ügyfél már nem reagál.
    • A fanotify FS eseménykövető alrendszerében megvalósították a FAN_MARK_EVICTABLE zászlót, amellyel le lehet állítani a célzott i-nódok cache-elésének rögzítését, például a fájlok egyes részei cache-elésének figyelmen kívül hagyására.
    • A FAT32 fs driver successfully supports retrieving file creation time information via the statx system call, implementing a more efficient and functional version of stat() that returns extended information about the file.
    • Significant optimizations have been made to the exFAT driver, related to simultaneous cleanup of a group of sectors in ‘dirsync’ mode, instead of sequential sector-by-sector cleanup. As a result of reducing the number of block requests after optimizations, the performance of creating a large number of directories on the SD card has increased by more than 73-85%, depending on the cluster size.
    • The first corrective update to the ntfs3 driver has been included in the kernel. Since the inclusion of ntfs3 in kernel 5.15 last October, the driver has not been updated, and communication with developers was lost, but now the developers have resumed publishing changes. The proposed patches fix memory leaks and crashes, resolve issues with running xfstests, clean up unused code, and correct typos.
    • For OverlayFS, the ability to map user identifiers of mounted file systems has been implemented to match files of a specific user on a mounted foreign partition with another user in the current system.
  • Memória és rendszerszolgáltatások
    • Initial support for the LoongArch instruction set architecture, used in Loongson 3 5000 processors, has been added, implementing a new RISC ISA similar to MIPS and RISC-V. The LoongArch architecture is available in three variants: a trimmed 32-bit (LA32R), a standard 32-bit (LA32S), and a 64-bit (LA64).
    • The code for supporting the a.out executable file format has been removed, which was classified as deprecated in release 5.1. The a.out format has long been obsolete on Linux systems, and generating a.out files is not supported by modern toolchains in configurations for Linux by default. The loader for a.out files can be entirely implemented in user space.
    • Support for architecture-specific boot options for x86 (nosep, nosmap, nosmep, noexec, and noclflush) has been discontinued.
    • Support for the deprecated CPU architecture h8300 (Renesas H8/300), which has long been unsupported, has been discontinued.
    • A memóriában található nem megfelelő adatokhoz való hozzáférés miatt fellépő "split lock" blokkolásokra történő reagálás lehetőségei kibővültek. Az ilyen blokkolások jelentős teljesítménycsökkenést okoznak. Ha korábban a kernel alapértelmezés szerint figyelmeztetést adott a blokkolást kiváltó folyamatról, most a problémás folyamatot további lassítással kezelik a rendszer többi részének teljesítményének megőrzése érdekében.
    • Hozzáadva az Intel processzorok által megvalósított IFS (In-Field Scan) mechanizmus támogatása, amely lehetővé teszi a CPU alacsony szintű diagnosztikai tesztjeinek futtatását, képes észlelni azokat a problémákat, amelyeket a szokásos hibajavító kódok (ECC) vagy paritásbit alapú eszközök nem tudnak azonosítani. A végrehajtott tesztek olyan, frissítéshez hasonló, betölthető firmware formájában valósulnak meg. A tesztelési eredmények elérhetők a sysfs-en keresztül.
    • Lehetőség van a kernel bootconfig fájljába való beágyazásra, amely lehetővé teszi a kernel működési paramétereinek meghatározását a parancssori opciók mellett egy beállításokat tartalmazó fájl használatával. A beágyazás a 'CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"' összerakási opcióval történik. Korábban a bootconfig az initrd képhez való csatolással lett meghatározva. A kernelbe való beágyazás lehetővé teszi a bootconfig használatát initrd nélküli konfigurációkban.
    • Lehetőség lett megvalósítva olyan firmware-k betöltésére, amelyeket a Zstandard algoritmus segítségével tömörítettek. A sysfs-ben egy vezérlő fájlokat tartalmazó készlet került hozzáadásra a /sys/class/firmware/* útvonalon, lehetővé téve a firmware-k felhasználói térből történő betöltésének kezdeményezését.
    • Az io_uring aszinkron bemeneti/kimeneti interfészében egy új IORING_RECVSEND_POLL_FIRST zászló került bevezetésre, amelynek beállítása esetén a hálózati műveletet először pollingsal kezelik, ami erőforrást takaríthat meg olyan esetekben, amikor a művelet késleltetéssel is feldolgozható. Az io_uring-ben a socket() rendszerhívás támogatása is hozzá lett adva, új zászlók kerültek bevezetésre a fájl-azonosítók egyszerűbb kezelésére, bevezetésre került a "multi-shot" mód, amely lehetővé teszi, hogy az accept() hívás során egyszerre több kapcsolódási kísérletet fogadjanak, továbbá műveletek kerültek bevezetésre az NVMe parancsok közvetlenül a készülékbe történő átküldésére.
    • Az Xtensa architektúra támogatja a KCSAN (Kernel Concurrency Sanitizer) hibakereső eszközt, amely a rendszermagban lévő versenyállapotok dinamikus észlelésére szolgál. Emellett hozzáadott támogatás a mély alvás módhoz és a társprocesszorokhoz.
    • A m68k (Motorola 68000) architektúrához megvalósításra került virtuális gép (platformszimulátor), amely az Android Goldfish emulátoron alapul.
    • Az AArch64 architektúra támogatja az Armv9-A SME (Skálázható Mátrix Kiterjesztés) kiterjesztéseket.
    • Az eBPF alszisztemában lehetővé vált a típusos mutatók tárolása map-struktúrákban, és támogatás került hozzáadásra a dinamikus mutatókhoz.
    • Javasolták egy új előrejelző memória-túlírási mechanizmus bevezetését, amely lehetővé teszi a felhasználói térből történő irányítást a memory.reclaim fájl segítségével. A megadott szám írása a fájlba megkísérli a megfelelő számú bájt eltávolítását a cgroup-hoz rendelt halmazból.
    • Növelték a memóriahasználat nyilvántartásának pontosságát az adatok tömörítése során a swap területen a zswap mechanizmus segítségével.
    • A RISC-V architektúra támogatja a 32 bites futtatható fájlok indítását 64 bites rendszereken, hozzáadták a memóri Pages-hez kapcsolódó korlátozó attribútumok kötési módját (például a gyorsítótárazás megakadályozására), és megvalósult a kexec_file_load() funkció.
    • A 32 bites Armv4T és Armv5 rendszerek támogatásának megvalósítása az univerzális multimplatformos kernelgyűjtemények számára lett optimalizálva, amelyek különböző ARM rendszerekhez alkalmasak.
  • Virtualizáció és biztonság
    • Az EFI alszisztemában megvalósították a titkos információk bizalmas átadásának lehetőségét a vendég rendszereknek anélkül, hogy azokat a gazda rendszer felfedné. Az adatok a security/coco könyvtáron keresztül érhetők el a securityfs-ben.
    • A Lockdown védelmi módban, amely korlátozza a root felhasználó hozzáférését a kernelhez és blokkolja az UEFI Secure Boot megkerülésének útjait, megszüntették azt a kiskaput, amely lehetővé tette a védelem megkerülését a kernel hibakeresőjével végzett manipulációkon keresztül.
    • Belekerültek olyan javítások, amelyek célja a pszeudo-véletlenszám generátor megbízhatóságának és teljesítményének növelése.
    • A Clang 15 használatával történő fordításkor megvalósították a kernel struktúrák randomizálási mechanizmusának támogatását.
    • A Landlock mechanizmushoz, amely korlátozza a folyamatok csoportjának interakcióját a külső környezettel, hozzáadták a fájlok átnevezési műveleteinek végrehajtását ellenőrző szabályokat.
    • Az IMA (Integritásmérési Architektúra) alrendszer, amely az operációs rendszer komponenseinek integritásának ellenőrzésére szolgál digitális aláírások és hash-ek alapján, átállt az fs-verity modul használatára a fájlok verifikálásához.
    • Megváltozott a logika a csökkentett jogosultságú hozzáférés letiltásakor az eBPF alrendszerhez — korábban minden, a bpf() rendszerhívással kapcsolatos parancsot letiltottak, míg az 5.19-es verziótól kezdve megmaradt a hozzáférés azokhoz a parancsokhoz, amelyek nem vezetnek objektumok létrehozásához. Ilyen viselkedés esetén a BPF-program betöltéséhez jogosultságokkal rendelkező folyamat szükséges, de utána a csökkentett jogosultságú folyamatok kölcsönhatásba léphetnek ezzel a programmal.
    • Hozzáadva az AMD SEV-SNP (Biztonságos Beágyazott Oldalelrendezés) kiterjesztés támogatása, amely biztonságos működést biztosít a beágyazott memóriaoldaltáblákkal és véd a „undeSErVed” és „SEVerity” támadások ellen az AMD EPYC processzorok esetében, amelyek kihasználhatják az AMD SEV (Biztonságos Titkosított Virtualizáció) védelmi mechanizmust.
    • Hozzáadva az Intel TDX (Bizalmas Domain Kiterjesztések) mechanizmus támogatása, amely megakadályozza a harmadik fél hozzáférési kísérleteit a titkosított memóriahoz. virtuális gépekhez.
    • A virtio-blk meghajtóba, amelyet blokk eszközök emulálására használnak, hozzáadva a polling módszert a bemenet/kimenet kezelésére, ami a végzett tesztek alapján körülbelül 10%-kal csökkentette a késleltetéseket.
  • Hálózati alrendszer
    • A csomagba belekerült a BIG TCP patch széria, amely lehetővé teszi a maximális TCP-csomag méretének 4 GB-ra történő növelését a nagy sebességű adatközponti belső hálózatok optimalizálására. Az ilyen méretű csomag, a 16 bites fejlécmező méretével megvalósítva, jumbo csomagok implementálásával érhető el, ahol az IP-fejléce 0-ra van állítva, míg a tényleges méret egy külön 32 bites mezőben szerepel egy külön csatlakoztatott fejlécben. Teljesítményteszt során a csomag méretének 185 KB-ra állítása 50%-kal növelte a sávszélességet és jelentősen csökkentette az adatátviteli késleltetéseket.
    • Folytatódik a memória felszabadításához kapcsolódó okok követésére szolgáló eszközök integrálása a hálózati stackbe (reason kódok). Az ok kódja a csomaggal kapcsolatos memória felszabadítása során kerül továbbításra, és lehetővé teszi olyan helyzetek figyelembevételét, mint például a csomag eldobása a fejléc mezők kitöltési hibái miatt, a spoofing kiszűrése az rp_filter segítségével, a hibás ellenőrző összeg, a memóriahiány, az IPSec XFRM szabályainak aktiválása, a TCP sorozatszám hibája stb.
    • Hozzáadva a MPTCP (MultiPath TCP) kapcsolatok visszagörgetésének támogatása a szokásos TCP használatára olyan helyzetekben, ahol bizonyos MPTCP funkciók nem használhatók. A MPTCP a TCP protokoll kiterjesztése, amely lehetővé teszi a TCP-kapcsolatok működését, a csomagok egyidejű továbbításával több útvonalon, különböző hálózati interfészeken keresztül, különböző IP-címekhez kötve. API került hozzáadásra az MPTCP folyamatok felhasználói térből való kezelésére.
  • Hardver
    • Több mint 420 ezer sort adtak hozzá az amdgpu illesztőprogramhoz, amelyből körülbelül 400 ezer sor automatikusan generált fejléc fájlokat tartalmaz az AMD GPU regisztereihez, míg 22,5 ezer sor kezdeti megvalósítást biztosít az AMD SoC21 támogatásához. Az AMD GPU illesztőprogram teljes mérete meghaladta a 4 millió kódsort. Az SoC21-en kívül az AMD illesztőprogram támogatja a SMU 13.x (System Management Unit) verziót, frissült az USB-C és GPUVM támogatás, előkészítve támogatást a következő RDNA3 (RX 7000) és CDNA (AMD Instinct) platformgenerációkhoz.
    • Az i915 (Intel) illesztőprogram bővítette az energiafelhasználás kezelésével kapcsolatos funkcióit. Hozzáadva az Intel DG2 (Arc Alchemist) GPU azonosítók, amelyek a laptopokon használhatóak, biztosítva az Intel Raptor Lake-P (RPL-P) platform kezdeti támogatását, információk hozzáadva az Arctic Sound-M grafikus kártyákról, ABI megvalósítva a számítási motorokhoz, a DG2 kártyák számára a Tile4 formátum támogatását hozzáadva, Haswell mikroarchitektúrára épülő rendszerekhez a DisplayPort HDR támogatás megvalósítva.
    • A Nouveau drivernél áttértek a drm_gem_plane_helper_prepare_fb kezelő használatára, bizonyos struktúrák és változók esetén statikus memóriaallokálást alkalmaztak. Ami a Nouveau-ban az NVIDIA által közzétett kernel modulok forráskódjának használatát illeti, a munka jelenleg a hibák azonosítására és kijavítására korlátozódik. A közeljövőben a közzétett firmware-t a driver teljesítményének növelésére tervezik felhasználni.
    • Új drivert adtak hozzá az NVMe vezérlőhöz, amelyet az M1 chippel rendelkező Apple számítógépekben használnak.

Az egyesült latin-amerikai Szabad Szoftver Alapítvány egy teljesen szabad 5.19-es kernel verziót alakított ki — Linux-libre 5.19-gnu, amely mentes a nem szabad összetevőket vagy gyártói korlátozású szoftver részeket tartalmazó firmware-ktől és driverektől. Az új kiadásban megtisztították a pureLiFi X/XL/XC és TI AMx3 Wkup-M3 IPC drivereket. Frissítették a blobok tisztítási kódját a Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu driverekben. Implementálták a Qualcomm AArch64 eszközfa fájlok feldolgozását. Hozzáadták az új Sound Open Firmware komponens elnevezési sémájának támogatását. Megszüntették az ATM Ambassador driver tisztítását, amelyet eltávolítottak a kernélből. A blobok tisztításának kezelése az HDCP és Mellanox Core esetében külön kconfig tagekbe került.

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