Linux 5.19 kernel kiadás

Két hónapos fejlesztés után Linus Torvalds bemutatta a Linux kernel 5.19 kiadását. A legfigyelemreméltóbb változások közé tartozik: a LoongArch processzorarchitektúra támogatása, a "BIG TCP" javítások integrációja, igény szerinti mód az fscache-ben, kódeltávolítás az a.out formátum támogatásához, a ZSTD használatának lehetősége firmware-tömörítéshez, interfész memóriakiürítés kezelése a felhasználói területről, az álvéletlen számgenerátor megbízhatóságának és teljesítményének növelése, az Intel IFS (In-Field Scan), az AMD SEV-SNP (Secure Nested Paging), az Intel TDX (Trusted Domain Extensions) és az ARM támogatása SME (Scalable Matrix Extension) bővítmények.

A közleményben Linus elmondta, hogy nagy valószínűséggel a következő kernelkiadás a 6.0-s lesz, mivel az 5.x ág annyi kiadást halmozott fel, hogy a verziószám első számát módosítsa. A számozás módosítása esztétikai okokból történik, és egy olyan formai lépés, amely enyhíti a sorozatban felhalmozódó számos probléma miatti kényelmetlenséget.

Linus azt is megemlítette, hogy egy ARM64 architektúrán (Apple Silicon) alapuló Apple laptopot használt Asahi Linux disztribúción alapuló Linux környezettel a kiadás elkészítéséhez. Linusnak nem ez az elsődleges munkaállomása, de a platform segítségével tesztelte a kernelmunkára való alkalmasságát, és megbizonyosodott arról, hogy egy könnyű laptoppal utazva is képes kernel kiadásokat készíteni. Korábban, sok évvel ezelőtt Linusnak volt tapasztalata az Apple berendezések fejlesztésében – egyszer egy ppc970 CPU-n alapuló PC-t és egy Macbook Air laptopot használt.

Az új verzió 16401 2190 javítást tartalmaz 16206 2127 fejlesztőtől (a legutóbbi kiadásban 90 13847 fejlesztőtől 1149456 349177 javítás volt), a patch mérete 39 MB (a változtatások 5.19 21 fájlt érintettek, 11 4 3 kódsor került hozzáadásra, XNUMX sor került törlésre, XNUMX sor került törlésre). Az XNUMX-ben bevezetett változtatások körülbelül XNUMX%-a az eszközillesztőkkel kapcsolatos, a változtatások körülbelül XNUMX%-a a hardverarchitektúrák kódjának frissítéséhez, XNUMX%-a a hálózati veremhez, XNUMX%-a a fájlrendszerekhez és XNUMX%-a. belső kernel alrendszerekhez kapcsolódnak.

