Két hónapos fejlesztés után Linus Torvalds benyújtott kernel kiadás Linux 5.2. A legszembetűnőbb változások közé tartozik: az Ext4 működési mód nem tesz különbséget a kis- és nagybetűk között, külön rendszerhívások a fájlrendszer csatlakoztatásához, illesztőprogramok a GPU Mali 4xx/6xx/7xx-hez, a sysctl értékek változásainak kezelése a BPF programokban, eszközleképező dm-dust modul, MDS támadások elleni védelem, Sound Open Firmware támogatás DSP-hez, BFQ teljesítmény optimalizálása, a PSI (Pressure Stall Information) alrendszer androidos használatának lehetősége.
Az új verzió 15100 1882 javítást tartalmaz XNUMX XNUMX fejlesztőtől,
javítás mérete - 62 MB (a változások 30889 fájlt érintettek, 625094 kódsor került hozzáadásra, 531864 sor törölve). Körülbelül 45%-a az 5.2
a változtatások eszközillesztőkkel kapcsolatosak, a változtatások körülbelül 21%-a
hozzáállás a hardver architektúrákra jellemző kód frissítéséhez, 12%
a hálózati veremhez, 3% a fájlrendszerekhez és 3% a belsőhöz kapcsolódik
kernel alrendszerek. Az összes változtatás 12.4%-át az Intel készítette, 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 , 1.6 % - Oracle.
Hozzáadva az Ext4-hez támogatás A fájlnevekben a karakterek kis- és nagybetűinek megkülönböztetése nélkül működik, ami csak az egyes üres könyvtárak esetében aktiválódik az új „+F” attribútummal (EXT4_CASEFOLD_FL). Ha ez az attribútum be van állítva egy könyvtárban, akkor a fájlokkal és alkönyvtárakkal végzett összes művelet a karakterek kis- és nagybetűinek figyelembevétele nélkül kerül végrehajtásra, beleértve a kis- és nagybetűket is figyelmen kívül hagyja a fájlok keresése és megnyitása során (például a Test.txt fájlok, Az ilyen könyvtárakban található test.txt és test.TXT azonosnak minősül). Alapértelmezés szerint a fájlrendszer továbbra is megkülönbözteti a kis- és nagybetűket, kivéve a „chattr +F” attribútummal rendelkező könyvtárakat;
Egységesítették a fájlnevekben lévő UTF-8 karakterek feldolgozására szolgáló funkciókat, amelyeket a karakterlánc-összehasonlítási és normalizálási műveletek végrehajtásakor használnak;
Az XFS infrastruktúrát ad a fájlrendszer állapotának figyeléséhez, és egy új ioctl-t az állapot lekérdezéséhez. Kísérleti funkciót vezettek be a szuperblokk-számlálók online ellenőrzésére.
Új modul eszközleképező hozzáadvadm-por“, amely lehetővé teszi, hogy szimulálja a rossz blokkok megjelenését az adathordozón vagy hibákat a lemezről történő olvasás során. A modul lehetővé teszi az alkalmazások és különféle tárolórendszerek hibakeresésének és tesztelésének egyszerűsítését az esetleges hibák esetén;
Végrehajtott Jelentős teljesítményoptimalizálások a BFQ I/O ütemezőhöz. Magas I/O terhelés mellett optimalizálás történt lehetővé teszi Csökkentse a műveletek idejét, például az alkalmazások elindítását akár 80%-kal.
Egy sor rendszerhívás hozzáadva a fájlrendszerek csatlakoztatásához: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Ezek a rendszerhívások lehetővé teszik a beillesztés különböző szakaszainak külön-külön történő feldolgozását (a szuperblokk feldolgozása, a fájlrendszerrel kapcsolatos információk lekérése, felcsatolás, csatolás a csatolási ponthoz), amelyeket korábban a közös mount() rendszerhívással hajtottak végre. A külön hívások lehetővé teszik bonyolultabb csatlakoztatási forgatókönyvek végrehajtását és külön műveletek végrehajtását, például a szuperblokk újrakonfigurálását, az opciók engedélyezését, a csatolási pont megváltoztatását és egy másik névtérbe való áthelyezést. Ezenkívül a külön feldolgozás lehetővé teszi a hibakódok kimenetének okainak pontos meghatározását, és több forrás beállítását többrétegű fájlrendszerekhez, például overlayfekhez;
Egy új IORING_OP_SYNC_FILE_RANGE művelet került az aszinkron I/O io_uring interfészébe, amely rendszerhívással egyenértékű műveleteket hajt végre sync_file_range(), valamint megvalósította az eventfd regisztrálásának lehetőségét az io_uring segítségével, és a műveletek befejezéséről szóló értesítések fogadását;
A CIFS fájlrendszerhez hozzáadásra került a FIEMAP ioctl, amely hatékony kiterjedésleképezést biztosít, valamint támogatja a SEEK_DATA és SEEK_HOLE módokat;
A FUSE alrendszerben javasolta API adatgyorsítótár kezeléséhez;
A Btrfs optimalizálta a qgroups implementációt és javította az fsync végrehajtási sebességét a több merev hivatkozást tartalmazó fájlok esetében. Javítottuk az adatintegritás-ellenőrző kódot, amely figyelembe veszi a RAM-ban lévő információ esetleges sérülését, mielőtt az adatokat a lemezre üríti;
A CEPH támogatja a pillanatképek NFS-en keresztüli exportálását;
Javult az NFSv4 beillesztés megvalósítása „soft” módban (ha hiba történik a szerver elérésekor „soft” módban, a hívás azonnal hibakódot ad vissza, és „hard” módban a vezérlés csak az FS rendelkezésre állás vagy időtúllépés helyreáll). Az új kiadás pontosabb időtúllépés-kezelést, gyorsabb összeomlás-helyreállítást és új „puhább” beillesztési lehetőséget biztosít, amely lehetővé teszi az időtúllépés esetén visszaadott hibakód (ETIMEDOUT) módosítását;
Az nfsdcld API, amelyet az NFS-kliensek állapotának nyomon követésére terveztek, lehetővé teszi az NFS-kiszolgáló számára, hogy újraindításkor helyesen kövesse az ügyfél állapotát. Így az nfsdcld démon mostantól nfsdcltrack kezelőként működhet;
Dolgoztak a kernel azon helyek kiküszöbölése érdekében, amelyek lehetővé teszik a kód futtatását az írható tükrözött memóriaterületekről, ami lehetővé teszi a támadás során kihasználható potenciális lyukak blokkolását;
Egy új "mitigations="" parancssori paraméterrel bővült a kernel, amely egyszerűsített módot biztosít bizonyos technikák engedélyezésére a CPU-n az utasítások spekulatív végrehajtásával kapcsolatos sebezhetőségek elleni védelem érdekében. A „mitigations=off” átadása letiltja az összes létező metódust, az alapértelmezett „mitigations=auto” mód pedig engedélyezi a védelmet, de nem befolyásolja a Hyper Threading használatát. A „mitigations=auto,nosmt” mód emellett letiltja a Hyper Threading funkciót, ha a védelmi módszer megköveteli.
Hozzáadva az elektronikus digitális aláírás támogatása a GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3) szerint, fejlett Vitaly Chikunov a Basalt SPO-tól. Az AES128-CCM támogatása hozzáadva a natív TLS megvalósításhoz. Az AEAD algoritmusok támogatása hozzáadva a crypto_simd modulhoz;
A Kconfigban tette hozzá egy külön „kernel hardening” rész a kernel védelmét fokozó opciókkal. Jelenleg az új rész csak a GCC-ellenőrzést javító bővítmények engedélyezésére vonatkozó beállításokat tartalmazza;
A kernel kódja majdnem szállított a kapcsolóban lévő megszakítás nélküli kisbetű-utasításokból (minden esetblokk után visszatérés vagy törés nélkül). A 32 ilyen kapcsolóhasználati esetből 2311-t kell kijavítani, ami után lehetőség lesz a „-Wimplicit-fallthrough” mód használatára a kernel felépítésénél;
A PowerPC architektúra esetében a hardveres mechanizmusok támogatása a nem kívánt kernel hozzáférési útvonalak korlátozására a felhasználói térben lévő adatokhoz;
Hozzáadott blokkoló kód támadások MDS (Microarchitectural Data Sampling) osztály az Intel processzorokban. A „/sys/devices/system/cpu/vulnerabilities/mds” SysFS változóval ellenőrizheti, hogy egy rendszer sebezhető-e. Elérhető két védelmi mód: teljes, amely frissített mikrokódot igényel, és bypass, amely nem garantálja teljes mértékben a CPU pufferek törlését, amikor a vezérlés átkerül a felhasználói területre vagy a vendégrendszerre. A védelmi módok szabályozására az „mds=” paraméter hozzáadásra került a kernelhez, amely a „full”, „full,nosmt” (+ a Hyper-Threads letiltása) és „off” értékeket veheti fel;
Az x86-64 rendszereken „stack guard-page” védelem került hozzáadásra az IRQ-hoz, a hibakereső mechanizmusokhoz és a kivételkezelőkhöz, melynek lényege, hogy a határon lévő memórialapokat helyettesítik a veremmel, amelyek elérése egy kivétel (oldal-hiba);
Hozzáadott vm.unprivileged_userfaultfd sysctl beállítás, amely szabályozza, hogy a nem jogosult folyamatok a userfaultfd() rendszerhívást használják-e;
Hálózati alrendszer
Hozzáadva IPv6 átjáró támogatás az IPv4 útvonalakhoz. Például most megadhat olyan útválasztási szabályokat, mint az „ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0”;
Az ICMPv6 esetében az icmp_echo_ignore_anycast és az icmp_echo_ignore_multicast ioctl hívások az anycast és az ICMP ECHO figyelmen kívül hagyásához
multicast címek. Hozzáadva az ICMPv6 csomagfeldolgozás intenzitásának korlátozásának képessége;
A BATMAN (Better Approach To Mobile Adhoc Networking) mesh protokollhoz, amely lehetővé teszi olyan decentralizált hálózatok létrehozását, amelyekben minden csomópont szomszédos csomópontokon keresztül csatlakozik, tette hozzá a multicastról az unicastra történő sugárzás támogatása, valamint a sysf-en keresztüli vezérlés lehetősége;
Az ethtoolban - tette hozzá egy új Fast Link Down paraméter, amely lehetővé teszi, hogy csökkentse az 1000BaseT kapcsolat leállási eseményével kapcsolatos információk fogadásának idejét (normál körülmények között a késleltetés legfeljebb 750 ms);
Megjelent alkalom Foo-Over-UDP alagutak kötése egy adott címhez, hálózati interfészhez vagy sockethez (korábban az összerendelés csak egy közös maszk segítségével történt);
A vezeték nélküli veremben biztosított kezelők megvalósításának lehetősége
OWE (Opportunistic Wireless Encryption) a felhasználói térben;
A Netfilterben az inet-címcsalád támogatása hozzáadásra került a nat-láncokhoz (például most már egyetlen fordítási szabályt is használhat az ipv4 és ipv6 feldolgozásához anélkül, hogy szétválasztaná az ipv4 és ipv6 szabályait);
Netlinkben - tette hozzáa rendszer szigorú az összes üzenet és attribútum helyességének szigorú ellenőrzése érdekében, amelyekben az attribútumok elvárt méretét nem szabad túllépni, és tilos további adatok hozzáadása az üzenetek végére;
Memória- és rendszerszolgáltatások
A CLONE_PIDFD jelző hozzá lett adva a clone() rendszerhíváshoz, ha megadja, a létrehozott gyermekfolyamattal azonosított „pidfd” fájlleíró visszakerül a szülőfolyamathoz. Ez a fájlleíró például használható jelek küldésére anélkül, hogy félne attól, hogy versenyhelyzetbe kerül (közvetlenül a jel elküldése után a cél PID felszabadulhat a folyamatleállás miatt, és egy másik folyamat lefoglalhatja);
A cgroupok második verziójához hozzáadták a fagyasztóvezérlő funkciót, amellyel leállíthatja a munkát a cgroupban, és ideiglenesen felszabadíthat néhány erőforrást (CPU, I/O és esetleg még memória is) egyéb feladatok elvégzéséhez. A kezelés a cgroup.freeze és a cgroup.events vezérlőfájlokon keresztül történik a cgroup fában. A cgroup.freeze 1. bejegyzése lefagyasztja a folyamatokat az aktuális cgroupban és az összes gyermekcsoportban. Mivel a lefagyás eltart egy ideig, egy további cgroup.events fájl is rendelkezésre áll, amelyen keresztül tájékozódhat a művelet befejezéséről;
Biztosítva a sysf-ben az egyes csomópontokhoz csatolt memóriaattribútumok exportálása, amely lehetővé teszi a felhasználói térből a memóriabankok feldolgozásának természetét a heterogén memóriával rendelkező rendszerekben;
Továbbfejlesztették a PSI (Pressure Stall Information) alrendszert, amely lehetővé teszi a különböző erőforrások (CPU, memória, I/O) fogadásának várakozási idejére vonatkozó információk elemzését bizonyos feladatok vagy folyamatcsoportok cgroupban. A PSI használatával a felhasználói területkezelők pontosabban meg tudják becsülni a rendszerterhelési és lassulási minták szintjét az átlagos terheléshez képest. Az új verzió támogatja az érzékenységi küszöbértékek beállítását, és lehetőséget ad a poll() hívás használatára, hogy értesítést kapjon arról, hogy a beállított küszöbértékek egy bizonyos ideig aktiválódtak. Ez a funkció lehetővé teszi az Android számára, hogy korai szakaszban figyelje a memóriahiányt, azonosítsa a problémák forrását, és leállítsa a nem fontos alkalmazásokat anélkül, hogy a felhasználó számára észrevehető problémákat okozna. A stressztesztek során a PSI-alapú memóriafelhasználást figyelő eszközök 10-szer kevesebb téves pozitív eredményt mutattak a vmpressure statisztikákhoz képest;
A BPF-programok ellenőrzésére szolgáló kódot optimalizálták, ami nagy programok esetén akár 20-szor gyorsabb ellenőrzést tesz lehetővé. Az optimalizálás lehetővé tette a BPF programok mérethatárának 4096-ról millió utasításra való emelését;
BPF programokhoz megadott a globális adatok elérésének képessége, amely lehetővé teszi globális változók és konstansok meghatározását a programokban;
Hozzáadva API, amely lehetővé teszi a sysctl paraméterek változásainak szabályozását a BPF programokból;
A MIPS32 architektúrához az eBPF virtuális géphez egy JIT-fordítót valósítottak meg;
A 32 bites PowerPC architektúrához a KASan (Kernel address sanitizer) hibakereső eszköz támogatása került hozzáadásra, amely segít azonosítani a memóriával végzett munka során fellépő hibákat;
Az x86-64 rendszereken a 896 MB feletti memóriaterületeken eltörölték az állapotkiírások kernel összeomlás (crash-dump) során történő elhelyezésére vonatkozó korlátozást;
Az s390 architektúra esetében a kernel címterének véletlenszerűsítésének (KASLR) támogatása és a digitális aláírások ellenőrzése a kernel kexec_file_load() segítségével történő betöltésekor megvalósult;
A PA-RISC architektúrához hozzáadott a kernel hibakereső (KGDB), az ugrásjelek és a kprobes támogatása;
Оборудование
Driver mellékelve Lima a Mali 400/450 GPU-hoz, amelyet sok régebbi, ARM architektúrán alapuló chipben használnak. Az újabb Mali GPU-khoz a Panfrost illesztőprogram került, amely Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) és Bifrost (Mali G3x, G5x, G7x) mikroarchitektúrákon alapuló lapkákat támogat;
Hozzáadott támogatás a nyílt firmware-t használó audioeszközökhöz Hang nyitott firmware (SOF). A nyitott illesztőprogramok elérhetősége ellenére a hangchipek firmware-kódja továbbra is zárva maradt, és bináris formában került kiadásra. A Sound Open Firmware projektet az Intel fejlesztette ki, hogy nyílt firmware-t hozzon létre a hangfeldolgozáshoz kapcsolódó DSP chipekhez (később a Google is csatlakozott a fejlesztéshez). Jelenleg a projekt már előkészítette az Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake és IceLake platformok hangchipjeinek firmware-ének felfedezését;
Az Intel DRM-illesztőprogram (i915) támogatja a chipeket
Elkhartlake (Gen11). PCI azonosítók hozzáadva a Comet Lake (Gen9) chipekhez. Az Icelake chipek támogatása stabilizálódott, amelyhez további PCI eszközazonosítók is kerültek. Bekapcsolva
aszinkron váltás módja a videomemória két puffere között (aszinkron átfordítás), amikor írási műveleteket hajt végre mmio-n keresztül, ami jelentősen megnövelte 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áadott technológiai támogatás HDCP2.2 (Nagy sávszélességű digitális tartalomvédelem) a HDMI-n keresztül továbbított videojelek titkosításához;
Az amdgpu illesztőprogram Vega20 GPU-hoz tette hozzá a RAS (Reliability, Availability, Serviceability) támogatása és a Powerplay technológiát felváltó SMU 11 alrendszer kísérleti támogatása. Vega12 GPU-hoz tette hozzá BACO mód támogatása (Bus Active, Chip Off). Hozzáadott kezdeti támogatás az XGMI-hez, egy nagy sebességű buszhoz (PCIe 4.0) a GPU-összeköttetéshez. A hiányzó azonosítók a Polaris10 GPU-n alapuló kártyákhoz hozzáadva az amdkfd illesztőprogramhoz;
A Nouveau meghajtó támogatja az NVIDIA Turing 117 lapkakészleten alapuló kártyákat (TU117, a GeForce GTX 1650-ben használják). BAN BEN
kconfig tette hozzá a libdrm jelenlegi kiadásaiban már nem használt elavult funkciók letiltásának beállítása;
Az „idővonal” szinkronizálási objektumok támogatása hozzáadásra került a DRM API-hoz és az amdgpu illesztőprogramhoz, lehetővé téve a klasszikus blokkolás nélkül.
A VirtualBox virtuális GPU vboxvideo illesztőprogramja átkerült az átmeneti ágból a fő struktúrába;
Hozzáadott sebességvezérlő meghajtó a GFX SoC ASPEED chiphez;
Az ARM SoC és Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6), Rockchip (Orange Pi) támogatása hozzáadva ) táblák RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
ST Micro (stm32mp157a, stm32mp157c), NXP (
Eckelmann ci4x10 (i.MX6DL),
Ugyanakkor a Latin-Amerikai Szabad Szoftver Alapítvány alakított
opció teljesen ingyenes kernel 5.2 - Linux-mentes 5.2-gnu, megtisztítva a nem szabad komponenseket vagy kódrészleteket tartalmazó firmware-től és illesztőprogram-elemektől, amelyek terjedelmét a gyártó korlátozza. Az új kiadás tartalmazza a fájlfeltöltést
Hang Nyissa meg a firmware-t. A blobok betöltése az illesztőprogramokban le van tiltva
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp és ucsi_ccg. Frissült a blobtisztító kód az ixp4xx, imx-sdma, amdgpu, nouveau és goya illesztőprogramokban és alrendszerekben, valamint a mikrokód dokumentációjában. Az eltávolítás miatt leállt a foltok tisztítása az r8822be illesztőprogramban.