A Linux 5.13 kernel kiadása

Két hónapnyi fejlesztés után Linus Torvalds bemutatta a Linux 5.13 kernel kiadását. A legszembetűnőbb változások közé tartozik az EROFS fájlrendszer, az Apple M1 chipek kezdeti támogatása, a 'misc' cgroup-vezérlő, a /dev/kmem támogatásának megszüntetése, új Intel és AMD GPU-k támogatása, a kernel funkciók közvetlen meghívásának lehetősége BPF-programokból, a kernel stack véletlenszerűsítése minden rendszerhívás alkalmával, CFI (Control Flow Integrity) védett Clang-ban való fordítás lehetősége, az LSM Landlock modul a folyamatok további korlátozására, valamint egy virtio alapú virtuális hangkészülék és multi-shot mód az io_uringban.

Az új verzióba 17189 javítást fogadtak el 2150 fejlesztőtől (a legnagyobb szám a történelemben), a patch mérete 60 MB (a változások 12996 fájlt érintettek, 794705 kódsort adtak hozzá, 399590 kódsort töröltek). A 5.13-ban bemutatott összes változás körülbelül 47%-a eszközmeghajtókhoz kapcsolódik, körülbelül 14% a hardverarchitektúrákhoz specifikus kód frissítéseként, 13% a hálózati veremhez, 5% a fájlrendszerekhez és 4% a kernel belső alrendszereihez tartozik.

