Linux 5.17 kernel kiadás

Két hónapos fejlesztés után Linus Torvalds bemutatta a Linux kernel 5.17 kiadását. A legfigyelemreméltóbb változások közé tartozik: új teljesítménymenedzsment rendszer az AMD processzorokhoz, a felhasználói azonosítók rekurzív leképezésének képessége a fájlrendszerekben, a hordozható lefordított BPF programok támogatása, a pszeudo-véletlenszám-generátor átállása a BLAKE2s algoritmusra, egy RTLA segédprogram a valós idejű végrehajtási elemzéshez új fscache háttérrendszer a hálózati fájlrendszerek gyorsítótárazásához, névtelen mmap műveletekhez való nevek csatolásának képessége.

Az új verzió 14203 1995 javítást tartalmaz 37 11366 fejlesztőtől, a patch mérete 506043 MB (a változtatások 250954 44 fájlt érintettek, 5.17 16 kódsor került hozzáadásra, 15 4 sor törölve lett). Az 4-ben bevezetett módosítások körülbelül XNUMX%-a az eszközillesztőkkel kapcsolatos, a változtatások hozzávetőleg 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.17-as kernelben:

  • Lemez alrendszer, I/O és fájlrendszerek
    • Megvalósította a csatlakoztatott fájlrendszerek felhasználói azonosítóinak beágyazott leképezésének lehetőségét, amely egy adott felhasználó fájljainak összehasonlítására szolgál egy csatlakoztatott idegen partíción a jelenlegi rendszer másik felhasználójával. A hozzáadott szolgáltatás lehetővé teszi a leképezés rekurzív használatát azokon a fájlrendszereken, amelyekre már alkalmazták a leképezést.
    • Az fscache alrendszert, amelyet a hálózati fájlrendszereken keresztül továbbított adatok helyi fájlrendszerében történő gyorsítótárazás megszervezésére használnak, teljesen átírták. Az új megvalósítást a kód jelentős leegyszerűsítése és az objektumállapotok tervezési és nyomon követése összetett műveleteinek egyszerűbb mechanizmusokkal való helyettesítése jellemzi. Az új fscache támogatása a CIFS fájlrendszerben van megvalósítva.
    • A fanotify FS eseménykövető alrendszere egy új eseménytípust, a FAN_RENAME-t valósítja meg, amely lehetővé teszi a fájlok vagy könyvtárak átnevezésének azonnali lehallgatását (korábban két külön eseményt, FAN_MOVED_FROM és FAN_MOVED_TO használtak az átnevezések feldolgozására).
    • A Btrfs fájlrendszer optimalizálta a naplózási és fsync műveleteket a nagy könyvtárakhoz, amelyet csak az indexkulcsok másolásával és a naplózott metaadatok mennyiségének csökkentésével valósítanak meg. Támogatást nyújtottak a szabad területrekordok mérete alapján történő indexeléshez és kereséshez, ami körülbelül 30%-kal csökkentette a késleltetést és a keresési időt. Lehetővé teszi a töredezettségmentesítési műveletek megszakítását. Az eszközök hozzáadásának lehetősége a meghajtók közötti egyensúlyozáskor le van tiltva, pl. a skip_balance opcióval rendelkező fájlrendszer csatlakoztatásakor.
    • A Ceph fájlrendszer csatlakoztatásához új szintaxist javasoltak, amely megoldja az IP-címekhez való kötéssel kapcsolatos meglévő problémákat. Az IP-címek mellett mostantól a fürtazonosítót (FSID) is használhatja a szerver azonosítására: mount -t ceph [e-mail védett]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Az Ext4 fájlrendszer egy új beillesztési API-ra költözött, amely elválasztja a beillesztési opciók elemzési és a szuperblokk konfigurációs lépéseit. Megszüntettük a lazytime és a nolazytime csatolási opciók támogatását, amelyeket ideiglenes változtatásként adtunk hozzá, hogy megkönnyítsük az util-linux átállását az MS_LAZYTIME jelző használatára. Támogatás hozzáadva a címkék beállításához és olvasásához az FS-ben (ioctl FS_IOC_GETFSLABEL és FS_IOC_SETFSLABEL).
    • Az NFSv4 támogatást nyújtott a kis- és nagybetűket nem érzékeny fájlrendszerekben a fájl- és könyvtárnevekben. Az NFSv4.1+ támogatja az összesített munkamenetek (trunking) meghatározását.
  • Memória- és rendszerszolgáltatások
    • Hozzáadott amd-pstate illesztőprogram dinamikus frekvenciavezérlést biztosít az optimális teljesítmény érdekében. Az illesztőprogram a Zen 2 generációtól kezdve támogatja az AMD CPU-kat és APU-kat, amelyeket a Valve-val közösen fejlesztettek ki, és célja az energiagazdálkodás hatékonyságának javítása. Az adaptív frekvenciaváltásokhoz a CPPC (Collaborative Processor Performance Control) mechanizmust használják, amely lehetővé teszi a mutatók pontosabb (nem korlátozva három teljesítményszintre) megváltoztatását, és gyorsabb reagálást az állapotváltozásokra, mint a korábban használt ACPI-alapú P-állapot. illesztőprogramok (CPUFreq).
    • Az eBPF alrendszer egy bpf_loop() kezelőt kínál, amely alternatív módot biztosít a hurkok rendszerezésére az eBPF programokban, gyorsabban és egyszerűbben az ellenőrző általi ellenőrzéshez.
    • Kernel szinten a CO-RE (Compile Once - Run Everywhere) mechanizmus valósul meg, amely lehetővé teszi az eBPF programok kódjának egyszeri lefordítását és egy speciális univerzális betöltő használatát, amely a betöltött programot az aktuális kernel és BTF típusokhoz igazítja. (BPF típusú formátum).
    • Lehetőség van a privát anonim (malloc-on keresztül allokált) memóriaterületekhez neveket rendelni, ami leegyszerűsítheti a hibakeresést és az alkalmazások memóriafelhasználásának optimalizálását. A nevek a prctl-n keresztül vannak hozzárendelve a PR_SET_VMA_ANON_NAME jelzővel, és a /proc/pid/maps és /proc/pid/smaps mappákban „[anon: ]".
    • A feladatütemező nyomon követi és megjeleníti a /proc/PID/sched fájlban a folyamatok által kényszerített üresjárati állapotban eltöltött időt, például a processzor túlmelegedése esetén a terhelés csökkentésére.
    • Hozzáadott gpio-sim modul, amelyet a GPIO chipek tesztelésére való szimulálására terveztek.
    • Hozzáadott egy „latency” alparancsot a „perf ftrace” parancshoz a várakozási időt tartalmazó hisztogramok generálásához.
    • Hozzáadott egy sor „RTLA” segédprogramot a munka valós idejű elemzéséhez. Olyan segédprogramokat tartalmaz, mint az osnoise (meghatározza az operációs rendszer hatását a feladat végrehajtására) és a timerlat (módosítja az időzítőhöz kapcsolódó késleltetéseket).
    • A javítások második sorozatát integrálták az oldalfóliók koncepciójának megvalósításába, amelyek hasonlítanak az összetett oldalakra, de jobb szemantikával és világosabb munkaszervezéssel rendelkeznek. A tomes használata lehetővé teszi a memóriakezelés felgyorsítását egyes kernel-alrendszerekben. A javasolt javítások befejezték az oldal-gyorsítótár konvertálását tomes használatára, és hozzáadták a tome-ok kezdeti támogatását az XFS fájlrendszerben.
    • Hozzáadott „make mod2noconfig” építési mód, amely olyan konfigurációt hoz létre, amely kernelmodulok formájában összegyűjti az összes letiltott alrendszert.
    • A kernel felépítéséhez használható LLVM/Clang verzió követelményei megemelkedtek. A Build most legalább LLVM 11 kiadást igényel.
  • Virtualizáció és biztonság
    • Javasoljuk a /dev/random és /dev/urandom eszközök működéséért felelős RDRAND pszeudo-véletlenszám-generátor frissített megvalósítását, amely figyelemre méltó az átmenet a BLAKE2s hash függvényének használatára az SHA1 helyett az entrópiakeverési műveleteknél. A változtatás lehetővé tette az álvéletlen számgenerátor biztonságának javítását a problémás SHA1 algoritmustól való megszabadulással és az RNG inicializálási vektor felülírásának megszüntetésével. Mivel a BLAKE2s algoritmus teljesítményben felülmúlja az SHA1-et, használata pozitív hatással volt a teljesítményre is.
    • Hozzáadott védelem a processzorok sérülékenységei ellen, amelyeket az utasítások spekulatív végrehajtása okoz feltétel nélküli előreugrási műveletek után. A probléma az utasítások megelőző feldolgozása miatt jelentkezik, közvetlenül a memóriában lévő elágazási utasítást követően (SLS, egyenes vonalú spekuláció). A védelem engedélyezéséhez a GCC 12 jelenleg tesztelt kiadásával kell építeni.
    • Hozzáadott egy mechanizmust a referenciaszámlálás nyomon követésére (újraszámlálás, referencia-számlálás), amelynek célja a referenciaszámlálás során előforduló hibák számának csökkentése, amelyek a memóriához való hozzáféréshez vezetnek annak felszabadítása után. A mechanizmus jelenleg a hálózati alrendszerre korlátozódik, de a jövőben a kernel más részeihez is adaptálható.
    • A folyamatmemória-oldaltáblázat új bejegyzéseinek kiterjesztett ellenőrzése megtörtént, lehetővé téve bizonyos típusú sérülések észlelését és a rendszer leállítását, így korai szakaszban blokkolja a támadásokat.
    • Hozzáadtuk a kernelmodulok közvetlenül a kernel általi kicsomagolását, nem pedig a felhasználói térben lévő kezelő által, ami lehetővé teszi a LoadPin LSM modul használatát annak biztosítására, hogy a kernelmodulok egy ellenőrzött tárolóeszközről töltődnek be a memóriába.
    • A "-Wcast-function-type" jelzővel ellátott összeállítás, amely figyelmeztetéseket tesz lehetővé, ha a függvénymutatókat nem kompatibilis típusra küldi.
    • Hozzáadott pvUSB virtuális gazdagép-illesztőprogram a Xen hypervisorhoz, amely hozzáférést biztosít a vendégrendszerekhez továbbított USB-eszközökhöz (lehetővé teszi a vendégrendszerek számára a vendégrendszerhez rendelt fizikai USB-eszközök elérését).
    • Bekerült egy modul, amely lehetővé teszi, hogy Wi-Fi-n keresztül kommunikáljon az IME (Intel Management Engine) alrendszerrel, amely a legtöbb modern alaplapban Intel processzorokkal érkezik, és külön mikroprocesszorként van megvalósítva, amely a CPU-tól függetlenül működik.
    • Az ARM64 architektúra esetében a KCSAN (Kernel Concurrency Sanitizer) hibakereső eszköz támogatása, amely a kernelen belüli versenyfeltételek dinamikus észlelésére szolgál.
    • A 32 bites ARM-rendszerekhez hozzáadták a KFENCE-mechanizmus használatának lehetőségét a memóriával végzett munka során fellépő hibák észlelésére.
    • A KVM hypervisor támogatja az AMX (Advanced Matrix Extensions) utasításokat, amelyeket a közelgő Intel Xeon Scalable szerverprocesszorokban implementálnak.
  • Hálózati alrendszer
    • Támogatás hozzáadva a hálózati eszközök oldalára a forgalomkezeléssel kapcsolatos műveletek tehermentesítéséhez.
    • Hozzáadtuk az MCTP (Management Component Transport Protocol) használatának lehetőségét soros eszközökön keresztül. Az MCTP használható a felügyeleti vezérlők és a hozzájuk tartozó eszközök (gazdaprocesszorok, perifériák stb.) közötti kommunikációra.
    • A TCP-vermet optimalizálták, például a recvmsg hívások teljesítményének javítása érdekében, a socket pufferek késleltetett felszabadítását valósították meg.
    • A CAP_NET_RAW jogosultsági szinten megengedett a SO_PRIORITY és SO_MARK módok beállítása a setsockopt függvényen keresztül.
    • IPv4 esetén a nyers socketek nem helyi IP-címekhez köthetők az IP_FREEBIND és IP_TRANSPARENT beállítások használatával.
    • A sysctl arp_missed_max hozzáadva az ARP-figyelő ellenőrzése során előforduló hibák küszöbértékének konfigurálásához, amely után a hálózati interfész letiltott állapotba kerül.
    • Lehetővé teszi külön sysctl min_pmtu és mtu_expires értékek konfigurálását a hálózati névterekhez.
    • Hozzáadtuk az ethtool API-hoz a bejövő és kimenő csomagokhoz tartozó pufferek beállításának és méretének meghatározását.
    • A Netfilter támogatást nyújtott a tranzit pppoe forgalom hálózati hídon történő szűréséhez.
    • Az SMB3 protokollt használó fájlkiszolgálót megvalósító ksmbd modul támogatja a kulcscserét, engedélyezte a 445-ös hálózati portot az smbdirect számára, és hozzáadta az „smb2 max credit” paraméter támogatását.
  • Оборудование
    • A drm (Direct Rendering Manager) alrendszer és az i915 illesztőprogram a bizalmas információk megjelenítésére szolgáló képernyők támogatásával bővült, például egyes laptopok beépített bizalmas megtekintési móddal rendelkező képernyőkkel vannak felszerelve, ami megnehezíti a kívülről való megtekintést. . A hozzáadott változtatások lehetővé teszik speciális illesztőprogramok csatlakoztatását az ilyen képernyőkhöz, és a bizalmas böngészési módok vezérlését a szokásos KMS-illesztőprogramok tulajdonságainak beállításával.
    • Az amdgpu illesztőprogram támogatja az STB (Smart Trace Buffer) hibakeresési technológiát az összes ezt támogató AMD GPU-hoz. Az STB megkönnyíti a hibák elemzését és a probléma forrásának azonosítását azáltal, hogy egy speciális pufferben tárolja az utolsó hiba előtt végrehajtott funkciókra vonatkozó információkat.
    • Az i915 illesztőprogram kiegészíti az Intel Raptor Lake S chipek támogatását, és alapértelmezés szerint lehetővé teszi az Intel Alder Lake P chipek grafikus alrendszerének támogatását A képernyő háttérvilágításának vezérlése a VESA DPCD interfészen keresztül lehetséges.
    • A hardveres görgetési gyorsítás támogatása a konzolban visszakerült az fbcon/fbdev illesztőprogramokba.
    • Az Apple M1 chipek támogatására irányuló változtatások folyamatos integrációja. Megvalósította a simpledrm illesztőprogram használatának lehetőségét Apple M1 chippel rendelkező rendszereken a firmware által biztosított framebufferen keresztül történő kimenethez.
    • Hozzáadott támogatás az ARM SoС-hoz, a Snapdragon 7c, 845 és 888 eszközökhöz és kártyákhoz (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183) Acer Chromebook 314), Mediatek MT7986a/b (Wi-Fi útválasztókban használatos), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320LP8i, NMX8 ULP2500. , Aspeed AST2600/AST32, Engicam i.Core STM1MP6, Allwinner Tanix TX6000, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6001/t14 MacBook Pro 16/XNUMX.
    • Hozzáadott támogatás az ARM Cortex-M55 és Cortex-M33 processzorokhoz.
    • Hozzáadott támogatás a CPU MIPS-en alapuló eszközökhöz: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Támogatás hozzáadva a RISC-V architektúrán alapuló StarFive JH7100 SoC-hez.
    • Lenovo-yogabook-wmi illesztőprogram hozzáadva a billentyűzet háttérvilágításának vezérléséhez és a Lenovo Yoga Book különböző érzékelőinek eléréséhez.
    • Asus_wmi_sensors illesztőprogram hozzáadva az AMD Ryzen processzorokon alapuló Asus X370, X470, B450, B550 és X399 alaplapokon használt érzékelők eléréséhez.
    • Hozzáadott x86-android-tablets illesztőprogram az Android platformmal szállított x86-alapú táblagépekhez.
    • Támogatás hozzáadva a TrekStor SurfTab duo W1 érintőképernyőhöz és az elektronikus tollhoz a Chuwi Hi10 Plus és Pro táblagépekhez.
    • A SoC Tegra 20/30 illesztőprogramjai kiegészítették az energia- és feszültségkezelés támogatását. Lehetővé teszi a rendszerindítást régebbi 32 bites Tegra SoC eszközökön, például ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 és Pad TF300TG.
    • Illesztőprogramok hozzáadva a Siemens ipari számítógépekhez.
    • Támogatás hozzáadva a Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA és Team Source LCD043015 TCMXNUMXX kijelzőkXNUMXSTXNUMXXXNUMX TCMXNUMX TCMXNUMX.
    • Hozzáadott támogatás a hangrendszerekhez és kodekekhez: AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320x3ADC194x35ADC. A Tegra41 HD-audióval kapcsolatos problémák megoldódtak. HDA támogatás hozzáadva a CSXNUMXLXNUMX kodekekhez. Továbbfejlesztett hangrendszerek támogatása Lenovo és HP laptopokhoz, valamint Gigabyte alaplapokhoz.

Forrás: opennet.ru

Hozzászólás