Főbb újítások a 5.19-as kernelben:

  • Lemez alrendszer, I/O és fájlrendszerek
    • A csak olvasható partíciókon való használatra szánt EROFS (Enhanced Read-Only File System) fájlrendszert az fscache alrendszer használatára alakították át, amely adatgyorsítótárat biztosít. A változtatás jelentősen javította azoknak a rendszereknek a teljesítményét, amelyekben EROFS-alapú képről indítanak el nagyszámú konténert.
    • Egy igény szerinti olvasási mód került az fscache alrendszerbe, amely az EROFS optimalizálására szolgál. Az új mód lehetővé teszi az olvasási gyorsítótár megszervezését a helyi rendszerben található FS-képekből. Az eredetileg elérhető működési móddal szemben, amely a hálózati fájlrendszereken keresztül továbbított adatok helyi fájlrendszerében történő gyorsítótárazására összpontosít, az „on-demand” mód az adatok lekérésének és a gyorsítótárba írásának funkcióit egy különálló helyre delegálja. felhasználói térben futó háttérfolyamat.
    • Az XFS lehetővé teszi több milliárd kiterjesztett attribútum tárolását egy i-node-ban. Az egy fájl maximális kiterjedésének számát 4 milliárdról 247-re növelték. Egy módot implementáltak több kiterjesztett fájlattribútum atomi frissítésére egyszerre.
    • A Btrfs fájlrendszer optimalizálta a zárolásokkal való munkát, ami körülbelül 7%-os teljesítménynövekedést tett lehetővé, ha Nowait módban közvetlenül ír. A műveletek teljesítménye NOCOW módban (írás-másolás nélkül) körülbelül 3%-kal nő. Az oldal gyorsítótárának terhelése a „send” parancs futtatásakor csökkent. Az aloldalak minimális mérete 64K-ról 4K-ra csökkent (a kerneloldalaknál kisebb aloldalak használhatók). Átmenet történt a radix fa használatáról az XArrays algoritmusra.
    • Az NFS-kiszolgálóhoz egy mód került hozzáadásra, amely kiterjeszti a kérésekre nem válaszoló kliens által beállított zárolási állapot megőrzését. Az új mód lehetővé teszi, hogy akár egy nappal késleltesse a zár törlését, hacsak egy másik kliens nem kér konkurens zárolást. Normál módban a blokkolás törlődik 90 másodperccel azután, hogy az ügyfél már nem válaszol.
    • A fanotify FS eseménykövető alrendszere megvalósítja a FAN_MARK_EVICTABLE jelzőt, amellyel letilthatja a cél i-csomópontok rögzítését a gyorsítótárban, például az alágak figyelmen kívül hagyásához anélkül, hogy részeiket rögzítenék a gyorsítótárban.
    • A FAT32 fájlrendszer illesztőprogramja támogatja a fájl létrehozásának idejére vonatkozó információk megszerzését a statx rendszerhíváson keresztül, a stat() hatékonyabb és funkcionálisabb verziójának megvalósításával, amely kiterjesztett információkat ad vissza a fájlról.
    • Jelentős optimalizálások történtek az exFAT illesztőprogramon, hogy lehetővé tegyék a szektorok egy csoportjának egyidejű törlését, amikor a „dirsync” mód aktív, a szekvenciális szektoronkénti törlés helyett. Az optimalizálás utáni blokkkérések számának csökkentésével az SD-kártyán nagyszámú könyvtár létrehozásának teljesítménye a klaszter méretétől függően több mint 73-85%-kal nőtt.
    • A kernel tartalmazza az ntfs3 illesztőprogram első javító frissítését. Amióta tavaly októberben bekerült az ntfs3 az 5.15-ös kernelbe, az illesztőprogram frissítése nem történt meg, és a kommunikáció megszakadt a fejlesztőkkel, de a fejlesztők most folytatták a változtatások közzétételét. A javasolt javítások kiküszöbölték a memóriaszivárgáshoz és összeomláshoz vezető hibákat, megoldották az xfstests végrehajtásával kapcsolatos problémákat, kitisztították a nem használt kódot, és kijavították a gépelési hibákat.
    • Az OverlayFS esetében megvalósították a csatlakoztatott fájlrendszerek felhasználói azonosítóinak leképezését, ami arra szolgál, hogy egy adott felhasználó fájljait egy felcsatolt idegen partíción egy másik felhasználóval párosítsa a jelenlegi rendszeren.
  • Memória- és rendszerszolgáltatások
    • Hozzáadott kezdeti támogatás a Loongson 3 5000 processzorokban használt LoongArch utasításkészlet architektúrához, amely az új RISC ISA-t valósítja meg, hasonlóan a MIPS-hez és a RISC-V-hez. A LoongArch architektúra három változatban érhető el: lecsupaszított 32 bites (LA32R), normál 32 bites (LA32S) és 64 bites (LA64).
    • Az 5.1-es kiadásban elavult a.out futtatható fájlformátum támogatására eltávolított kód. Az a.out formátum már régóta elavult Linux rendszereken, és az a.out fájlok generálását a modern eszközök nem támogatják az alapértelmezett Linux konfigurációkban. Az a.out fájlok betöltője teljes egészében a felhasználói térben megvalósítható.
    • Az x86-specifikus rendszerindítási opciók támogatása megszűnt: nosp, nosmap, nosmep, noexec és noclflush).
    • A régóta támogatás nélkül maradt elavult CPU h8300 architektúra (Renesas H8/300) támogatása megszűnt.
    • Kibővített képességek az osztott zárolások ("split locks") észlelésére való reagáláshoz, amelyek a memóriában lévő nem igazított adatokhoz való hozzáféréskor fordulnak elő, mivel egy atomi utasítás végrehajtása során az adatok kereszteznek két CPU gyorsítótár vonalat. Az ilyen dugulások a teljesítmény jelentős csökkenéséhez vezetnek. Ha korábban alapértelmezés szerint a kernel figyelmeztetést adott ki a blokkolást okozó folyamatról, most a problémás folyamat tovább lassul, hogy megőrizze a rendszer többi részének teljesítményét.
    • Hozzáadott támogatás az Intel processzorokban megvalósított IFS (In-Field Scan) mechanizmushoz, amely lehetővé teszi alacsony szintű CPU diagnosztikai tesztek futtatását, amelyek hibajavító kódok (ECC) vagy paritásbitek alapján azonosítják azokat a problémákat, amelyeket a szabványos eszközök nem észlelnek. . Az elvégzett tesztek letölthető firmware formájában készülnek, a mikrokód frissítésekhez hasonlóan. A teszteredmények a sysf-en keresztül érhetők el.
    • Hozzáadtuk a rendszermagba bootconfig fájl beágyazásának lehetőségét, amely a parancssori opciókon kívül lehetővé teszi a kernel paramétereinek beállítását egy beállítási fájlon keresztül. A beágyazás a 'CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»' összeállítási opcióval történik. Korábban a bootconfig-ot az initrd képhez való csatolás határozta meg. A rendszermagba való integráció lehetővé teszi a bootconfig használatát olyan konfigurációkban, amelyekben nincs initrd.
    • Megvalósították a Zstandard algoritmussal tömörített firmware letöltésének lehetőségét. A /sys/class/firmware/* vezérlőfájlok készlete hozzáadásra került a sysf-hez, lehetővé téve a firmware-betöltés kezdeményezését a felhasználói területről.
    • Az io_uring aszinkron I/O interfész egy új jelzőt kínál, az IORING_RECVSEND_POLL_FIRST, amely beállításakor először egy hálózati műveletet küld lekérdezéssel történő feldolgozásra, ami erőforrásokat takaríthat meg olyan helyzetekben, amikor a művelet feldolgozása némi késéssel elfogadható. Az io_uring a socket() rendszerhívás támogatását is hozzáadta, új jelzőket javasolt a fájlleírók kezelésének egyszerűsítésére, hozzáadott egy „multi-shot” módot több kapcsolat egyszerre történő elfogadásához az accept() hívásban, és hozzáadott műveleteket az NVMe továbbításához. parancsokat közvetlenül az eszközre.
    • Az Xtensa architektúra támogatja a KCSAN (Kernel Concurrency Sanitizer) hibakereső eszközt, amelyet arra terveztek, hogy dinamikusan észlelje a versenyfeltételeket a kernelen belül. Az alvó üzemmód és a társprocesszorok támogatása is hozzáadva.
    • Az m68k architektúrához (Motorola 68000) egy Android Goldfish emulátoron alapuló virtuális gépet (platformszimulátort) valósítottak meg.
    • Az AArch64 architektúra esetében az Armv9-A SME (Scalable Matrix Extension) bővítmények támogatása megtörtént.
    • Az eBPF alrendszer lehetővé teszi a gépelt mutatók tárolását a térképstruktúrákban, és támogatja a dinamikus mutatókat is.
    • Egy új proaktív memória-visszanyerési mechanizmust javasolunk, amely támogatja a felhasználói terület vezérlését a memory.reclaim fájl használatával. Ha egy számot ír a megadott fájlba, akkor a megfelelő számú bájtot megpróbál kiüríteni a cgrouphoz társított halmazból.
    • Megnövelt memóriahasználati pontosság a swap partícióban lévő adatok tömörítésekor a zswap mechanizmussal.
    • A RISC-V architektúra esetében támogatja a 32 bites futtatható fájlok futtatását 64 bites rendszereken, egy módot adnak hozzá a korlátozó attribútumok memóriaoldalakhoz kötéséhez (például a gyorsítótár letiltásához), és implementálják a kexec_file_load() függvényt. .
    • A 32 bites Armv4T és Armv5 rendszerek támogatásának megvalósítása a különféle ARM-rendszerekhez alkalmas univerzális többplatformos kernelépítésekhez lett igazítva.
  • Virtualizáció és biztonság
    • Az EFI alrendszer lehetővé teszi a titkos információk bizalmas átvitelét a vendégrendszerekbe anélkül, hogy azokat felfedné a gazdarendszerrel. Az adatokat a securityfs security/coco könyvtárán keresztül biztosítjuk.
    • A zárolásvédelmi mód, amely korlátozza a root felhasználók hozzáférését a rendszermaghoz, és blokkolja az UEFI Secure Boot bypass útvonalait, megszüntette azt a kiskaput, amely lehetővé tette a védelem megkerülését a kernel hibakeresőjének manipulálásával.
    • Tartalmazza az álvéletlenszám-generátor megbízhatóságának és teljesítményének javítását célzó javításokat.
    • A Clang 15 használatával történő építés során a rendszermag-struktúrák véletlenszerűsítésének mechanizmusa is megvalósul.
    • A Landlock mechanizmus, amely lehetővé teszi a folyamatok egy csoportjának a külső környezettel való interakciójának korlátozását, támogatja azokat a szabályokat, amelyek lehetővé teszik a fájlátnevezési műveletek végrehajtásának szabályozását.
    • Az IMA (Integrity Measurement Architecture) alrendszer, amelyet az operációs rendszer összetevőinek sértetlenségének digitális aláírások és kivonatok segítségével történő ellenőrzésére terveztek, átállt az fs-verity modul használatára a fájlok ellenőrzéséhez.
    • Az eBPF alrendszerhez való jogosulatlan hozzáférés letiltásakor a műveletek logikája megváltozott - korábban a bpf() rendszerhíváshoz kapcsolódó összes parancs le volt tiltva, és az 5.19-es verziótól kezdve az objektumok létrehozásához nem vezető parancsokhoz való hozzáférés meghagyta. . Ez a viselkedés egy privilegizált folyamatot igényel egy BPF-program betöltéséhez, de ekkor a nem jogosult folyamatok kölcsönhatásba léphetnek a programmal.
    • Hozzáadott támogatás az AMD SEV-SNP (Secure Nested Paging) bővítményhez, amely biztonságos munkát biztosít beágyazott memórialaptáblázatokkal, és megvédi az AMD EPYC processzorokat érő „undeSErVed” és „SEVerity” támadásoktól, amelyek lehetővé teszik az AMD SEV (Secure Encrypted Virtualization) megkerülését. ) védelmi mechanizmus.
    • Támogatás hozzáadva az Intel TDX (Trusted Domain Extensions) mechanizmusához, amely lehetővé teszi, hogy blokkolja a harmadik felek azon kísérleteit, hogy hozzáférjenek a virtuális gépek titkosított memóriájához.
    • A blokkolóeszközök emulálására használt virtio-blk illesztőprogram kiegészítette az I/O-t lekérdezéssel, ami a tesztek szerint körülbelül 10%-kal csökkentette a várakozási időt.
  • Hálózati alrendszer
    • A csomag egy sor BIG TCP javítást tartalmaz, amelyek lehetővé teszik a TCP-csomagok maximális csomagméretének 4 GB-ra történő növelését a nagy sebességű belső adatközponti hálózatok működésének optimalizálása érdekében. Hasonló csomagméret-növekedést 16 bites fejlécmezővel érhetünk el „jumbo” csomagok megvalósításával, amelyek IP-fejlécében a méret 0, a tényleges méret pedig külön 32 bitesben kerül továbbításra. mezőben egy külön csatolt fejlécben. A teljesítményteszt során a csomagméret 185 KB-ra állítása 50%-kal növelte az átviteli sebességet és jelentősen csökkentette az adatátviteli késleltetést.
    • Folytatódott a munka az eszközök hálózati verembe való integrálásával a csomagok eldobásának okainak nyomon követésére (okkódok). Az okkód akkor kerül elküldésre, amikor a csomaghoz társított memória felszabadul, és lehetővé teszi az olyan helyzeteket, mint például a csomagok elvetése fejléchibák miatt, rp_filter hamisítás észlelése, érvénytelen ellenőrző összeg, memóriahiány, IPSec XFRM szabályok aktiválása, érvénytelen TCP sorozatszám stb.
    • Támogatás hozzáadva az MPTCP (MultiPath TCP) kapcsolatok visszaállításához a normál TCP használatához olyan helyzetekben, amikor bizonyos MPTCP funkciók nem használhatók. Az MPTCP a TCP protokoll kiterjesztése a TCP kapcsolat működésének megszervezésére a csomagok egyidejű, több útvonalon történő kézbesítésével, különböző IP-címekhez társított különböző hálózati interfészeken keresztül. Hozzáadott API az MPTCP adatfolyamok felhasználói térből történő vezérléséhez.
  • Оборудование
    • Hozzáadott több mint 420 400 kódsort az amdgpu illesztőprogramhoz, amelyből körülbelül 22.5 21 sor automatikusan generált fejlécfájl az ASIC regiszteradatokhoz az AMD GPU illesztőprogramjában, és további 4 21 sor biztosítja az AMD SoC13 támogatásának kezdeti megvalósítását. Az AMD GPU-k teljes illesztőprogram-mérete meghaladta a 3 millió kódsort. A SoC7000 mellett az AMD illesztőprogram támogatja az SMU XNUMX.x-et (System Management Unit), az USB-C és a GPUVM frissített támogatását, valamint készen áll az RDNAXNUMX (RX XNUMX) és a CDNA (AMD Instinct) következő generációinak támogatására. platformok.
    • Az i915 illesztőprogram (Intel) kibővített energiagazdálkodási képességekkel rendelkezik. Hozzáadott azonosítók a laptopokon használt Intel DG2 (Arc Alchemist) GPU-khoz, kezdeti támogatás biztosított az Intel Raptor Lake-P (RPL-P) platformhoz, hozzáadott információk az Arctic Sound-M grafikus kártyákról, implementált ABI a számítási motorokhoz, hozzáadva A DG2 kártyák Tile4 formátum támogatása, a Haswell mikroarchitektúrán alapuló rendszerek esetében a DisplayPort HDR támogatást valósítják meg.
    • A Nouveau illesztőprogram átváltott a drm_gem_plane_helper_prepare_fb kezelő használatára; egyes struktúrákra és változókra statikus memóriafoglalást alkalmaztak. Ami az NVIDIA nyílt forráskódú kernelmoduljainak Nouveau-ban történő használatát illeti, az eddigi munka a hibák azonosításán és kiküszöbölésén múlik. A jövőben a közzétett firmware-t a tervek szerint az illesztőprogramok teljesítményének javítására fogják használni.
    • Hozzáadott egy illesztőprogramot az Apple számítógépekben használt NVMe vezérlőhöz az M1 chipen alapulva.

Ezzel egy időben a Latin-Amerikai Szabad Szoftver Alapítvány létrehozta a teljesen ingyenes kernel 5.19 - Linux-libre 5.19-gnu verzióját, amely megtisztította a firmware elemeitől és a nem szabad komponenseket vagy kódrészleteket tartalmazó illesztőprogramoktól, amelyek hatóköre a gyártó korlátozza. Az új kiadás megtisztítja a pureLiFi X/XL/XC és a TI AMx3 Wkup-M3 IPC illesztőprogramjait. Frissített blobtisztító kód a Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu illesztőprogramokban és alrendszerekben. A Qualcomm AArch64 devicetree fájlok feldolgozása megvalósult. Támogatás hozzáadva az új Sound Open Firmware komponens elnevezési séma számára. Leállította az ATM Ambassador illesztőprogram tisztítását, amelyet eltávolítottak a kernelből. A blob-tisztítás kezelése a HDCP-ben és a Mellanox Core-ban külön kconfig-címkékbe került.

Forrás: opennet.ru

Hozzászólás