Főbb újítások:

  • Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
    • Hozzáadták az EROFS (Enhanced Read-Only File System) fájlrendszer támogatását, amelyet a Huawei javasolt a csak olvasható módú partíciókon való használatra. Az új fájlrendszer támogatja az adatok tömörített tárolását, és az Ext4-hez képest hasonló teljesítményt mutat a szekvenciális olvasási műveletek során, de többszörösen megelőzi az Ext4-et az adatok véletlenszerű elérésében. Például 4-es tömörítési szint mellett és teszteléskor szerveren a HDD-vel rendelkező EROFS fájlrendszer több mint hatszorosan felülmúlta az Ext4-et a véletlenszerű olvasási műveletek során, míg Flash-alapú Android okostelefon használata mellett közel háromszoros előnyt mutatott. Ahogyan más read-only fájlrendszerekben, az EROFS struktúrája is jelentősen leegyszerűsödik a megvalósítás során néhány metaadat-terület, például a szabad blokkok bit térképének elhagyásával.
    • Az SMB3 fájlrendszerhez megvalósították a 'rasize' csatolási opciót, amellyel meghatározható a prefetch ablak mérete (readahead) egyes terhelési típusok teljesítményének növelése érdekében.
    • Az ext4 fájlrendszer lehetővé teszi a mappák elemeinek felülírását fájlok törlésekor. Az ext4-ben emellett egyidejűleg engedélyezett a kis- és nagybetűk figyelmen kívül hagyásának módja és a titkosítás használata.
    • Az exFAT fájlrendszer támogatja az ioctl FITRIM (discard) parancsot, amely tájékoztatja a tárolót a fájlrendszerben nem használt blokkokról.
    • Az XFS fájlrendszerben hozzáadódott a lehetőség, hogy a legutolsó elosztási csoportból területet vegyünk el, ami az első lépés az XFS fájlrendszerben lévő meglévő partíciók méretének csökkentése felé.
    • Új rendszerhívás került bevezetésre, a quotactl_path, amely eltér a quotactltól abban, hogy lehetővé teszi a kvóták kezelését nem egy speciális eszközfájl, hanem a fájlrendszer csatolási pontjára mutató útvonal megadásával.
    • A fanotify mechanizmusban bővültek a közönséges felhasználók számára elérhető lehetőségek. Például az inotify-hoz hasonlóan, SYS_CAP_ADMIN jogosultságok nélkül most már nyomon követhetők a fájlok és könyvtárak OPEN, ACCESS, MODIFY és CLOSE eseményei.
  • Memória és rendszerszolgáltatások
    • Új cgroup vezérlőt adtak hozzá - 'Misc' (CONFIG_CGROUP_MISC), amely a skálázható erőforrások korlátozására és nyomon követésére szolgál, ezeket egy egyszerű számláló segítségével lehet kezelni, és maximális megengedett értékeket beállítani. Példaként említhető az új cgroup vezérlő alkalmazása a címzési azonosítók kezelésére, amelyeket az AMD SEV (Secure Encrypted Virtualization) mechanizmusban használnak.
    • Az io_uring aszinkron bemeneti/kimeneti interfészben a POLL lekérdezésekhez bevezetésre került a 'multi-shot' üzemmód, amelyben a POLL nem törlődik az esemény generálása után, hanem aktív marad, és több eseményt is generálhat.
    • A valós idejű kernelfájl törzséből átkerült az a kód, amely a szoftveresen generált megszakítások feldolgozását biztosítja a kernel szálakban, lehetővé téve a magasabb prioritású folyamatok általi kiszorítást.
    • Belső netfs könyvtár került bevezetésre, amelybe a hálózati fájlrendszerekben használt tipikus funkciókat helyezték át.
    • A PowerPC architektúra számára megvalósult az időtartományok támogatása, amelyek lehetővé teszik a konténer számára a saját idő használatát.
    • A RISC-V architektúra számára megvalósult a kexec, crash dump, kprobe és a kernel in-place való indítása (execute-in-place, közvetlen végrehajtás a memóriában való másolás nélkül).
    • A BPF programokban megjelent a feladat-specifikus adattárolás (task-local storage) használatának lehetősége, amely magasabb teljesítményt biztosít a BPF feldolgozókhoz való adatmeghatározással.
    • Kifejlesztésre került egy új mechanizmus, amely lehetővé teszi a kernel funkcióinak közvetlen hívását BPF-programokból. Ezt már alkalmazták a TCP-túlterhelési algoritmusok megvalósításában. A biztonság érdekében a hívott funkciókat egyértelműen fel kell venni egy fehérlistára.
    • Az ftrace funkciók nyomkövető rendszeréhez hozzáadva lett a func-no-repeats opció, amely lehetővé teszi a sorozatos funkcióhívások megismétlődéseinek számlálóként történő tükrözését.
    • A userfaultfd() rendszerhívásba, amely a felhasználói térben a page fault-ok kezelésére szolgál (az allokálatlan memóriaoldalakra való hivatkozás), beépítésre került a részleges fault-ok kezelési képessége, ahol a memóriaoldal jelen van, de nincs bejegyzés a memóriaoldalak táblázatában.
    • Megszűnt a /dev/kmem speciális fájl támogatása, amely lehetővé tette a kernel teljes címtartományához való hozzáférést. Ezt a fájlt elavultnak nyilvánították, és biztonsági problémákat okoz.
    • Az Intel chipekhez új hűtési drivert fejlesztettek ki, amely lehetővé teszi a processzor frekvenciájának csökkentését túlmelegedés veszélye esetén. Ezzel ellentétben a meglévő TCC (Thermal Control Circuit) aktiválási mechanizmussal, az új driver a relatív értékek manipulálására képes, azaz a frekvenciát a hőmérséklet jelentős növekedésének kezdetén csökkenti, anélkül hogy megvárná a kritikus határérték túllépését.
  • Virtualizáció és biztonság
    • A csomagban szerepel az LSM-modul, amely alkalmazásizolációt biztosít Landlock néven, lehetővé téve a folyamatcsoport külvilággal való interakciójának korlátozását, és olyan izolációs mechanizmusokra tekintettel lett kidolgozva, mint az XNU Sandbox, FreeBSD Capsicum és OpenBSD Pledge/Unveil. A hozzáférési logika BPF-programok segítségével van meghatározva, de a seccomp-bpf-fel ellentétben a Landlock nem szűri a rendszerhívásokat és azok argumentumait, hanem lehetővé teszi a kernel objektumok, például fájlhierarchiák használatának korlátozását. A Landlock segítségével bármely folyamat, beleértve a nem privilegizáltakat is, megbízhatóan izolálhatja magát, megakadályozva a környezet megkerülését sebezhetőségek vagy rosszindulatú módosítások felfedezése esetén. A Landlock lehetővé teszi a folyamat számára, hogy védett, izolált környezetet hozzon létre, amely a meglévő hozzáférés-ellenőrző rendszerek felett egy további réteg formájában kerül megvalósításra. Például egy program megtilthatja a fájlokhoz való hozzáférést a munkakatalógus határain kívül.
    • Hozzáadták a lehetőséget a magot áthelyező eljárások véletlenszerűsítésére a rendszerhívások feldolgozása során, hogy nehezebbé tegyék a verem támadásait. A javasolt védelem lényege, hogy véletlenszerű veremeltolást választanak minden egyes rendszerhívásnál, ami megnehezíti a verem elhelyezkedésének meghatározását a memóriában, még akkor is, ha információval rendelkeznek a címekről, mivel a következő rendszerhívás során a verem alapcíme megváltozik. A véletlenszerűsítés aktiválásához a kernel parancssori paramétereit „randomize_kstack_offset=on/off” javasolják, valamint a CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT beállítást. A költségek körülbelül 1% teljesítménycsökkenéssel vannak felmérve.
    • Hozzáadták a kernel Clang fordítón való fordításának támogatását a CFI (Control Flow Integrity) védelmi mechanizmusával, amely minden közvetett függvényhívás előtt ellenőrzés bevezetését igényli, hogy észlelje a bizonyos nem meghatározott viselkedésformákat, amelyek potenciálisan a végrehajtási sorrend (control flow) megsértéséhez vezethetnek a memóriában tárolt függvénymutatók módosításának következtében. A CFI aktiválásához a CONFIG_CFI_CLANG paramétert javasolják.
    • A kernel által nyújtott titkosítási kulcsok tárolásához (key ring) a megbízható kulcsok (Trusted Keys) mechanizmusa mostantól nemcsak a TPM modulokból, hanem a TEE (Trusted Execution Environment) környezetekből is származó kulcsokat lefedi. A megbízható kulcsok forrásának kezelésére a „trusted.source” indítási paramétert javasolják. Ezenkívül hozzáadták a megbízható kulcsok ASN.1 formátumban történő feldolgozásának lehetőségét is.
    • Hozzáadtak egy paramétert a visszavont tanúsítványok listájának előzetes betöltésére a kernel indítása során. Megoldották a (CVE-2020-26541) problémát, amely az EFI_CERT_X509_GUID formátumban megadott visszavont UEFI Secure Boot tanúsítványok feketelistán való figyelmen kívül hagyását jelentette, lehetővé téve a rendszer betöltését visszavont tanúsítvánnyal.
    • A kernel kriptográfiai alrendszeréhez hozzáadták az ECDSA digitális aláírások ellenőrzésének támogatását, amely elliptikus görbéken alapul.
    • Lehetőséget valósítottak meg a SELinux politikák IMA (Integrity Measurement Architecture) alrendszer általi ellenőrzésére, amely biztosítja a hash-alapú adatintegritás-ellenőrzés fenntartását.
  • Hálózati alrendszer
    • A WiMAX technológia támogatása eltávolításra került, mivel már nem használják nyilvános hálózatokban, és az egyetlen meghajtó, amely még használható a WiMAX-hoz a már elavult Intel 2400m meghajtó. A NetworkManager hálózati konfigurátorban a WiMAX támogatását 2015-ben megszüntették. Jelenleg a WiMAX-ot szinte teljesen kiszorította olyan technológiák, mint az LTE, HSPA+ és a Wi-Fi 802.11n.
    • Új meghajtó került hozzáadásra a MANA (Microsoft Azure Network Adapter) hálózati adapterhez.
    • Az ath11k meghajtóhoz hozzáadták a Qualcomm QCN9074 vezeték nélküli modulok 802.11ax támogatását.
    • Az iwlwifi meghajtóban megvalósították a passzív csatornaszkennelés lehetőségét a 6 GHz-es sávban. Ukrajnára hozzáadták az IEEE 802.11ax be-/kikapcsolásának támogatását, a BIOS-ban található paraméterek alapján.
    • Az XDP (eXpress Data Path) alrendszer optimalizálásra került, amely lehetővé teszi a hálózati csomagok manipulálását a Linux kernel hálózati veremének feldolgozása előtt. A végzett tesztek 4-8% -os teljesítménynövekedést mutatnak az XDP esetében. Virtio eszközök esetében az AF_XDP szoftverfeldolgozásának teljesítménynövekedése elérheti a 33%-ot.
    • Az ICMP-ben megvalósították a kibővített PROBE-üzenetek támogatását, amelyeket az RFC 8335 határoz meg.
    • Folyamatban van az MPTCP (MultiPath TCP) integrálása a kernelbe, a TCP protokoll kiterjesztése a TCP-kapcsolatok működésének megszervezésére, lehetővé téve a csomagok egyidejű szállítását különböző útvonalakon, különböző hálózati interfészeken keresztül, amelyek eltérőek. IP-címek. Az új kiadásban támogatást kaptak a sockopt lehetőségek, a tipikus TCP opciók beállítására. Megvalósították egyes alpotok (subflow) visszaállításának lehetőségét.
    • A netfilterben hozzáadták az erőforrások kezelésének támogatását az egységesített cgroups v2 hierarchia segítségével.
    • Az ethtool-ban megvalósították az IEEE MIB statisztikák olvasásához szükséges interfészt, amely támogatja az mlx5 és bnxt-et. A hálózati meghajtóknak megengedték, hogy tetszőleges adatokat nyerjenek ki az SFP EEPROM-ból, nem a kötet méret+offset, hanem a memóriapage-ek manipulálásával.
  • Hardver
    • Megvalósították az Apple M1 ARM chip kezdeti támogatását, amely magában foglalja a megszakításkezelőt, az időzítőt, az UART-t, az SMP-t, a bemeneti/kimeneti műveletek és az MMIO funkciókat. A GPU visszafejtése még nem zárult le, a megjelenítéshez keretező támogatás és konzol elérhetőség biztosított soros porton keresztül.
    • Folyamatban van a kernel tisztítása a régi meghajtóktól, eltávolították a "gasket" (Google ASIC), a "sysace", az "umem" és néhány régi soros port meghajtót.
    • A 13 éves staging szakasz után a "comedi" illesztőprogram stabilizálva lett és átkerült a fő összetevőbe az adatgyűjtő eszközök támogatásához.
    • Hozzáadva a GUD (Generic USB Display) illesztőprogram, amely egy alap illesztőprogramot valósít meg USB interfészen keresztül csatlakoztatott képernyők és TV-adapterek számára. Az illesztőprogram DRM-jellemzőket (Direct Rendering Manager) biztosít a kép elforgatásához, fényerőszabályozáshoz, az EDID eléréséhez, videomódok beállításához és olyan TV-k csatlakoztatásához, amelyeket alapként lehet használni az adott eszközökre készült illesztőprogramok létrehozásához.
    • Hozzáadva a "virtio" hangillesztőprogram, amely egy virtuális hangkészüléket valósít meg, amelyet vendég rendszerekben lehet használni hangkimenethez és -rögzítéshez anélkül, hogy hozzáférést kellene biztosítani a hangkártyához vagy emulációt végezni.
    • Az amdgpu illesztőprogramban megkezdődött az Aldebaran GPU (gfx90a) kezdeti támogatása. Bekapcsolva a FreeSync technológia kezdeti támogatása HDMI-hoz (korábban csak DisplayPort-on volt elérhető), amely lehetővé teszi a képernyő frissítési sebességének korrekcióját. Engedélyezve az ASSR (Alternate Scrambler Seed Reset) támogatását. Hozzáadva ioctl a videó kódolással és dekódolással kapcsolatos képességek lekéréséhez. Hozzáadva a CONFIG_DRM_AMD_SECURE_DISPLAY mód a kritikus információkat megjelenítő kijelzők változásainak észleléséhez. Hozzáadva az ASPM energiatakarékos mechanizmus támogatása.
    • Az i915 illesztőprogramban, amely az Intel grafikus kártyákhoz készült, hozzáadva az Intel Alderlake-S chipek támogatása. Hozzáadva az eDP MSO (Embedded DisplayPort Multi-SST Operation) támogatása.
    • Hozzáadva a Luna (Amazon) játékkontroller, valamint a Hycon HY46XX, ILITEK Lego sorozat és MStar MSG2638 érintőképernyők támogatása.

Eközben a latin-amerikai Szabad Szoftver Alapítvány létrehozta a teljesen szabad 5.11-es kernel változatot — Linux-libre 5.11-gnu, amelyet megtisztítottak azoktól a firmware-ek és illesztőprogramok elemeitől, amelyek nem szabad összetevőket vagy a gyártó által korlátozott kódot tartalmaztak. Az új kiadás keretében megtisztították a comedi illesztőprogramot. Megszűnt a cyclades, isicom tty és i2400m wimax illesztőprogramok tisztítása, amelyek eltávolításra kerültek a kernelből. Frissítették a blobok tisztítási kódját az amdgpu, i915 csr, r8152 usb, mhi bus, x86 érintőképernyő és qualcomm arm64 illesztőprogramokban és alrendszerekben.

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