A Linux 5.2 kernel kiadása

Két hónap fejlesztés után Linus Torvalds bemutatott a kernel kiadás Linux 5.2. A legfontosabb változások között szerepel: az Ext4 fájlrendszer kis- és nagybetű érzéketlen működése, a fájlrendszerek csatolására vonatkozó külön rendszerv calls, a Mali 4xx/6xx/7xx GPU-khoz készült meghajtók, a sysctl értékeinek BPF programokban történő módosítás kezelése, a device-mapper dm-dust modul, MDS támadások elleni védelem, a Sound Open Firmware DSP támogatása, a BFQ teljesítményoptimalizáció, valamint a PSI (Pressure Stall Information) alrendszer Androidon való használatra való alkalmassá tétele.

Az új verzióba 15100 javítás került be, 1882 fejlesztőtől.
A javítás mérete 62 MB (a változások 30889 fájlt érintettek, 625094 kódsort adtak hozzá, 531864 kódsort töröltek). A 5.2-es verzióban bemutatott változások körülbelül 45%-a
az eszközmeghajtókhoz kapcsolódik, körülbelül 21%-a a hardver architektúrákhoz specifikus kód frissítésekkel, 12%-a
a kernel alrendszereivel. Az összes változás 12,4%-át az Intel, 6,3%-át a Red Hat, 5,4%-át a Google, 4,0%-át az AMD, 3,1%-át a SUSE, 3%-át az IBM, 2,7%-át a Huawei, 2,7%-át a Linaro, 2,2%-át az ARM, és 1,6%-át az Oracle készítette.
a hálózati veremhez kapcsolódik, 3% — fájlrendszerekhez és 3% a belsőkhöz
Az Ext4-ben hozzáadták

