Két hónapos fejlesztés után Linus Torvalds bemutatta a Linux 5.17 kernel kiadását. A legfontosabb változások között szerepel: új teljesítménymenedzsment rendszer az AMD processzorokhoz, felhasználói azonosítók rekurzív leképezésének lehetősége a fájlrendszerekben, hordozhatóan lefordított BPF programok támogatása, a véletlenszám-generátor áttérése a BLAKE2s algoritmusra, valós idejű végrehajtási elemzéshez használt RTLA eszköz, új fscache backend a hálózati fájlrendszerek gyorsítótárazásához, valamint nevek csatolásának lehetősége névtelen mmap műveletekhez.
Az új verzióba 14203 javítást fogadtak el 1995 fejlesztőtől, a patch mérete 37 MB (a változások 11366 fájlt érintenek, 506043 kódsort adtak hozzá, 250954 sort töröltek). A 5.17-es verzióban bemutatott összes változás körülbelül 44%-a eszközmeghajtókhoz kapcsolódik, körülbelül 16%-a hardverarchitektúrák specifikus kód frissítésével, 15%-a hálózati veremhez, 4%-a fájlrendszerekhez, és 4%-a a kernel belső alrendszereihez.
A 5.17-es kernel fő újításai:
- Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
- Megvalósult a felhasználói azonosítók beágyazott leképezésének lehetősége a csatolt fájlrendszerekben, amely az adott felhasználó fájljainak a más felhasználó számára történő leképezéséhez használható a csatolt partíciókon a jelenlegi rendszerben. A hozzáadott lehetőség lehetővé teszi a leképezés rekurzív használatát olyan fájlrendszereken, amelyek már leképezést alkalmaznak.
- Teljesen átírták az fscache alrendszert, amely a helyi fájlrendszerek gyorsítótárazásának megszervezésére szolgál, hálózati fájlrendszereken keresztül átvitt adatok számára. Az új megvalósítás jelentős kód egyszerűsítést mutat, és a bonyolult állapotkezelési és nyomkövetési műveleteket egyszerűbb mechanizmusokra cserélte. Az új fscache támogatása a CIFS fájlrendszerben valósult meg.
- A fájlrendszer eseménykövető alrendszerében a fanotify új eseménytípust, a FAN_RENAME-t valósított meg, amely lehetővé teszi a fájlok vagy könyvtárak átnevezésének egyszeri elfogását (korábban az átnevezések kezelésére két külön eseményt, a FAN_MOVED_FROM-t és a FAN_MOVED_TO-t használták).
- A Btrfs fájlrendszerében optimalizálták a naplózási és fsync műveleteket a nagy katalogusokkal kapcsolatban, amelyet az index kulcsok másolásával és a naplózott metaadatok mennyiségének csökkentésével valósítottak meg. Támogatást biztosítottak a szabad terület bejegyzések méretének indexelésére és keresésére, ami körülbelül 30%-kal csökkentette a késleltetéseket és lerövidítette a keresési időt. Engedélyezték a töredezettség-mentési műveletek megszakítását. Lehetővé vált eszközök hozzáadása a tárolók közötti egyensúlyozás kikapcsolásakor, azaz a fájlrendszer montálásakor a skip_balance opcióval.
- Új fájlrendszer-montázs szintaxist javasoltak a Ceph számára, amely megoldja az IP-címekhez kötődő meglévő problémákat. Továbbá IP-címek a szerver meghatározásához most a klaszter azonosítóját (FSID) is használni lehet: mount -t ceph user@fsid.fs_name=\/[subdir] mnt -o mon_addr=monip1[:port][\/monip2[:port]]
- Az Ext4 fájlrendszer új API-ra váltott a montáláshoz, amely elválasztja a montálási opciók elemzésének és a szuperblokk beállításának fázisait. Megszüntették a lazytime és nolazytime montálási opciók támogatását, amelyeket ideiglenes változtatásként vezettek be a util-linux flaga MS_LAZYTIME használatának egyszerűsítése érdekében. Hozzáadták a fájlrendszer címkék beállításának és olvasásának támogatását (ioctl FS_IOC_GETFSLABEL és FS_IOC_SETFSLABEL).
- NFSv4-hez hozzáadták a fájlnevek és könyvtárnevek kis- és nagybetűk nélküli feldolgozásának támogatását. Az NFSv4.1+ esetében hozzáadták az aggregált ülések (trunking) meghatározásának támogatását.
- Memória és rendszerszolgáltatások
- Hozzáadták az amd-pstate drivert, amely dinamikus frekvenciakezelést biztosít az optimális teljesítmény elérése érdekében. A driver támogatja az AMD CPU-okat és APU-kat a Zen 2 generációtól kezdődően, a Valve társfejlesztésében készült, és a energiafogyasztás hatékonyabb kezelésére összpontosít. Az adaptív frekvenciaváltoztatáshoz a CPPC (Collaborative Processor Performance Control) mechanizmust használják, amely lehetővé teszi a teljesítménymutatók pontosabb változtatását (nem korlátozódik három teljesítményszintre), és gyorsabb reakciót tesz lehetővé az állapotváltozásokra, mint a korábban használt ACPI alapú P-state driverek (CPUFreq).
- Az eBPF alszisztémában javasolták a bpf_loop() kezelőt, amely alternatív módszert kínál a ciklusok szervezésére az eBPF programokban, gyorsabb és egyszerűbb az ellenőrzőverifikáló számára.
- A szintetikum szintjén a CO-RE (Compile Once — Run Everywhere) mechanizmus valósult meg, amely lehetővé teszi eBPF programok kódjának egyszeri összegyűjtését, és egy speciális univerzális betöltőt használ, amely az aktuális kernelhez és a BTF (BPF Type Format) típusokhoz igazítja a betöltendő programot.
- Lehetőséget biztosítanak a privát anoním (malloc által lefoglalt) memória területek elnevezésére, ami megkönnyítheti a hibakeresést és a memóriafogyasztás optimalizálását az alkalmazásokban. A neveket a prctl PR_SET_VMA_ANON_NAME flaggel lehet hozzárendelni, és a /proc/pid/maps és /proc/pid/smaps formájában jelennek meg: «[anon:]».
- A feladatütemezőben lehetőség van a /proc/PID/sched időtartamának nyomon követésére és megjelenítésére, amelyet a folyamatok kényszerített tétlenség (forced-idle) állapotában töltöttek el, amit például a processzor túlmelegedésének csökkentésére alkalmaznak.
- Hozzáadták a gpio-sim modult, amelyet a GPIO chippek szimulációjára terveztek a tesztelés céljából.
- A «perf ftrace» parancshoz hozzáadódott a «latency» alkategória, amely histogrammokat generál a késleltetésekkel kapcsolatos információkkal.
- Hozzáadták a «RTLA» eszközkészletet a valós idejű működés elemzésére. A készlet tartalmaz olyan eszközöket, mint az osnoise (meghatározza az operációs rendszer hatását a feladat végrehajtására) és a timerlat (megvariálja a timerrel kapcsolatos késleltetéseket).
- Beintegrálták a második patchsorozatot a memóriapage folio koncepció megvalósításával, amelyek hasonlítanak az összesített memóriaoldalakra (compound pages), de javított szemantikával és érthetőbb működési szervezéssel rendelkeznek. A foliók használata felgyorsítja a memória kezelését egyes kernel alrendszerekben. A javasolt patchok befejezték a lapcache átállítását foliók használatára, valamint kezdeti támogatást nyújtanak a folióknak az XFS fájlrendszerben.
- Hozzáadták a «make mod2noconfig» összeszerelési módot, amely során egy konfiguráció jön létre, amely az összes letiltott alrendszert kernel modulok formájában építi be.
- Emelték az LLVM/Clang verziójára vonatkozó követelményeket, amelyet a kernel összegyűjtéséhez lehet használni. Mostantól legalább az LLVM 11 kiadás szükséges a fordításhoz.
- Virtualizáció és biztonság
- Javasolt egy frissített megvalósítása a RDRAND álhálózati számológépnek, amely a /dev/random és /dev/urandom eszközök működéséért felelős, figyelemre méltó a BLAKE2s hash-függvény SHA1 helyetti használatával az entropy keverési műveletekhez. A változás javította a generátor biztonságát, mivel megszabadult a problémás SHA1 algoritmustól, és kizárta az RNG inicializáló vektorának felülírását. Mivel a BLAKE2s algoritmus teljesítményben felülmúlja a SHA1-et, alkalmazása a teljesítményre is kedvezően hatott.
- A folyamatort kereső sebezhetőségek elleni védelem került bevezetésre, amely a feltételezett végrehajtás utáni korlátozott közvetlen ugrások utáni utasítások végrehajtásával kapcsolatos. A probléma a közvetlen ugrások utáni memória utasítások előzetes feldolgozásából (SLS, Straight Line Speculation) adódik. A védelem aktiválásához a GCC 12 tesztelési kiadásának használata szükséges.
- Bevezetésre került a referencia-számlálás nyomkövető mechanizmus (refcount, reference-count), amely a referencia-számlálás során fellépő hibák számának csökkentésére irányul, amely memóriahozzáféréshez vezet a felszabadítás után. A mechanizmus egyelőre csak a hálózati alrendszerre korlátozódik, de a jövőben más magrészekhez is alkalmazható lehet.
- Kiterjesztett ellenőrzéseket valósítottunk meg az új bejegyzések memóriacím-táblában, melyek lehetővé teszik a bizonyos sérülés-típusok észlelését és a rendszer leállítását, blokkolva ezzel a támadásokat korai szakaszban.
- Bevezetésre került a kernel-modulok közvetlen kibővítési lehetősége a kerneltől, nem a felhasználói tér kezelőjétől, lehetővé téve a LoadPin LSM-modul segítségével, hogy a kernel moduljai ellenőrzött tárolóeszközből töltődjenek be a memóriába.
- Biztosított a -Wcast-function-type flaggal való build, amely figyelmeztetéseket generál a funkciók mutatói nem megfelelő típusra való konvertálásáról.
- Bevezetésre került egy virtuális host drivere, a pvUSB a Xen hypervisor számára, amely hozzáférést biztosít a vendég rendszerekhez csatolt USB-eszközökhöz (lehetővé teszi a vendég rendszerek számára, hogy elérjék a fizikai USB-eszközöket, amelyek a vendég rendszerhez vannak rendelve).
- Hozzáadva egy modul, amely lehetővé teszi a Wi-Fi-n keresztüli interakciót az IME (Intel Management Engine) alrendszerrel, amely a legtöbb modern Intel processzorral rendelkező alaplaphoz van gyárilag integrálva, és külön mikroprocesszorként működik, függetlenül a CPU-tól.
- Az ARM64 architektúrához implementálva lett a KCSAN (Kernel Concurrency Sanitizer) hibakereső eszköz támogatása, ami a versenyállapotok dinamikus érzékelésére szolgál a kernelben.
- A 32-bites ARM rendszerhez hozzáadva lett a KFENCE mechanizmus használata a memóriahibák észlelésére.
- A KVM hypervisorhoz hozzáadva lett az AMX (Advanced Matrix Extensions) utasítások támogatása, amelyek a közelgő Intel Xeon Scalable szerver processzorokban kerülnek megvalósításra.
- Hálózati alrendszer
- Hozzáadva a hálózati eszközök oldalára való leválasztás (offloading) lehetősége a forgalomkezeléssel kapcsolatos műveletekhez.
- Hozzáadva a MCTP (Management Component Transport Protocol) protokoll használata soros interfészen keresztüli eszközökön. Az MCTP felhasználható a vezérlőegységek és a kapcsolódó eszközök (hoszt processzorok, perifériás eszközök stb.) közötti kommunikációra.
- Optimalizálás készült a TCP stack-on, például a recvmsg hívások teljesítményének javítása érdekében késleltetett bútorral történő kiürítés végrehajtásával.
- A CAP_NET_RAW jogosultságok szintjén megengedték a setsockopt funkción keresztüli SO_PRIORITY és SO_MARK módok beállítását.
- IPv4 esetén megengedett, hogy a raw socketek ne lokális IP-címekhez legyenek csatolva, az IP_FREEBIND és IP_TRANSPARENT opciók használatával.
- Hozzáadva egy sysctl, az arp_missed_max a ARP-monitor által végzett ellenőrzések hibás áthaladási terheinek beállításához, amely után a hálózati interfész leállított állapotba kerül.
- Lehetőséget biztosítanak a sysctl min_pmtu és mtu_expires külön értékeinek konfigurálására a hálózati névrendszerek számára.
- Az ethtool API-hoz hozzáadva lett a bejövő és kimenő csomagok puffereinek méretének beállítása és meghatározása.
- A Netfilterhez hozzáadott a tranzit PPPoE forgalom hídon való szűrésének támogatása.
- Hozzáadva a ksmbd modulhoz, amely fájlszolgáltatást valósít meg, a szerver, használva az SMB3 protokollt, hozzáadva a kulcscsere támogatását, a 445-ös hálózati port használatával az smbdirect számára, és egy "smb2 max credit" paraméter támogatása.
- Hardver
- A DRM (Direct Rendering Manager) alrendszerbe és az i915 illesztőprogramba támogatást adtak a bizalmas információk megjelenítésére alkalmas képernyőkhöz, például néhány laptop beépített bizalmas nézet üzemmóddal ellátott kijelzőt tartalmaz, amely megnehezíti a külső megtekintést. A hozzáadott módosítások lehetővé teszik, hogy speciális illesztőprogramok csatlakoztathatók az ilyen képernyőkhöz, és a bizalmas nézet üzemmódok kezelhetők legyenek a szokásos KMS-illesztőprogramok tulajdonságainak beállításával.
- Az amdgpu illesztőprogramban engedélyezték az STB (Smart Trace Buffer) hibakeresési technológia támogatását minden támogatott AMD GPU számára. Az STB egyszerűsíti a hibák elemzését és a problémák forrásának megtalálását, mivel egy speciális pufferben megőrzi az utolsó hiba előtt végrehajtott funkciókról szóló információkat.
- Az i915 illesztőprogramban támogatást adtak az Intel Raptor Lake S chippekhez, és alapértelmezés szerint engedélyezték az Intel Alder Lake P chippek grafikus alrendszerének támogatását. Lehetőség nyílik a képernyő háttérvilágításának vezérlésére a VESA DPCD interfészen keresztül.
- A fbcon/fbdev illesztőprogramokban visszakerült a konzolon történő görgetés hardveres gyorsításának támogatása.
- Folytatódott az Apple M1 chip támogatásához szükséges módosítások integrálása. Lehetővé vált a simpledrm illesztőprogram használata Apple M1 chippel rendelkező rendszereken a firmware által biztosított framebuffer-en keresztül történő megjelenítéshez.
- Támogatást adtak az ARM SoC-khoz, Snapdragon 7c, 845 és 888 (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 (használják Wi-Fi routerekben), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP i.MX8 ULP8, Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16 alapú eszközökhöz.
- Támogatást adtak az ARM Cortex-M55 és Cortex-M33 processzorokhoz.
- Támogatást adtak a MIPS alapú CPU-val rendelkező eszközökhöz: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
- Támogatást adtak a RISC-V architektúrára épülő StarFive JH7100 SoC-hoz.
- Hozzáadása történt a lenovo-yogabook-wmi illesztőprogramnak a billentyűzet háttérvilágításának vezérlésére és különböző érzékelőkhöz való hozzáféréshez a Lenovo Yoga Book készülékeken.
- Hozzáadása történt az asus_wmi_sensors illesztőprogramnak az Asus X370, X470, B450, B550 és X399 alaplapokon használt érzékelőkhöz az AMD Ryzen processzorokkal.
- Hozzáadása történt az x86-android-tablets illesztőprogramnak az x86 architektúrára épülő Android platformmal szállított táblagépekhez.
- Hozzáadva a TrekStor SurfTab duo W1 érintőképernyők és a Chuwi Hi10 Plus és Pro táblagépekhez való digitális toll támogatása.
- A Tegra 20/30 SoC-hoz készült illesztőprogramok bevezetésre kerültek az energiamenedzsment és a feszültségvezérlés támogatásával. Lehetővé vált a régi, 32 bites Tegra SoC-alapú eszközök, például az ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 és Pad TF300TG indítása.
- Iparági számítógépekhez készült illesztőprogramok lettek hozzáadva a Siemens számára.
- 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 Display TST043015CMHX LCD panelek támogatása.
- Hozzáadva az AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel rendszerek NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx hangrendszerek és kodekek támogatása. Megoldották a Tegra194 HD-audio problémáit. Hozzáadva az HDA támogatás a CS35L41 kodekekhez. Fejlesztették a hangrendszerek támogatását Lenovo és HP laptopok, valamint Gigabyte alaplapok esetében.
Forrás: opennet.ru
