Ez edge telepítő által kínált frissebb Linux kernelek újdonságai (Linux kernel 5.15 - Linux kernel 6.1)
Linux kernel 6.1 újdonságok
- A Rust programozási nyelv kezdeti támogatása
Ez a kiadás hozzáadja a Rust programozási nyelv támogatását. A Rust célja, hogy egy modern rendszerprogramozási nyelvet biztosítson bizonyítható memóriabiztonsággal, szemétgyűjtő használata nélkül, így kiküszöbölve a biztonsági sebezhetőségek leggyakoribb forrását jelentő hibák egy egész osztályát. Ez a kiadás kezdeti támogatást tartalmaz a Rust programozási nyelv számára, amely a későbbi kiadásokban továbbfejlesztésre kerül.
(Cikk) - Többgenerációs LRU a jobb memóriakezelés érdekében
Amikor a programok megpróbálnak több memóriát használni, mint amennyi rendelkezésre áll, a Linux kernelnek döntést kell hoznia arról, hogy a memória mely részei, és melyik program(ok)tól, költözzenek a memóriából swapolásra vagy kiürítésre. Ez a folyamat dönti el a kernel gyorsítótárazási politikáját és a memória túlköltésének képességét. A Linux jelenlegi memóriakezelő alrendszere úgy próbál helyes döntést hozni, hogy LRU (Least Recently Used) listákat vezet a memóriaoldalakról. Ez a módszer azonban nem mindig a legjobb döntéseket hozza. A többgenerációs LRU egy alternatív LRU implementáció, amely optimalizálja a lapok visszavételét és javítja a teljesítményt memóriaterhelés alatt. Ez a megvalósítás nem helyettesíti a jelenlegi memóriakezelési sémát, a fordításkor konfigurálható.
(Cikk, Cikk, Rendszergazdai útmutató, Tervezési dokumentáció) - KMSAN, a kernel memóriatisztító
A KMSAN egy dinamikus hibadetektor, amelynek célja a nem inicializált értékek használatának megtalálása. A fordítói eszköztáron alapul, és meglehetősen hasonlít a felhasználói tér MemorySanitizer eszközéhez. Fontos megjegyzés, hogy a KMSAN-t nem produktív használatra szánják, mert drasztikusan növeli a kernel memória lábnyomát, és lelassítja az egész rendszert.
(Dokumentáció, cikk) - A KCF integritási séma támogatása
- Memóriaréteg-javítások
- A modern rendszerekben a RAM több féle tulajdonságú chipre osztható, amelyek a hozzáférő CPU-tól függően gyorsabb vagy valamivel lassabb sebességgel érhetők el. A modern rendszerek még több RAM-szintet adnak hozzá. Ez azt jelenti, hogy az adatok egyik vagy másik csomóponthoz tartozó memóriaoldalra történő elhelyezése komolyan befolyásolhatja a teljesítményt. Ez a kiadás tartalmaz néhány fejlesztést a memóriakezelő alrendszerben. Az első egy új algoritmus, amely segít azonosítani, hogy mely memóriaoldalak a sűrűn használtak egy csomópontban. Így a rendszer a sűrűn használt (forró), és a ritkán használt (hideg) memóriaoldalakat a megfelelő csomópontokba tudja előléptetni, illetve átirányítani. A második változtatás a felhasználói tér számára is elérhetővé teszi a rétegzési (tiering) információkat, és lehetővé teszi a felhasználók számára azok konfigurálását.
(cikk) - BPF funkciók: pánik segédprogram, PKCS#7 aláírásellenőrzés, memória allokátor. A szokásos módon ez a kiadás is tartalmaz néhány BPF funkciót:
- Mivel néhány típusú BPF program képes csatolni a kprobe és a fentry programokat, ismeretlen környezetben is futhatnak, ahol a sima kmalloc() hívása nem biztos, hogy biztonságos. Emiatt egy kis memóriapuffer van lefoglalva, hogy ilyen kontextusokban is lehetővé tegye a kiosztást
(cikk) - Néhány hibakeresési technika memóriadumpot igényel, ez a kiadás lehetővé teszi a pánik kiváltását az eBPF-ből, hogy a memóriaállapot a megfelelő pillanatban dumpolható legyen.
(cikk) - Vannak más funkciók is, mint például a PKCS#7 aláírás-ellenőrzési funkciók vagy egy felhasználó-tér-kiadó gyűrűs puffertérkép típus.
- Mivel néhány típusú BPF program képes csatolni a kprobe és a fentry programokat, ismeretlen környezetben is futhatnak, ahol a sima kmalloc() hívása nem biztos, hogy biztonságos. Emiatt egy kis memóriapuffer van lefoglalva, hogy ilyen kontextusokban is lehetővé tegye a kiosztást
- Maple trees, egy hatékonyabb fastruktúrájú-adatszerkezet
A Maple trees egy RCU zárolásmentes munkavégzés (read-copy-update) tartomány alapú B-fa adatszerkezet, amelyet a modern processzorok gyorsítótárának hatékony használatára terveztek. A kernelben számos olyan hely van, ahol egy nem átfedő tartomány alapú fa előnyös lenne, különösen egy egyszerű interfésszel rendelkező megvalósítással. A teljesítményt javító, más adatszerkezetekkel ellátott rbtree vagy a nem átfedő tartományok követésére szolgáló intervallumfa felhasználói profitálnak a legtöbbet a Maple trees-ből.
(cikk) - A folyamat számára engedélyezett, hogy önkéntes módon vonják össze a memóriát egy Transparent Hugepage-be
Ez a fejlesztés egy olyan mechanizmust biztosít a felhasználói térben futó program számára, amely folyamat-kontextuson belül előidézheti a memória alkalmas tartományainak Transparent Hugepage, nagyméretű memórialapokká való összevonását, lehetővé téve ezzel a felhasználók számára, hogy saját költségükön szigorúbban ellenőrizzék saját Hugepage-használati politikájukat. A javasolt interfész egy új madvise(2) módot ad hozzá, a MADV_COLLAPSE-t, és kihasználja az új process_madvise(2) hívást.
(cikk) - PSI-fejlesztések: csoportonkénti PSI, IRQ/SoftIRQ PSI, optimalizálás
A Pressure Stall Information részletes képet ad a rendszer aktuális erőforrás-használatáról. Ez a fejlesztés tartalmazza az opcionális per-cgroup PSI elszámolás (némi overhead árán biztosított) támogatását, egy új PSI_IRQ to IRQ/SOFTIRQ nyomásértéket, és néhány optimalizálást.
(Dokumentáció) - Btrfs teljesítmény fejelsztések
Ez a kiadás tartalmaz néhány olyan változtatást, amelyek sokkal gyorsabbá teszik a Btrfs-t, amikor aszinkron pufferelt I/O-t végez az io_uring használatával. Továbbá javult a teljesítmény a normál pufferelt I/O során is, drasztikusan gyorsabbak lettek az lseek és a FIEMAP (extent mapping information) kasználata is. Előkészületek kezdődtek egy külön blokkcsoport-fa implementálására, amely felgyorsítja a mountolási időket, javított inode naplózás (+25%-kal gyorsabb dbench teljesítmény, -21% maximális késleltetés). - A Linux 6.1 kiírja azt a CPU-magot, ahol szegmentációs hiba lép fel. Ha a Linux rendszergazdák úgy találják, hogy a szegmentációs hibák folyamatosan ugyanazokon a CPU-kon/magokon fordulnak elő, az egy hibás processzor jele lehet.
- Az AMD IOMMU v2 laptábla támogatás beépítése az AMD vIOMMU hardveres IOMMU virtualizáció részeként az EPYC 7002 „Rome” és újabb processzorok esetében.
- AMD CPU cache-to-cache éújdonságais memóriajelentés és teljesítményadatok az újabb AMD processzorokkal és LbrExtV2 támogatás a Zen 4 CPU-khoz.
- Az AMD Platform Management Framework (PMF) összevonásra került a jobb hő-, energiaés zajkezelés érdekében a következő generációs AMD Ryzen eszközökkel.
- Az új ARM SoC-k és különböző új ARM eszközök támogatása.
- Gyorsabb Intel memóriahiba dekódolás.
- AMD P-State javítások és s2idle javítások az AMD Rembrandt laptopokhoz.
- ARM-támogatás a Spectre-BHB mitigáció futás közbeni letiltásához a nagy teljesítményköltségek miatt.
- Az Intel Meteor Lake fejlesztések további bevezetése.
- Javított Intel GPU firmware kezelés.
- Különböző Intel Arc Graphics DG2/Alchemist fejlesztések.
- AMDGPU gang submit támogatás, amelyre a RADV Vulkan meghajtónak van szüksége a megfelelő mesh shader támogatáshoz.
- Mode2 reset támogatás az RX 6000 sorozatú RDNA2 GPU-k számára.
- Az AMD RDNA3 GPU-k támogatását lehetővé tevő fejlesztések bevezetése.
- A RISC-V alapértelmezett kernelkonfigurációja lehetővé teszi a különböző CD-ROM képformátumok használatát. Nem mintha valószínű, hogy a RISC-V rendszerével fizikai CD-meghajtót fog kezelni, de a telepítési ISO-lemezképek és egyéb adathordozók lehetnek ISO9600 / Joliet / ZISOFS fájlrendszer formátumban is.
- FSCache-alapú megosztott tartománytámogatás az EROFS számára, a kezdeti cél a konténer felhasználási esetek.
- EXT4 javítások és teljesítményoptimalizálás.
- A statx() támogatása a közvetlen I/O igazítás részleteinek jelentésére.
- A Logitech HID++ nagy felbontású görgetés támogatásának automatikus felismerése és a HID++ engedélyezésének megkísérlése minden Logitech Bluetooth eszköz esetében.
- Hangtámogatási kiegészítések a Sound Open Firmware kódhoz hozzáadott AMD Rembrandt, az új AMD "Pink Sardine" audio társprocesszor támogatása és az új Apple MCA SoC illesztőprogram az új Apple Silicon eszközök hangtámogatásához.
- WiFi Extremely High Throughput (EHT) és Multi-Link Operation (MLO) előkészületek a WiFi 802.11be és a WiFi 7 számára.
- Az Intel Habana Labs Gaudi2 engedélyezésének folytatása a következő generációs AI gyorsítóhoz.
- Bemeneti vezérlő az IBM Operation Panel számára.
- Hozzáadásra került egy PINE64 PinePhone (Pro) billentyűzet-illesztőprogram a Linuxon történő bevitelhez.
- Sok más Linux laptopos fejlesztés.
- Intel Meteor Lake Thunderbolt támogatás.
- USB4 végponttól végpontig tartó áramlásvezérlés támogatása a Linux kernel Thunderbolt hálózati vezérlőjével.
- Az „olcsó klón” Nintendo kontrollerek jobb kezelése.
- Új médiavezérlők és két meglévő vezérlő került ki a stagingből.
- Különböző hardverfelügyeleti illesztőprogram kiegészítések.
- A Xen mostantól támogatja a grant-alapú VirtIO-t x86_64 esetén.
- VirtIO blokk „biztonságos törlés” támogatása, valamint a vDPA funkció provisioning támogatása.
- Gyorsabb fájlmegosztás a host és a vendég VM-ek között a 9P protokollt használók számára a jelentős 9P VirtIO optimalizációnak köszönhetően.
- A Linux 6.1 alapértelmezés szerint figyelmeztet a W+X kernel leképezésekre, és egy jövőbeli kernel kiadásban megtiltja, hogy ilyen leképezések egyáltalán létrejöjjenek.
- EFI-vel kapcsolatos fejlesztések a bizalmas (trusted) számítástechnika támogatására.
- Retpolines hardaning, hogy minden feltétel nélküli ugrás után INT3 legyen kiadva.
- Megkezdték az SELinux a futásidejű letiltás támogatásának kivezetését.
- Az RNG és a kriptokód javításai.
- Futásidejű figyelmeztetések a cross-field memcpy()-re, amellyel az elmúlt években a kernel számára az összes memcpy-alapú puffer túlcsordulást elkapta volna.
- További kódtisztítások a PREEMPT_RT beolvasztása előtt. A valós idejű / PREEMPT_RT munka azonban még nem került a fővonalba beolvasztásra, és még mindig a printk átdolgozása tartja fel.
- Általános EFI tömörített boot támogatás.
- A nagy sebességű soros / TTY over IEEE-1394 Firewire meghajtó eltávolítása.
- A Linux 6.1 nem támogatja már a régi a.out kód futtatását.
- A régi DECnet hálózati kód eltávolítása.
- Az MGLRU beolvasztásra került a Linux kernel lapvisszavételi kódjának átdolgozására, ami jobb felhasználói élményt eredményez, különösen a korlátozott RAM-kapacitású Linux-rendszerek esetében. A benchmark eredmények ígéretesnek tűnnek, és ezt a funkciót már beillesztették a Chrome OS és az Android eszközökbe.
- Az IBM POWER/PowerPC kód 64 bites KFENCE-vel, rendszerhívás-wrapperek és csak a végrehajtást támogató memóriával vértezték fel
- A LoongArch CPU port TLB/cache kód átdolgozást, QSpinLock támogatást, EFI bootot, perf események támogatását, Kexec kezelést, eBPF JIT támogatást és számos más funkciót kínál ehhez a kínai CPU architektúrához.
- A Linux 6.1 elhagyja a BF16 támogatást a Cortex-A510 processzorok számára egy hardveres probléma miatt, amelyet egyébként nem lehet Linuxon megkerülni.
- Számos egyéb hardvertámogatási kiegészítés.
Linux kernel 6.0 újdonságok
- Az Intel Arc Graphics diszkrét GPU-k, mint az A750 és az A770, a Linux 6.0 kernel i915 DRM kernel illesztőprogramja működnek! De ez még kísérleti a Linux 6.0-ban, így a „force_probe” opciót kell engedélyezni. De legalább a Linux 6.0-val már lehetséges az új Intel asztali diszkrét grafikus kártyáknak a használata, egy frissített Mesa stack-kel párosítva együtt.
- További AMD RDNA3 illesztőprogram fejlesztések, ami remélhetőleg elég ahhoz, hogy a közelgő Radeon RX 7000 sorozatú grafikus kártyákkal működjön. Majd a megjelenéskor meglátjuk, de remélhetőleg minden szükséges bit a helyén van.
- Landolt a „Dummy Wait” problémát javító AMD sebességnövelő javítás
- Qualcomm Snapdragon 8xc Gen3 támogatás, valamint korai támogatás a Lenovo ThinkPad X13s Arm laptophoz. Ez a munka a mainline-ban még korai formában van, de legalább használhatóvá válik, és egy újabb Arm Linux laptop opciót nyit meg.
- Új SOC-ok támogatása:
- NXP i.MX93 SoC
- Allwinner H616
- Marvell Prestera 98DX2530
- Nuvoton NPCM8XX
- Sunplus SP7021
- Google Chameleon v3
- Számos egyéb ARM alapú Chromebook-ok támogatása.
- Raspberry Pi 4 V3D támogatás (3 évvel a Pi 4 megjelenése után).
- OpenRISC PCI támogatás.
- Új bővítmények támogatások a RISC-V számára.
- Különböző ütemező változások, beleértve néhány NUMA kiegyensúlyozó javítást az AMD Zen számára, valamint az AMD CPU-k mostantól az MWAIT-ot részesítik előnyben a HALT-tal szemben.
- Különböző Intel Raptor Lake kiegészítések, például a TCC hűtési vezérlőhöz, Raptor Lake P a RAPL vezérlőben, Raptor Lake USB4 / Thunderbolt és más hiányzó Raptor Lake eszközök támogatása. Van néhány kezdeti Meteor Lake támogatás is, például az hanggal kapcsolatban.
- Az AMD Ryzen 7000 „Raphael” platform hang-illesztőprogramjának támogatása.
- IO_uring user-space block driver támogatás, különböző IO_uring optimalizációk és egyéb ígéretes I/O-val kapcsolatos munkák: például a Btrfs Send Protocol v2.
- Az Intel Habana Labs Gaudi 2 gyorsítók kezdeti támogatása.
- A H.265/HEVC média user-space API mostantól stabilnak tekinthető.
- Futtatási idejű ellenőrzés a biztonságkritikus rendszerek számára.
- Biztonsági szempontból a Linux kernel 6.0 megvalósítja a véletlenszám seed-ek lekérését a bootloader beállítási adataiból az x86 és m68k kernelekhez,
- A SafeSetID biztonsági modul támogatása.
- A setgroups() módosítások ellenőrzésére.
- Az ARIA titkosítási algoritmus támogatása.
- A Linux 5.19 tartalmazta a kínai LoongArch CPU-architektúra kezdeti támogatását. A hiányzó illesztőprogramok miatt azonban lehetetlen volt működő rendszert indítani. A LoongArch CPU-knak most már el kell indítaniuk a Linuxot ezzel a kiadással. Nem szabad elfelejteni, hogy a Loongson a Linuxot készíti elő a laptopjaihoz. Így most már van meghajtó kódja a Linux Kernel 6.0-ban.
- Számos egyéb hardvertámogatási kiegészítés.
Linux kernel 5.19 újdonságok
- Késői mikrokód betöltés x86/x86_64 esetén alapértelmezés szerint letiltva. A felhasználóknak ajánlott a CPU mikrokód korai betöltése.
- Számos Intel energiagazdálkodási és hőkezelési frissítés - beleértve egy javítást a felforrosodó Linux laptopok ellen, amelyek alvás közben lemerítik az akkumulátort.
- A CPUID funkciók könnyebb törlése.
- Az AMD SEV-SNP az AMD EPYC 7003 „Milan” processzorokkal bevezetett Secure Encrypted Virtualization (SEV) bevezetésre került.
- Az elavult x86 a.out támogatás eltávolítása.
- Az Intel-féle In-Field Scan (IFS) a Kernelbe beolvasztásra került az adatközpontban történő telepítés előtti CPU-szilíciumtesztek megkönnyítésére vagy az idővel történő szilíciumtesztelésre szolgál, hogy segítsen az ECC-ellenőrzések vagy más meglévő tesztek által fel nem fedezett hardverproblémák felderítésében.
- A LoongArch a Linux kernel új CPU portjaként került beolvasztásra. Azonban, mint említettük, még nincs támogatás a LoongArch rendszerek tényleges indításához, mivel néhány illesztőprogram még nem áll készen a Kernelbe törtébő beolvasztásra.
- A PolarBerry RISC-V FPGA lapka támogatása, amely a PolarFire SoC-t használja.
- Támogatás 32 bites (RV32) binárisok futtatásához RISC-V 64 bites (RV64) platformon.
- A 12 éves Arm multiplatformos erőfeszítések megvalósítása a régi ARMv4T/ARMv5 kód átalakításával a multiplatformos kernel-építésekhez. Továbbá multiplatform ARM támogatás a régi Intel XScale/PXA hardverekhez.
- A HPE GXP SoC-vel kiegészül a HPE GXP SoC, amely a hamarosan megjelenő HPE szervereken a baseboard management controller (BMC) feladatokat látja el.
- ARMv9 Scalable Matrix Extension támogatás. A Scalable Matrix Extension (SME) az SVE/SVE2-re épül.
- Teljesítmény változások az AMD oldaláról a Zen 4 IBS kiterjesztésekkel, az AMD PerfMonV2-vel, és az AMD Zen 3 Branch Sampling (BRS) funkcióval.
- A régi Renesas H8/300 CPU architektúra eltávolítása. Az architektúra régi, és évek óta nem karbantartott a kernelben, egyszer már kikerült a Kernel főágából.
- Közel félmillió sor új kód került a grafikus és megjelenítőkkel foglalkozó alrendszerbe. Az új AMD IP-blokk felépítés szerint az AMD GPU-k nem fix felépítéssel fognak kernel támogatást kapni, hanem az illesztőprogram érzékeli a rendelkezésre állíó erőforrások típusát és számát. Ez az új megközelítés először az AMD RDNA3 grafikus processzorhoz lesz elérhető, amely az év folyamán jelenik meg a következő generációs CDNA Instinct gyorsítókkal együtt.
- Intel DG2/Alchemist PCI ID-k hozzáadása.
- Intel Raptor Lake P grafikus támogatás, a meglévő kódútvonalakat kiegészítve.
- A compute engine ABI mostantól a DG2/Alchemist hardverek számára is elérhető.
- A DG2/Alchemist GPU-k energiafogyasztási furcsaságának javítása, amely remélhetőleg biztosítja a PCIe Active-State Power Management (ASPM) sikeres engedélyezését.
- ASpeed AST illesztőprogram-támogatás DisplayPort-hoz.
- Rockchip VOP2 támogatás.
- Egy új belépő szintű RDNA2 GPU, a „Beige Goby” változat támogatása.
- MediaTek Vcodec támogatás a stateless VP8 és VP9 kodekekhez.
- Az Intel Trust Domain Extensions (TDX) összeolvasztották a már meglévő régi kóddal.
- Az XSAVEC támogatása VM vendégként való futtatáskor.
- A Microsoft jelentősen csökkenteni tudta a Hyper-V vendégindítási idejét a sok GPU-val rendelkező nagy Azure VM-ek esetében.
- A Linux EFO támogatása a VM-titkokhoz (secret) való hozzáféréshez a bizalmas számítástechnikai (CoCo) hipervizorok, például az AMD SEV esetében.
- KVM és Xen frissítések.
- Egy új virtuális m68k gép cél virtualizációs használatra, amely a Google Goldfish-en alapul, és sokkal jobb, mint a meglévő Motorola 68000 emulációs lehetőségek.Számos figyelemre méltó Btrfs fájlrendszer-fejlesztés, a 4K-nál nagyobb PAGE_SIZE értékű aloldalak támogatásától kezdve a Btrfs natív RAID 5/6 módokon át.
- Apple M1 NVMe vezérlő támogatása.
- Sok új kód az XFS fájlrendszerhez.
- FAT16/FAT32 fájlok létrehozásának idejének jelentése a statx rendszerhíváson keresztül.
- Az NTFS3 kernel-illesztőprogram javításait megérkezett, hogy végre megoldódjon néhány karbantartási problémát. Ez az az NTFS kernel-illesztőprogram, amelyet a Paragon Software tavaly adott hozzá a kernelhez.
- Különböző F2FS javítások és rutin frissítések az EROFS és EXT4 számára.
- NFSv3 udvarias kiszolgáló (Courteous Server) támogatása.
- eMMC támogatás a TRIM használatához a szektorok törléséhez.
- Az IDMAPPED rétegek támogatása az OverlayFS-szel.
- Nagy teljesítményjavítás az exFAT számára.
- Számtalan IO_uring javítás.
- Az Apple eFuses illesztőprogramot összevonták az Apple M1 SoC-kre programozott eFuses-ek olvasására, a kalibrációs adatok tárolására.
- Folytatódott a munka az Intel Habana Labs AI illesztőprogramján.
- Támogatás a firmware frissítések sysfs-en keresztüli kezdeményezéséhez az Intel FPGA PCIe kártyák és más lehetséges felhasználási esetek számára.
- Támogatás a csatlakoztatott eszköz fizikai helyének jelentésére, amennyiben az ACPI-n keresztül láthatóvá válik. Ez segíthet megjegyezni, hogy egy csatlakoztatott komponens hol van a szerverhez vagy a rendszerhez képest, több port és hely stb. esetén.
- A Raspberry Pi Sense HAT joystick vezérlő támogatása.
- Chrome OS EC illesztőprogram-támogatás a Framework Laptophoz.
- A Compute Express Link (CXL) támogatás folyamatos engedélyezése a következő generációs szerverek számára.
- A Lenovo ThinkPad Trackpoint II billentyűzet jobb támogatása.
- A Keychron C-Series/K-Series billentyűzetek megfelelő kezelése.
- Wacom-illesztőprogram-fejlesztések és egyéb HID-eszköz fejlesztések.
- Az Intel AVS audió vezérlője a régi Skylake / Kabylake / Apollo Lake / Amber Lake korszak audió vezérlő kódjának átírásaként érkezett a kernelbe.
- Folyamatos hardverfelügyeleti fejlesztések az ASUS alaplapi eszközökhöz és kiegészítések az Aquacomputer eszközökhöz.
Linux kernel 5.18 újdonságok
- Az indirekt elágazáskövetés támogatása Intel CPU-kon
Az indirekt elágazáskövetés az Intel CPU-kban található olyan funkció, amely a biztonságot próbálja javítani azáltal, hogy kikényszeríti, hogy a közvetett hívásokkal hívott függvények egy adott ENDBR utasítással kezdődjenek. Az utasítás önmagában semmit sem csinál, de ha a hívott kódból hiányzik, a CPU megtagadja a kód futtatását. A fordító beilleszti a szükséges utasításokat, ahol szükséges, hogy ez megtörténjen. Ez megnehezíti, hogy egy exploit (és a tulajdonosi fejlesztésű modulok) meghívjanak valami véletlenszerű függvényt. A Tiger Lake CPU-kkal és újabbakkal a jobb biztonság érdekében- Indirect branch tracking for Intel CPUs cikk az LWN webhelyen
- C11-es C szabvány használata a C89 helyett
A kernel-projekt az általános gyorsasága ellenére számos régi eszközre támaszkodik. Míg a kritikusok előszeretettel foglalkoznak azzal, hogy a közösség széles körben használja az e-maileket, egy talán még jelentősebb anakronizmus a C nyelv 1989-es verziójának használata a kernel kódjához - egy olyan szabvány, amelyet még a kernel projekt kezdete előtt, több mint 30 évvel ezelőtt foglaltak rendszerbe. Úgy tűnik, hogy ennek a régóta fennálló gyakorlatnak már az 5.18-as kernel megjelenésével vége szakadt, így a C nyelv 2011-es verziójára történő átáláással, amit már modern C nelvnek tekintenek a fejlesztők.
Moving the kernel to modern C cikk az LWN webhelyen -
A Linux már rendelkezik egy olyan módszerrel, amely lehetővé teszi a felhasználói tér folyamatainak nyomon követését a kernel nyomonkövetési eszközeivel (uprobes). Ez a kiadás egy új ABI-t ad hozzá, amely lehetővé teszi a folyamatok számára, hogy a kernel nyomkövetési szintű eseményektől elszigetelt nyomkövetési eseményeket hozzanak létre és írjanak azokba. Ez lehetővé teszi a felhasználói módú adatokból történő nyomkövetés gyorsabb útját, valamint megnyitja a menedzselt kódot a nyomkövetési eseményekben való részvételre, ahol a programcsonkok (stub) helyei dinamikusak. A folyamatok nem álladóan, gyakran csak akkor akarnak nyomkövetést végezni, amikor az hasznos. Egy folyamat regisztrálhat egy eseményt, amely leírja az esemény formátumát a kernel számára. A kernel létrehozza az eseményt. A folyamat ezután egy leképezett tracefs fájlból egy bájtot fog kapni egy oldaltérképben, amelyet a későbbiekben ellenőrizhet. Egy privilegizált feladat engedélyezheti az nyomkövetési eseményt, ami a leképezett bájtot igazra változtatja. A folyamat ezután elkezdheti írni az eseményt a nyomkövetési pufferbe.
-
Jobb folyamatütemezési teljesítmény AMD Zen rendszereken
Egyes CPU-k, mint például az AMD Zen, csomópontonként több Last Level Cache-t tartalmaznak helyi memóriacsatornákkal, és a rendszer tervezett kiegyensúlyozottlansága miatt sokkal nehezebb egyes munkaterhelések optimális futását beállítani, mint olyan hardvereken, amelyek csomópontonként 1 LLC-vel rendelkeznek. Ez a kiadás úgy állítja be az egyensúlyt a több LLC-vel rendelkező gépeken, hogy az egyensúlytalanságot egészen addig a pontig engedi, ahol az LLC-k használata egyensúlyi állapotba kerül a csomópontok között, ami jelentősen javítja a teljesítményt egyes munkaterhelésekben. -
fprobe, több callback-függvény használata egyetlen próbakezelővel
A Linux már rendelkezik a függvényhívás calback-kezelő üzemmóddal. Ez a kiadás tartalmaz egy újat, az fprobe-t, amely az ftrace-re épül. Azért létezik ez az új függvénykezelő API, mert nem használja az ftrace teljes funkcióit, csak lehetőséget biztosít arra, hogy a függvények belépésekor és kilépésekor visszahívásokat (callback) csatoljunk. A kprobes és a kretprobes-okkal ellentétben az fprobe gyorsabb megoldást nyújt több függvény használatához egyetlen kezelővel megoldással. - Fejlécek átszervezése a gyorsabb fordítási idő érdekében a feladatütemezőben elvégzett feladatok kerültek beolvasztásra.
-
Btrfs: tömörített I/O, csatolási pontokon átívelő reflink és deduplikáció és teljesítményjavítások
A Btrfs fájlrendszer támogatja az azonnali tömörítést. A küldés/fogadás (send/receive) használatakor a küldő oldal kitömöríti az adatokat, a fogadó oldal pedig újratömöríti azokat, mielőtt kiírná azokat. Ez a kiadás lehetővé teszi, hogy a felhasználói terület eszközei elkerüljék az extra kitömörítést/betömörítést azáltal, hogy a küldés/fogadás közvetlenül olvashatja és írhatja a tömörített adatblokkokat. Ez a kiadás emellett támogatja a csatolási pontokon átívelő reflink és deduplikáció támogatást, és számos jelentős teljesítményjavítást is tartalmaz, különösen az fsync-alapú munkaterhelések esetében. Van néhány előkészület is a jövőben kiadásra kerülő extent tree v2 változásokra is. - Szigorúbb memcpy() fordítási idejű határérték-ellenőrzés: Strict memcpy() bounds checking for the kernel cikk az LWN webhelyen
- Lehetővé teszi az összes CPU backtrace gyűjtését egy kernelpánik esemény során, valamint a "panic_print" engedélyezését egy kdump eseményben.
- A Reiserfs viszonylag régi fájlrendszer, és a fejlesztése már leállt néhány évvel ezelőtt. A Linux disztribúciók eltávolodtak tőle és más fájlrendszerek felé fordultak, mint például a btrfs, xfs vagy ext4. A karbantartás csökkentése érdekében ReiserFS eltávolítását 2025-re ütemezik az fejlesztők.
- A kriptográfiai algoritmusokat, amelyek az entrópikus adatokat biztonságos véletlenszámokká alakítják át, modernizálták.
- A NUMA-kiegyenlítés körüli ütemezőfrissítések, amelyek tovább javthatják különösen az AMD EPYC szerverek teljesítményét.
- Az Intel Hardware Feedback Interface támogatása mostantól az Intel új "HFI" vezérlőjével egyesül az Intel hibrid processzorai számára fontos funkcióhoz.
- Az Intel Software Defined Silicon beolvasztva a vitatott Intel CPU funkcióhoz, amely az extra szilíciumfunkciók aktiválását teszi lehetővé kriptográfiailag aláírt kulcsok segítségével. Az Intel még nem jelentett be semmilyen terméket, ami SDSi-t használ, de úgy gondolják, hogy úton vannak, bár még nem világos, hogy milyen CPU-k/funkciókat fordíthatnak licencmodellre.
- Az AMD HSMP meghajtó beolvasztása a Host System Management Porthoz, amely további információk elérését teszi lehetővé az AMD szerverplatformokon.
- Javult az AMD beágyazott virtualizációja, valamint a többszörösen beágyazott virtualizáció is.
- Az AMD új hangillesztő-programkódot készít elő a következő generációs platformjaihoz.
- További AMD EDAC előkészületek a Zen 4 számára.
- Az Intel PECI végül Intel Platform Environment Control Interface néven egyesült a szerverplatformok CPU-ja és BMC-i közötti interfészeként.
- Az Intel Idle vezérlő natív támogatást ad az Intel Xeon "Sapphire Rapids" CPU-khoz.
- Az Intel P-State illesztőprogram mostantól a firmware által feltárt alapértelmezett EPP-értéket használja, ahelyett, hogy eddig a z előre belekódolt EPP-alapértelmezettet használná.
- Előkészületek az Intel IPI virtualizációhoz.
- CPUPower támogatás az AMD P-State driverrel való használathoz, amelyet a Linux 5.17-ben vezettek be.
- A KVM mostantól támogatja az AMD virtuális gépeket 511 vCPU-ig, ahol eddig csak 255 vCPU-ig volt lehetséges az AMD rendszereknél.
- RISC-V Sv57 virtuális memória támogatása.
- A Restartable Sequences (RSEQ) interfész támogatása és a RISC-V CPU Idle támogatása.
- A Tesla FSD chip támogatását a Samsung-alapú Arm SoC-hez fejlesztették, amelyet a Tesla jármű teljes önvezető számítógépe használ.
- A Razperry Pi Zero 2 W-t már támogatja a fővonalbeli Linux kernel.
- Az Andes NDS32 CPU architektúra kódjának eltávolítása, mivel a kódot már nem tartják fenn a különböző IoT és digitális jelvezérlő alkalmazásokban használt 32 bites AndesCore architektúrához.
- Különböző ARM64 architektúra frissítések.
- Az AMDGPU FreeSync videomódja alapértelmezés szerint engedélyezve van, szemben a korábbi rendszermagokkal, amelyeknél a FreeSync videomód engedélyezéséhez az AMDGPU modul opcióra volt szükség.
- Az AMD előkészítette a kódot a jövőbeni/jövőbeli GPU-k blokkonkénti engedélyezéséhez, amely lehetővé teszi a következő AMD GPU-k tulajdonságainak automatikus észlelését, a lényegi részletek kiszvárogtatása nélkül.
- CRIU támogatás bevezetése az AMDKFD vezérlőhöz az ellenőrzőpont/visszaállítási képességek ROCm compute munkaterhelésekhez.
- Intel DG2-G12 alplatform támogatás, a már bejelentett új DG2/Alchemist G10 és G11 GPU-kmellett. Ezen kívül még sok más DG2/Alchemist vezérlővel kapcsolatos fejlesztés is érkezett.
- Intel Alder Lake N grafikus támogatás.
- Gyorsabb FBDEV (Framebuffer) műveletek és több FBDEV illesztőprogram javítás.
- ASpeed AST2600 támogatás és egyéb kisebb DRM illesztőprogram módosítások.
- ASUS alaplapok érzékelőinek jobb támogatása.
- Az NVIDIA Tegra videodekódoló vezérlőjét stabilnak minősítették a média alrendszerben.
- Új bemeneti vezérlők a Mediatek MT6779 billentyűzethez és az Imagis érintőképernyőkhöz.
- Az ACPI platformprofil-támogatás mostantól megfelelően működik az AMD-alapú ThinkPadek esetében.
- További x86-os Android táblagép-illesztőprogram-megoldások.
- Folyamatos fejlesztések az Apple billentyűzetek támogatásához.
- HID-illesztőprogram a különösSigmaMicro IC-kkel ellátott billentyűzetekhez.
- A Razer HID-illesztőprogram a Razer billentyűzetekhez/eszközökhöz, amelyek nem teljesen HID-kompatibilisek.
- Sok hálózati eszköztámogatás frissítés a már megszokott módon.
- Néhány HP Omen notebook hőszabályzójának javítása.
- Intel Alder Lake "PS" audió támogatás.
- Az EXT4 gyors commit funkciójának gyorsabb és skálázhatóbb lett.
- Két fontos változás az exFAT-ban az befejező pontok engedélyezése az elérési utakban és a "VolumeDirty" törlésének megszüntetése, mivel ez fontos a tárolóeszköz élettartamának mesterséges lerövidülésének elkerülése érdekében.
- További fejlesztések az XFS-hez.
- NFSD támogatás az NFSv4 születési idő fájlattribútumához a fájlok létrehozásának idejére.
- Az F2FS teljesítményének javítása.
- Új IO_uring funkciók és gyorsítások.
- Számos blokk- és NVMe-optimalizálás, beleértve a hatékonyabb I/O-t és alacsonyabb terhelést.
- Intel Raptor Lake hangtámogatás.
- AVX gyorsítás az SM3 kripto útvonalhoz, valamint különböző ARM optimalizációk a kripto alrendszer más részein.
- A DAMON révén elérhetőa a "DAMOS" sysfs konfigurációvezérlő felület.
Linux kernel 5.17 újdonságok
Linux kernel 5.16 újdonságok
- Új futex_waitv() rendszerhívás a jobb játékteljesítmény érdekében.
A FUTEX2 nagy előrelépés a Linuxon futó windows-os játékok számára, hogy jobban megfeleljen a Windows kernel funkcionalitásának. A Proton / Wine frissítései szükségesek ahhoz, hogy ezt a rendszerhívást és annak lehetséges teljesítményelőnyeit ki lehessen használni. Cikk: Short subjects: Realtime, Futexes, and ntfs3, Dokumentáció: Documentation/userspace-api/futex2.rst - Fájlrendszer-állapotjelentés a fanotify segítségével
Ez a kiadás egy új FAN_FS_ERROR fanotify eseménytípussal bővül a fájlrendszer egészére kiterjedő hibajelentésekhez. Ezt a fájlrendszer állapotfigyelő démonok hivatottak használni, amelyek figyelik ezeket az eseményeket, és lépéseket tesznek (értesítik a rendszergazdát, elindítják a helyreállítást), amikor egy fájlrendszer-problémát észlelnek. Csak az első hibát igyekszik jelenteni, amely az utolsó értesítés óta történt egy fájlrendszernél, és a további hibákat egyszerűen megszámolja. Ez biztosítja, hogy a legfontosabb információk soha ne vesszenek el. Jelenleg az egyetlen fájlrendszer, amely támogatja ezt az interfészt, az Ext4. Dokumentáció: Documentation/admin-guide/filesystem-monitoring.rst - Memória lapok infrastruktúrája a gyorsabb memóriakezelés érdekében
A rendszer memóriájának kezeléséhez a rendelkezésre álló RAM memóriát kis egységekre, úgynevezett lapokra osztják. Ezeknek a lapoknak a mérete az architektúrától függően változik, de x86-os rendszereken ez KB nagyságrendű (4 KB). A több tíz GB-os modern rendszerekben egy ilyen kis lapméret hatalmas mennyiségű lapnak felel meg, amelyet nehéz kezelni. A probléma megoldására a Linux kernel kifejlesztette az összetett oldalak koncepcióját, amelyek olyan lapstruktúrák, amelyek egynél több fizikai oldalt tartalmazhatnak. De ezeknek az összetett oldalaknak a működése nem egyértelmű, és hibára érzékeny API-kat tartalmaz, amelyek némi többletterhelést is okoznak az egész kernelben.
Ez a kiadás bevezeti az oldallapok koncepcióját, amelyek olyanok, mint az összetett oldalak, de jobb szemantikával. A lapok használata a rendszermag néhány alapvető részében teljesítményjavulást eredményez a gyakori munkaterhelésekben. Ez a kiadás tartalmazza a lapok alapvető infrastruktúráját, és átalakítja az alapvető memóriakezelő alrendszer és a lap gyorsítótár néhány részét. A jövőbeni kiadások átalakítanak néhány fájlrendszert és bevezetik a többoldalas lapokat. Cikk: Clarifying memory management with page folios, és The folio pull-request pushback - Fürt ütemező támogatás hozzáadása a feladatütemezőhöz
Egyes gépek olyan hardvertopológiával rendelkeznek, amelyben néhány CPU-mag, jellemzően 4 mag, osztozik azonos gyorsítótáron (például: ARM Kunpeng 920, x86 Jacobsville). E speciális topológia ismerete drasztikusan javíthatja a feladatütemezési döntéseket. Ez a kiadás a feladatütemezőt kiegészíti a klasztertipológiák támogatásával, amely nagyobb memória-sávszélességet hozhat és csökkenti a gyorsítótárak közötti versenyhelyzetet. - AMX utasítások támogatása
Ez a kiadás megkapta az Intel Advanced Matrix Extensions (AMX) utasításkészlet támogatást. Ezek a bővítmények hamarosan a szervereken is megjelennek. Az AMX konfigurálható TMM „TILE" regiszterekből és az ezeken működő új CPU utasításokból áll. A TMUL (Tile matrix MULtiply) az első olyan operátor, amely kihasználja az új regiszterek előnyeit, és a jövőben további utasításokkal bővül. - DAMON-alapú proaktív memória-visszanyerés, műveleti sémák és fizikai memóriafelügyelet. Dokumentáció: Documentation/admin-guide/mm/damon/reclaim.rs és Documentation/admin-guide/mm/damon/usage.rs
- Az lemezre írási torlódások javítása
- Amikor egy folyamat sok adatot ír, és a lemez nem tud lépést tartani (azaz „túlterhelt"-té válik), a folyamatnak nem szabad megengedni, hogy további írási kéréseket intézzen, amíg a jelenlegi írási kérések be nem fejeződnek. A zsúfoltság jelzésére használt mechanizmusokat egy új megközelítéssel váltják fel. Cikk: Replacing congestion_wait()
- DisplayPort 2.0 támogatása az AMDGPU-illesztőprogramot használó GPU-khoz. Már a DisplayPort 2.0 támogatással rendelkező következő generációs GPU-k előtt a kernel része lett.
- Az AMDGPU USB4-be történő kijelző adatkapcsolat beágyazása a Rembrandt, azaz a Yellow Carp kódnevű APU megjelenésének előkészítéseként.
- Az újabb AMD GPU-k új kódútat használják az eszközszámozáshoz.
- Az AMD GPU-k teljesítményének jelentő javulása, a mérések szerint.
- AZ AMD egységekkel szerelt laptopban, másodlagos GPU-ként használt AMD GPU-k DRI_PRIME teljesítmény növekedése, a mérések szerint.
- VirtIO Context Types támogatás: több felhasználási környezet támogatása a VirtIO virtuális grafikus vezérlővel. A kontextustípusok a virtio-gpu 3D részét bővíthetővé teszik, megnyitva az utat az új kialakítások és API-k előtt.
- A Nintendo Switch kontroller-illesztőprogramjai, a Switch Pro és a Joy-Cons kontrollerekhez, végre a kernel részévé váltak.
- Jobb támogatás a Sony PlayStation 5 kontrollerhez.
- Jobb támogatás a HP Omen laptopokhoz.
- Mostantól támogatott az Intel Gen12 alapú grafikus eszközök (Xe).
- Az Intel Alder Lake S grafikus alrendszer támogatása most már stabilnak tekinthető
- Az intel DG2/Alchemist grafikus vezérlőhöz is van kezdeti támogatás már.
- Az AMD EPYC CPU-k mostantól titkosított Secure Encrypted Virtualization SEV/SEV-ES azonos gépen belüli élő migrációt a KVM esetében.
- A RISC-V alapértelmezett rendszermag-összeállítása mostantól lehetővé teszi a nyílt forráskódú NVIDIA-illesztőprogram használatát.
- A KVM RISC-V hypervisor támogatása a jövőbeni RISC-V processzorok számára, amelyek rendelkeznek az adott hypervisor kiterjesztés támogatásával.
- Raspberry Pi Compute Module 4 támogatás a kernelben.
- A MIPS Netlogic SoC-k eltávolítása.
- Snapdragon 690 és más új ARM hardverek támogatása, mint például a Rockchip RK3566 és RK3688.
- Hang támogatás a Yellow Carp és a Van Gogh APU audio társprocesszor működéséhez.
- Az Apple Magic billentyűzet 2021-es verziójának jobb támogatása.
- Új Realtek 802.11ax illesztőprogram, jobb hardvertámogatás.
- Javul a Microsoft Surface Pro 8, Surface Laptop Studio és a Surface Go 3 támogatása.
- A Xiaomi Mi vezeték nélküli egér oldalsó gombjainak mostantól rendeltetésszerűen kell működniük.
- A Playstation 5 kontrollereinek DualSense LED-jei most már működni fognak (a Linux kernel 5.12 verzió óta illesztőprogrammal támogatott).
- A Wacom legújabb Intuos rajztáblái is támogatottá váltak.
- A Nitrokey FIDO U2F szintén javított változatot, azonnali működést kapnak.
- Egy csomó más fájlrendszer frissítés, kernel finomítások, illesztőprogram kiegészítések és hálózati fejlesztések is szerepelnek az újdonságok listáján.
Linux kernel 5.15 újdonságok
- Az új NTFS, az eredetileg a Paragon Software által fejlesztett kód, „NTFS3” fájlrendszer-illesztőprogram beolvasztásra került.
- A KSMBD egy olyan kernelen belüli SMB fájlkiszolgálónak lett beolvasztva, amelynek célja, hogy nagy teljesítményű legyen, támogassa az RDMA és más, a kernel-térben könnyebben megvalósítható műveletek körüli fejlett funkciókat, és pehelysúlyúbb legyen, mint a Samba.
- Sok új RDNA2 PCI azonosító, a AMD Radeon RDNA2 grafikus kártya frissítéséhez.
- Az Intel Xe HP és a DG2/Alchemist grafikus hardverek kezdeti támogatása, bár ennek fejlesztése még folyamatban van.
- Az Intel Alder Lake körüli folyamatos fejlesztés, különböző PCI ID-k hozzáadásával és egyéb engedélyezési munkálatokkal.
- Az AMD Zen 3 APU hőmérséklet-felügyelet beolvasztása, és egy kicsit előremutatóbb a Yellow Carp / Rembrandt APU hőmérséklet-felügyelet is már jelen van a k10tempben modulban.
- Az Apple M1 IOMMU vezérlője is hozzá lett adva a többi folyamatban lévő munka mellett, ami az Apple Silicon fővonalbeli támogatásának Linux kernellel való felhozatala körül zajlik. A Linux 5.16-hoz további fejlesztésekre számíthatunk.
- ASUS ACPI platformprofil támogatás, hogy az újabb ASUS laptopokon működjön a teljesítmény/termikus beállító gomb.
- Az AMD Van Gogh APU audió vezérlője beolvasztva, amelyből többek között, a Steam Deck hardver is működésére bírható.
- A Realtek RTL8188EU WiFi illesztőprogramot beolvasztották a korábbi Realtek WiFi illesztőprogram helyettesítésére.
- A PREEMPT_RT zárolási kód hozzáadásával, a Linux kernelhez korábban még hiányzó valós idejű javítások nagy része beolvasztásra került. Nagyszerű látni, hogy a mainline kernel szinte már tartalmazza az összes RT-funkciót!
- Az Amazon DAMON-ját beolvasztották, mint az adathozzáférés felügyeleti keretrendszert, amelyet proaktív memória-visszanyerés és egyéb célok érdekében folytatnak.
- Az új „process_mrelease” syscall a leálló folyamatok memóriájának gyorsabb felszabadítására.
- Opciónális L1 adatcache flushing kontextusváltáskor a biztonság érdekében. Szigorúan opcionális, hogy a a rendszergazdák dönthetnek, a teljesítményre gyakorolt hatásokra negatív hatása miatt.
- Hardening, amely lehetővé teszi a hívó által használt regiszterek törlését a kernelfüggvényből való visszatérés előtt, a GCC 11+ fordítóoldali támogatására építve.
Források:
- A December elején megjelent Linux kernel 6.1 újdonságai. A Linux 6.1 funkciólistájában részletesebb áttekintést kaphat a kernel ezen verziójának összes változásáról.
- Megjelent a Linux kernel 6.0-s verziója. A Linux 6.0 funkciólistájában részletesebb áttekintést kaphat a kernel ezen verziójának összes változásáról.
- Megjelent a Linux kernel 5.19 verziója. A Linux 5.19 funkciólistájában részletesebb áttekintést kaphat a kernel ezen verziójának összes változásáról.
- Megjelent a Linux kernel 5.18 verziója. A Linux 5.18 funkciólistájában részletesebb áttekintést kaphat a kernel ezen verziójának összes változásáról.
- Megjelent a Linux kernel 5.16 verziója. A Linux 5.16 funkciólistájában részletesebb áttekintést kaphat a kernel ezen verziójának összes változásáról.
- A Linux 5.15 funkciólistájában részletesebb áttekintést kaphat a kernel ezen verziójának összes változásáról.