Fő újdonságok:

  • Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
    • a kis- és nagybetű érzéketlen fájlnevek kezelését, amely csak külön üres könyvtárakhoz kapcsolva aktiválható az új «+F» (EXT4_CASEFOLD_FL) attribútummal. Ha ezt az attribútumot egy könyvtárra állítjuk, minden fájllal és almappával végzett művelet kis- és nagybetűtől függetlenül zajlik, így a keresési és fájlmegnyitási műveletek során is figyelmen kívül hagyják a kis- és nagybetűk különbségét (például a Test.txt, test.txt és test.TXT fájlok ugyanannak a könyvtárnak a belsejében azonosnak számítanak). Alapértelmezés szerint a fájlrendszer továbbra is kis- és nagybetű érzékeny, kivéve a «chattr +F» attribútummal rendelkező könyvtárakat; Passkey A fájlnevekben használt UTF-8 karakterek feldolgozó függvényei egységesítve lettek, amelyeket a szövegek összehasonlító és normalizáló műveleteinek végrehajtásakor alkalmaznak;
    • Az XFS-hez hozzáadták az állapotfigyelő infrastruktúrát és egy új ioctl-t a működési státusz lekérdezésére. Megvalósították a felhőben történő ellenőrzés (online scrub) kísérleti lehetőségét a szuperblokk számlálóin.
    • Hozzáadtak egy új device-mapper modult, «
    • dm-dust«, amely lehetővé teszi a bad-blockok megjelenítésének szimulálását a tárolón vagy a lemez olvasási hibáinak előállítását. A modul leegyszerűsíti az alkalmazások és különféle tárolórendszerek hibás működésének tesztelését és debugolását.«, позволяющий симулировать появление bad-блоков на носителе или ошибок при чтении с диска. Модуль позволяет упростить отладку и тестирование приложений и различных систем хранения в условиях возможного появления сбоев;
    • Elvégezve jelentős teljesítményoptimalizálás az I/O tervező BFQ számára. Magas I/O terhelés mellett végrehajtott optimalizációk lehetővé teszik akár 80%-kal csökkenthetjük az ilyen műveletek, mint az alkalmazások indítása időtartamát;
    • Új rendszerhívások kerültek hozzáadásra a fájlrendszerek csatolásához: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() és move_mount(). Ezek a rendszerhívások lehetővé teszik a csatolás különböző szakaszainak külön kezelését (szuperblokk kezelése, fájlrendszer információjának megszerzése, csatolás, csatolás egy csatlakozási ponthoz), amelyeket korábban az mount() általános rendszerhívással hajtottak végre. A különálló hívások lehetővé teszik bonyolultabb csatolási forgatókönyvek végrehajtását, valamint lehetővé teszik olyan műveletek, mint a szuperblokk újra konfigurálása, opciók aktiválása, csatlakozási pont módosítása és más névtérbe helyezés. Ezenkívül a különböző folyamatok pontosabb hibakódok visszaadását teszik lehetővé, valamint több forrás megadását többrétegű fájlrendszerekhez, például overlayfs-hez;
    • Az aszinkron I/O io_uring interfészhez új IORING_OP_SYNC_FILE_RANGE művelet került hozzáadásra, amely a rendszerhívással egyenértékű műveleteket hajt végre sync_file_range(), és megvalósult az eventfd regisztrálásának lehetősége az io_uring-nél, lehetővé téve a műveletek befejezésének értesítéseit;
    • A CIFS fájlrendszerhez hozzáadott FIEMAP ioctl hatékony kiterjedés-mappinget biztosít, valamint támogatja a SEEK_DATA és SEEK_HOLE módokat;
    • A FUSE alrendszerben ajánlott API az adatok gyorsítótár-kezeléséhez;
    • A Btrfs fájlrendszerben optimalizálva lett a qgroups megvalósítása, és megnövelték az fsync végrehajtási sebességét több kemény hivatkozással rendelkező fájlok esetén. Javult az adatintegritás ellenőrzésének kódja, amely most figyelembe veszi a RAM-ban lévő információk esetleges károsodását az adatok lemezkönyve előtt;
    • A CEPH-ben hozzáadva a pillanatfelvételek NFS-en keresztüli exportálásának támogatása;
    • Javult az NFSv4 csatolásának megvalósítása „soft” módban (ha hiba lép fel a szerver elérésénél „soft” módban, a hívás azonnal hibakódot ad vissza, míg a „hard” módban a vezérlés nem adható vissza a fájlrendszer elérhetőségének helyreállításáig vagy a timeout-ig). Az új kiadásban pontosabb timeout-ellenőrzés biztosított, felgyorsult a hibaelhárítás, és hozzáadva egy új csatolási lehetőség „softerr”, amely lehetővé teszi a timeout bekövetkezésekor visszaadott hibakód (ETIMEDOUT) módosítását;
    • Az nfsdcld API, amelyet az NFS-ügyfelek állapotának nyomon követésére terveztek, lehetővé teszi az NFS-szerver számára, hogy helyesen nyomon kövesse az ügyfél állapotát újraindításkor. Így az nfsdcld demon most az nfsdcltrack kezelőjeként funkcionálhat;
    • AFS-hez hozzáadva lett a fájlok byte tartományainak zárásának emulálása (Byte Range Locking);
  • Virtualizáció és biztonság
    • A kernelben azokat a helyeket sikeresen kijavították, amelyek lehetővé tették a kód végrehajtását az írásra elérhető visszatükröző mémterületekből, ezzel lehetségessé téve a potenciális réseket, amelyeket támadáskor ki lehetne használni;
    • Hozzáadásra került egy új parancssori paraméter a kernelhez, a „mitigations=”, amely egyszerűsített módot kínál a CPU-val kapcsolatos spekulatív végrehajtással kapcsolatos sebezhetőségek elleni védelmi technikák engedélyezésének kezelésére. A „mitigations=off” kapcsolja ki az összes elérhető módszert, míg az alapértelmezett „mitigations=auto” üzemmód aktiválja a védelmet, de nem befolyásolja a Hyper Threading használatát. Az „mitigations=auto,nosmt” üzemmód további Hyper Threadinget kapcsol ki, ha a védelmi módszer azt megköveteli.
    • Hozzáadva elektronikus digitális aláírás támogatása a GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3) szerint, kifejlesztve Vitalij Csikunov által a „Bazalt SPO”-tól. A TLS beépített megvalósítása AES128-CCM támogatással bővült. A crypto_simd modulba AEAD algoritmusok támogatása került.
    • A Kconfigban hozzáadva lett külön szekció a „kernel hardening” néven, amely lehetőségeket kínál a kernel védelem megerősítésére. Jelenleg az új szekcióban csak a GCC pluginok ellenőrzésének engedélyezésére vonatkozó beállítások találhatók;
    • A kernel kódja szinte már mentes az átfedő switch case kifejezésektől (return vagy break nélkül minden case blokk után). 32 esetet kell még javítani a 2311-ből, ezután a kernel összeállításakor alkalmazható lesz a „-Wimplicit-fallthrough” üzemmód;
    • A PowerPC architektúrához implementálva lett a kernel nem kívánt hozzáférési útvonalainak korlátozására szolgáló hardveres mechanizmusok támogatása;
    • Hozzáadva a kód a MDS (Microarchitectural Data Sampling) osztály letiltásához az Intel processzorokban. A rendszer védtelenségének ellenőrzésére a SysFS változó „/sys/devices/system/cpu/vulnerabilities/mds” használható. attacks Hozzáadva a kód a MDS (Microarchitectural Data Sampling) osztály blokkolásához az Intel processzorokban. A rendszer sebezhetőségének ellenőrzésére a SysFS-változó „/sys/devices/system/cpu/vulnerabilities/mds” használható. Elérhető Két védelmi mód: a teljes, amely frissített mikroprogramot igényel, és a megkerülő, amely nem garantálja a CPU pufferek tisztítását a vezérlés átadásakor a felhasználói vagy vendég rendszerhez. A védelmi módok kezelésére a kernelbe egy "mds=" paraméter került, amely "full", "full,nosmt" (+ a Hyper-Threads letiltása) és "off" értékeket vehet fel;
    • x86-64 rendszereken az IRQ, a hibakeresési mechanizmusok és a kivételkezelők esetében a "stack guard-page" védelem került bevezetésre, amely a verem határán található memóriaoldalak helyettesítésén alapul, amelyekhez való hozzáférés kivételt (page-fault) generál;
    • Hozzáadva a vm.unprivileged_userfaultfd sysctl-beállítás, amely a userfaultfd() rendszerhívás használatát szabályozza nem privilegizált folyamatok által;
  • Hálózati alrendszer
    • Hozzáadva IPv6 átjárók támogatása IPv4 útvonalakhoz. Például mostantól megadható az "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0" jellegű útvonal-szabály;
    • Az ICMPv6 esetében megvalósult az icmp_echo_ignore_anycast és az icmp_echo_ignore_multicast ioctl-hívás az anycast és multicast ICMP ECHO figyelmen kívül hagyására;
      multicast címek. Hozzáadva Lehetőség az ICMPv6 csomagok feldolgozási intenzitásának korlátozására;
    • A B.A.T.M.A.N. (Better Approach To Mobile Adhoc Networking) mesh protokoll támogatása, amely decentralizált hálózatok létrehozását teszi lehetővé, ahol minden csomópont a szomszédos csomópontokkal van összekötve; hozzáadva lett multicast-ból unicast-ba történő átkonvertálás támogatása, valamint a sysfs-en keresztüli kezelés lehetősége;
    • Az ethtool-ban hozzáadva új Fast Link Down paraméter került bevezetésre, amely csökkenti a linkesés eseményéről érkező információ beérkezési idejét 1000BaseT esetén (normál körülmények között a késleltetés akár 750 ms is lehet);
    • Megjelent lehetőség Foo-Over-UDP alagutak egy adott címhez, hálózati interfészhez vagy sockethez való hozzárendelése (korábban a hozzárendelés csak általános maszk alapján történt);
    • A vezeték nélküli veremben biztosítva van lehetőség a
      OWE (Opportunistic Wireless Encryption) kezelők megvalósítására felhasználói térben;
    • A Netfilter-ben a nat láncokhoz a inet címcsoport támogatása került hozzáadásra (például mostantól egy szabályt lehet alkalmazni az ipv4 és ipv6 kezelésére anélkül, hogy külön szabályokat kellene létrehozni);
    • A netlink-ben hozzáadva üzemmód szigorú, a minden üzenet és attribútum helyességének szigorú ellenőrzéséért, amely megakadályozza az elvárt attribútumméret túllépését és megtiltja a kiegészítő adatok üzenetek végére való hozzáadását;
  • Memória és rendszerszolgáltatások
    • A clone() rendszerhíváshoz hozzáadva a CLONE_PIDFD jelző, amelynek megadásakor a szülőfolyamat egy "pidfd" fájlleírót kap vissza, amely az újonnan létrehozott gyerekfolyamatra van azonosítva. Ezt a fájlleírót például jelek küldésére lehet használni anélkül, hogy versenyhelyzettel kellene szembenézni (a jel küldése után a cél PID a folyamat befejezése miatt felszabadulhat, és másik folyamathoz kerülhet);
    • A második verziójú cgroups-hoz hozzáadva a fagyasztó vezérlő funkcióját, amellyel megállítható a cgroup munkája és ideiglenesen felszabadíthatók bizonyos erőforrások (CPU, bemenet/kimenet és potenciálisan még memória) más feladatok végrehajtásához. Az irányítás a cgroup.freeze és cgroup.events vezérlő fájlon keresztül történik a cgroup fáfán. Az 1-es írás a cgroup.freeze-be fagyasztja a folyamatokat az aktuális cgroup-ban és minden gyerekcsoportban. Mivel a fagyasztásnak van egy kis ideje, ezért javasolt a cgroup.events fájl, amelyen keresztül tájékozódhatunk a művelet befejezéséről;
    • Biztosítva a sysfs-ben minden csomóponthoz kapcsolódó memóriaattribútumok exportálása, amely lehetővé teszi a felhasználói térből a memóriapénztárcák feldolgozásának jellegének meghatározását heterogén memória rendszerekben;
    • Fejlesztve lett a PSI (Pressure Stall Information) alrendszer, amely lehetővé teszi a különböző erőforrások (CPU, memória, bemenet/kimenet) megszerzésére várakozó idő információjának elemzését egyes feladatok vagy cgroupon belüli folyamatok csoportja számára. A PSI segítségével a felhasználói térben működő kezelők pontosabban fel tudják mérni a rendszer terheltségi szintjét és a lelassulás jellegét a Load Average-hoz képest. Az új verzió támogatja a küszöbérzékenység beállításának lehetőségét és a poll() hívás használatát a meghatározott időn belüli küszöbértékek aktiválásáról szóló értesítések beszerzésére. Ez a lehetőség lehetővé teszi az Android számára, hogy korai szakaszban kövesse a memóriahiányt, meghatározza a problémák forrását, és befejezze a nem fontos alkalmazásokat, anélkül, hogy jelentős problémák jelentkeznének a felhasználók számára. Stressztesztelés során a PSI alapú memóriafogyasztási megfigyelési eszközök tízszer kevesebb hamis riasztást mutattak a vmpressure statisztikáihoz képest;
    • A BPF-programok ellenőrzésére szolgáló kód optimalizálása megtörtént, amely a nagyobb programok esetében akár 20-szor gyorsabb ellenőrzést is lehetővé tesz. Az optimalizálás lehetővé tette a BPF-programok méretének határának 4096-ról egymillió utasításra való emelését.
    • BPF-programok számára hozzáférést kaptak globális adatokhoz való hozzáférés, amely lehetővé teszi globális változók és konstansok meghatározását a programokban;
    • az „Alkalmazás” eszköz API, lehetővé téve, hogy a BPF-programokból ellenőrizzék a sysctl paraméterek változásait;
    • A MIPS32 architektúra számára JIT-kompilátor került megvalósításra az eBPF virtuális géphez;
    • A 32-bites PowerPC architektúrához hozzáadva a KASan (Kernel address sanitizer) hibakereső eszköz támogatását, amely lehetővé teszi a memóriahasználat során fellépő hibák észlelését;
    • Az x86-64 rendszereken eltávolították a korlátozást a kernelhibák (crash-dump) állapotdumpjainak 896MB fölötti memória-területeken való elhelyezésére;
    • Az s390 architektúrához megvalósításra került a kernel címtartományának randomizálásának (KASLR) támogatása, valamint a digitális aláírások ellenőrzésének lehetősége a kernel kexec_file_load() általi betöltésekor;
    • A PA-RISC architektúra számára hozzáadva a kernel hibakereső (KGDB), ugrási címkék és kprobes támogatását;
  • Hardver
    • A készletbe bekerült egy meghajtó Lima a Mali 400/450 GPU számára, amelyet számos régebbi ARM architektúrájú chipben alkalmaznak. Az újabb Mali GPU-khoz hozzáadták a Panfrost meghajtót, amely támogatja a Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) és Bifrost (Mali G3x, G5x, G7x) mikroarchitektúrákra épülő chipeket;
    • Hozzáadva a hangkészülékek támogatása, amelyek nyílt firmware-t használnak Sound Open Firmware (SOF). A nyílt meghajtók ellenére a hangchipekhez készült firmware-kódok eddig zártak maradtak és bináris formában kerültek forgalomba. A Sound Open Firmware projektet az Intel indította el, hogy nyílt firmware-ket készítsen a hangfeldolgozással kapcsolatos DSP chipekhez (később a Google is bekapcsolódott a fejlesztésbe). Jelenleg a projekt keretein belül már elkészültek a nyílt firmware-ek az Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake és IceLake platformok hangchipeihez;
    • Az Intel (i915) DRM-illesztőprogramjában hozzáadva a chipek támogatását
      Elkhartlake (Gen11). PCI-azonosítók hozzáadva a Comet Lake (Gen9) chipek számára. Stabilizálva a Icelake chipek támogatását, amelyekhez további PCI-eszközazonosítók is hozzáadva.
      Bekapcsolva
      az aszinkron váltás módja két puffer között a videomemóriában (async flip) mmio-n keresztüli írási műveletek végrehajtása során, ami jelentősen javította egyes 3D-alkalmazások teljesítményét (például a 3DMark Ice Storm tesztben a teljesítmény 300-400%-kal nőtt). Hozzá lett adva a technológia támogatása HDCP2.2 (High-bandwidth Digital Content Protection) a HDMI-n keresztül továbbított videójel titkosításához;
    • Az amdgpu meghajtóban a Vega20 GPU-hoz hozzáadva lett támogatás a RAS (Reliability, Availability, Serviceability) számára, valamint kísérleti támogatás a Powerplay technológiát felváltó SMU 11 alrendszerhez. A Vega12 GPU-hoz hozzáadva lett támogatás a BACO módhoz (Bus Active, Chip Off). Hozzá lett adva az XGMI, a GPU-k összekapcsolására szolgáló nagy sebességű busz (PCIe 4.0) kezdeti támogatása. Az amdkfd meghajtóba be lettek vezetve a Polaris10 GPU-s kártyák hiányzó azonosítói;
    • A Nouveau meghajtóba hozzá lett adva a NVIDIA Turing 117 (TU117, a GeForce GTX 1650-ben használt) chipkészlet alapú kártyák támogatása. A
      kconfig hozzáadva lett beállítás a már nem használt elavult funkciók letiltásához, amelyek már nem alkalmazhatók az aktuális libdrm kiadásokban;
    • A DRM API és az amdgpu meghajtóba hozzá lett adva a "timeline" szinkronizációs objektumok támogatása, amelyek lehetővé teszik a klasszikus zárolások elkerülését.
    • A staging ágban a vboxvideo meghajtó a VirtualBox virtuális GPU-hoz került a fő összetételbe;
    • Hozzá lett adva az aspeed meghajtó az ASPEED SoC GFX chiphez;
    • Hozzá lett adva az ARM SoC és az Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Egyszerre Latin-Amerikai Szabad Szoftver Alapítvány megalapította
a verziót teljesen szabad 5.2 kernel — Linux-libre 5.2-gnu, a nem szabad elemeket és vezérlőprogramokat tartalmazó szoftverek után megtisztított verzió, amelynek alkalmazása a gyártó által korlátozott. Az új kiadásba bekerült a fájlok betöltése
Sound Open Firmware. A driverekben letiltották a blobok betöltését
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp és ucsi_ccg. Frissült a blobok tisztításának kódja a driverekben és az ixp4xx, imx-sdma, amdgpu, nouveau és goya alrendszerekben, valamint a mikrokód dokumentációjában. A r8822be driverben leállt a blobok tisztítása, mivel azt eltávolították.

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