A Linux kernel 5.12 kiadása

Két hónap fejlesztés után Linus Torvalds bemutatta a Linux kernel 5.12 kiadását. A legfigyelemreméltóbb változások közé tartozik a zónázott blokkeszközök támogatása a Btrfs-ben, a felhasználói azonosítók mappolásának lehetősége a fájlrendszer számára, az elavult ARM architektúrák eltávolítása, a „türelmetlen” írási mód az NFS-ben, a LOOKUP_CACHED mechanizmus a fájlútvonalak gyorsítótárazásból való meghatározásához, az atomikus utasítások támogatása a BPF-ben, a KFENCE hibakereső rendszer a memória kezelésében bekövetkező hibák azonosítására, a villamosításon belüli NAPI polling üzemmód, az ACRN hipervizor, a preempt-modellek futás közbeni módosításának lehetősége a feladatütemezőben, és az LTO-optimalizációk támogatása a Clangban történő fordítás során.

Az új verzióban 14170 (a korábbi kiadásban 15480) javítás érkezett 1946 (1991) fejlesztőtől, a patch mérete 38 MB (a változások 12102 (12090) fájlt érintettek, 538599 (868025) kódsor került hozzáadásra, 333377 (261456) kódsor került törlésre). A 5.12-es verzióban bemutatott változások körülbelül 43%-a eszközmeghajtókkal kapcsolatos, körülbelül 17% a hardverarchitektúrákhoz specifikus kód frissítésével, 12% a hálózati veremhez, 5% a fájlrendszerekhez és 4% a kernel belső alrendszereihez kapcsolódik.

Főbb újítások:

  • Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
    • Kialakították a felhasználói azonosítók mappolásának lehetőségét a csatolt fájlrendszerek számára (lehetőség van a másik felhasználó fájljait a csatolt másik partíción a jelenlegi rendszerben egy másik felhasználóhoz rendelni). A mappolás támogatott a FAT, ext4 és XFS fájlrendszerek esetében. Az így javasolt funkcionalitás egyszerűsíti a fájlok közös használatát különböző felhasználók és különböző számítógépek között, beleértve a mappolást is, amely a systemd-homed hordozható otthoni mappák mechanizmusában fog alkalmazásra kerülni, lehetővé téve a felhasználók számára, hogy otthoni könyvtáraikat külső tárolókra helyezzék és különböző számítógépeken használják, ahol az azonosítók nem egyeznek. Egy másik hasznos alkalmazás a fájlok külső hostból való közös hozzáférésének szervezése, anélkül, hogy ténylegesen módosítani kellene a fájlok biztosaival kapcsolatos adatokat a fájlrendszerben.
    • A mag beléptek a LOOKUP_CACHED javítások, amelyek lehetővé teszik a felhasználói térből történő fájlútvonal-meghatározási műveletek végrehajtását zárolás nélkül, kizárólag a gyorsítótárazott adatok alapján. A LOOKUP_CACHED mód az openat2() hívásnál aktiválódik a RESOLVE_CACHED zászló átadásával, amelynél az adatok csak a gyorsítótárból kerülnek kiadásra, és ha az útvonal-meghatározáshoz tárolót kell érinteni, EAGAIN hibát ad vissza.
    • A Btrfs fájlrendszerben kezdeti támogatás került bevezetésre a zónált blokkészülékekhez (melyek merevlemezek vagy NVMe SSD-k, ahol a tárolóterület zónákra van felosztva, alkotva blokk vagy szektor csoportokat, amelyekhez csak sorozatos adatokat lehet hozzáadni, frissítve az egész blokk csoportot). Csak olvasásra üzemmódban támogatottak a kisebb méretű, metaadatokat és adatokat tartalmazó blokkok (subpage).
    • Az F2FS fájlrendszerben lehetőség nyílt a tömörítési algoritmus és szint kiválasztására. A LZ4 algoritmushoz magas tömörítési szintű támogatás került bevezetésre. A checkpoint_merge szerelési opciót is megvalósították.
    • Megvalósításra került egy új ioctl parancs, a FS_IOC_READ_VERITY_METADATA, amely lehetővé teszi a fs-verity által védett fájlok metaadatainak olvasását.
    • NFS kliensben megvalósításra került a "türelmetlen" írásmód (writes=eager), amelynek bekapcsolásakor az írási műveletek azonnal a szerverre kerülnek, megkerülve az oldalgyorsítótárat. Ez a mód csökkenti a memóriafogyasztást, azonnali tájékoztatást nyújt a fájlrendszer szabad helyének elfogyásáról, és bizonyos esetekben teljesítménynövekedést is lehetővé tesz.
    • A CIFS (SMB) új szerelési opciókkal gazdagodott: acregmax a fájlok gyorsítótárazásának kezelésére, valamint acdirmax a könyvtármetaadatok gyorsítótárazásának kezelésére.
    • Az XFS-ben aktiválva lett a többszálú kvótakontroll mód, gyorsították az fsync végrehajtását, és felkészítették a growfs kódot a fájlrendszer méretének csökkentésére.
  • Memória és rendszerszolgáltatások
    • Belevéve a DTMP (Dynamic Thermal Power Management) alrendszert, amely lehetővé teszi a különböző eszközök energiafogyasztásának dinamikus szabályozását a megadott hőmérsékleti korlátok figyelembevételével.
    • Megvalósult a Clang fordítóval való kernel-összeállítás lehetősége, beleértve a linkelési időszakban végzett optimalizálásokat (LTO, Link Time Optimization). Az LTO optimalizálások figyelembe veszik az összes, az összeállítási folyamatban részt vevő fájl állapotát, míg a hagyományos optimalizálási módok minden fájlt külön-külön optimalizálnak, figyelmen kívül hagyva a más fájlokban meghatározott függvények hívási körülményeit. Például LTO esetén más fájlokból származó függvények esetében lehetséges az inline kibővítés, a végrehajtható fájlba nem kerül bele a nem használt kód, és a típusellenőrzés, valamint a projekt szintű általános optimalizáció is megvalósul. Az LTO támogatása jelenleg az x86 és ARM64 architektúrákra korlátozódik.
    • Lehetőséget kaptunk a kifogásolási módok (PREEMPT) választására a feladatütemezőben a rendszer indítási szakaszában (preempt=none/voluntary/full) vagy működés közben a debugfs-en (debug/sched_debug), amennyiben a kernel összeállítása során a PREEMPT_DYNAMIC beállítást megadtuk. Korábban a kifogásolás módját csak az összeállítás paraméterei szintjén lehetett megadni. A változtatás lehetővé teszi a disztribúciók számára, hogy olyan kerneleket szállítsanak, amelyekben a PREEMPT mód be van kapcsolva, minimális késleltetést biztosítva a munkaasztalok számára, cserébe egy jelentéktelen átvitel csökkenésért, és szükség esetén visszatérhetnek a PREEMPT_VOLUNTARY (átmeneti mód munkaasztalok számára) vagy PREEMPT_NONE (maximum átvitel biztosítása) módokra. szerverek).
    • A BPF alrendszerhez hozzáadódott az atomikus műveletek, mint a BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG és BPF_CMPXCHG támogatása.
    • A BPF programok számára lehetőség nyílt arra, hogy hozzáférjenek az adatokhoz a veremben, változó eltolással rendelkező mutatók segítségével. Például, míg korábban a verembeli tömbhöz csak állandó index használatával lehetett hozzáférni, mostantól változó index is használható. A hozzáférést csak a meglévő határokon belül ellenőrzi a BPF ellenőrző. Ez a lehetőség csak kedvezményezett programok számára elérhető, mivel aggályok merülnek fel a spekulatív kódvégrehajtásból adódó sebezhetőségek kihasználásával kapcsolatban.
    • Lehetőség nyílt BPF programok csatolására 'meztelen' nyomkövetési pontokhoz (bare tracepoints), amelyek nem kapcsolódnak a felhasználói térben látható nyomkövetési eseményekhez (e nyomkövetési pontokhoz nem garantált az ABI megőrzése).
    • Megvalósult a CXL 2.0 (Compute Express Link) busz támogatása, amelyet a CPU és a memóriaeszközök közötti nagy sebességű interakció megszervezésére alkalmaznak (lehetővé teszi külső memóriaeszközök használatát RAM vagy tartós memória részeként, mintha ez a memória közvetlenül a CPU-n keresztül csatlakozna).
    • Hozzáadva az nvmem illesztőprogram a firmware által fenntartott memóriaterületek adatainak megszerzésére, amelyeket közvetlenül nem érhet el a Linux (például EEPROM memória, amely fizikailag csak a firmware számára hozzáférhető, vagy adatok, amelyek csak a rendszerindítás korai szakaszában érhetők el).
    • Eltávolítva az 'oprofile' profilozó rendszer támogatása, amely nem terjedt el megfelelően, és felváltotta a modernebb perf mechanizmus.
    • Az aszinkron I/O io_uring interfészében integrálták a memóriahasználatot ellenőrző cgroupokat.
    • A RISC-V architektúrához megvalósult a NUMA rendszerek támogatása, valamint a kprobes és uprobes mechanizmusok.
    • Hozzáadva a kcmp() rendszerhívás használatának lehetősége, függetlenül a folyamatállapotok (checkpoint/restores) funkcióitól.
    • Eltávolítva az EXPORT_UNUSED_SYMBOL() és EXPORT_SYMBOL_GPL_FUTURE() makrókat, amelyek évek óta nem használták a gyakorlatban.
  • Virtualizáció és biztonság
    • Hozzáadva a KFence (Kernel Electric Fence) védelmi mechanizmus, amely a memóriahasználati hibák, például a pufferhatárok túllépése és a memóriaszabadítás utáni hozzáférés észlelésére szolgál. A KASAN hibakereső mechanizmussal ellentétben a KFence alrendszer magas sebességet és alacsony költségeket kínál, amely lehetővé teszi a memóriaproblémák észlelését, amelyek csak működő rendszerekben vagy hosszú működés során lépnek fel.
    • Hozzáadva az ACRN hypervisor támogatása, amelyet a valós idejű feladatok elvégzésére való alkalmasságra és a kritikus rendszerekben való használatra terveztek. Az ACRN minimális költségeket biztosít, garantálja az alacsony késleltetést (low latency) és megfelelő reakcióidőt a hardverrel való interakció során. Támogatja a CPU, I/O, hálózati alrendszer, grafikai és hangműveletek virtuális erőforrásait. Az ACRN használható több elkülönített rendszer elindítására. virtuális gépekhez elektronikus vezérlő egységekben, műszerfalakon, autóinformációs rendszerekben, fogyasztói IoT-eszközökben és egyéb beágyazott technológiákban. Az ACRN kétféle vendég rendszert támogat — a privilegizált Service VM-eket, amelyeket a rendszer erőforrásainak (CPU, memória, bemenet/kimenet stb.) kezelésére használnak, és a felhasználói User VM-eket, amelyekben Linux disztribúciók, Android és Windows futtatható.
    • Az IMA (Integrity Measurement Architecture) alrendszerében, amely fenntartja a fájlok és a hozzájuk kapcsolódó metainformációk integritásának ellenőrzéséhez szükséges hash-alapokat, lehetőség van az operációs rendszer kernelének integritásának ellenőrzésére is, például a SELinux szabályainak változásainak nyomon követésére.
    • A KVM hipervizorhoz hozzáadták a Xen hipervívós hívások elfogásának és azok átkonvertálásának lehetőségét egy felhasználói térben működő emulátorba.
    • Lehetővé vált a Linux használata mint gyökér környezet a Hyper-V hipervizor számára. A gyökér környezet közvetlen hozzáféréssel rendelkezik a hardverhez és a vendég rendszerek indítására szolgál (hasonlóan a Dom0-hoz a Xen esetében). Eddig a Hyper-V (Microsoft Hypervisor) csak a vendég környezetekben támogatta a Linuxot, de maga a hipervizor Windows alapú környezetből volt kezelve.
    • Inline titkosítás támogatása került bevezetésre az eMMC kártyák számára, amely lehetővé teszi a tároló vezérlőjébe beépített titkosítási mechanizmusok kihasználását, amelyek átlátható titkosítást és visszafejtést végeznek a bemenet/kimenet számára.
    • A kriptográfiai alrendszerből eltávolították a kernelben nem használt RIPE-MD 128/256/320 és Tiger 128/160/192 hash-ek, valamint a Salsa20 stream titkosító támogatását; helyette a ChaCha20 algoritmus került bevezetésre. A blake2 algoritmust frissítették a blake2s megvalósítására.
  • Hálózati alrendszer
    • Lehetővé vált a NAPI polling kezelő áthelyezése a hálózati eszközök külön szálába, ami teljesítménynövekedést eredményez egyes terhelési típusok számára. Eddig a polling softirq kontextusában zajlott, és nem volt takarva a feladatmenedzser által, ami megnehezítette az optimalizációt a maximális teljesítmény elérése érdekében. A külön szálban történő végrehajtás lehetővé teszi a polling kezelő nyomon követését a felhasználói térből, a CPU külön magjaihoz való hozzácsatolását, valamint figyelembe vételét a feladatváltások tervezésekor. Az új üzemmód aktiválásához a sysfs-ben javasolt paraméter "/sys/class/net//threaded."
    • Folyamatban van az MPTCP (MultiPath TCP) integrációja a kernelbe, amely a TCP protokoll kiterjesztése, és lehetővé teszi a TCP kapcsolat csomagjainak egyidejű továbbítását különböző hálózati interfészeken, amelyek különböző IP-címekhez kapcsolódnak. Az új verzióban egyes folyamokhoz prioritás rendelésének lehetősége került bevezetésre, amely lehetővé teszi például, hogy tartalék folyamokat állítsunk be, amelyek csak akkor aktiválódnak, amikor a fő folyammal probléma merül fel.
    • Az IGMPv3-ba bekerült az EHT (Explicit Host Tracking) mechanizmus támogatása.
    • A netfilter csomagszűrő mechanizmusában megvalósult a lehetőség, hogy bizonyos táblákhoz kizárólagos ellenőrzés társuljon (például a tűzfalszoftver háttérfolyama zárolhat bizonyos táblákat, megakadályozva ezzel mások beavatkozását).
  • Hardver
    • Tisztításra került a már elavult és támogatás nélkül maradt ARM platformok kódja. Eltávolításra került az efm32, picoxcell, prima2, tango, u300, zx és c6x platformok kódja, valamint az ezekhez kapcsolódó driverek.
    • Az amdgpu driver lehetővé tette a GPU Sienna Cichlid (Navi 22, Radeon RX 6xxx) alapú kártyák túlhajtását (OverDrive). Bevezetésre került az FP16 pixel formátum támogatása a DCE (display controller engine) 8. és 11. generációja számára. A GPU Navy Flounder (Navi 21) és az APU Van Gogh esetében igazgatási lehetőségek kerültek bevezetésre GPU visszaállítására.
    • Az i915 driveren a Intel GPU-khoz bevezetésre került az i915.mitigations paraméter, ami letiltja az elszigetelési és védelmi mechanizmusokat a teljesítmény növelése érdekében. A Tiger Lake-től kezdődően a VRR (Variable Rate Refresh) mechanizmus támogatása aktiválva lett, amely lehetővé teszi a monitor frissítési gyakoriságának adaptív megváltoztatását a zökkenőmentes játékélmény biztosítása érdekében. Megvalósult az Intel Clear Color technológia támogatása a színvisszaadás pontosságának javítása érdekében. DP-HDMI 2.1 támogatás került bevezetésre. Lehetőség nyílt az eDP panelek háttérvilágításának vezérlésére. A LSPCON (Level Shifter and Protocol Converter) támogatással rendelkező Gen9 GPU esetében HDR támogatás is be lett építve.
    • A nouveau driverben bevezetésre került az NVIDIA GA100 architektúrára (Ampere) alapozott GPU kezdeti támogatása.
    • A msm driverben integrálva lett az Adreno 508, 509 és 512 GPU-k támogatása, amelyek a SDM (Snapdragon) 630, 636 és 660 chipekben találhatóak.
    • Támogatás került bevezetésre a Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s és Pioneer DJM-750 hangkártyák számára. Bevezetésre került az Intel Alder Lake PCH-P hangrendszer támogatása. A hangcsatlakozó szoftveres szimulációja is megvalósításra került, amely lehetővé teszi az audio kezelők hibakeresését a felhasználói térben.
    • Nintendo 64 játékkonzolok támogatása hozzáadva, amelyek 1996 és 2003 között készültek (az előző Linux portálási kísérletek a Nintendo 64 számára nem fejeződtek be és Vaporware státuszt kaptak). Az új port létrehozásának motivációja a régi platformhoz, amely már majdnem húsz éve nem készül, az emulatorok fejlesztésének elősegítése és a játékok átportolásának egyszerűsítése.
    • Hozzáadva a Sony PlayStation 5 DualSense játékkontroller meghajtója.
    • ARM platformok és eszközök támogatása megvalósítva: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Támogatás hozzáadva a Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 okostelefonok számára.
    • Hozzáadva a bcm-vk meghajtó a Broadcom VK gyorsítókkal (pl. PCIe Valkyrie és Viper kártyák), amelyeket hang, videó és képfeldolgozási műveletek, valamint titkosítással kapcsolatos feladatok leválasztására lehet használni.
    • Hozzáadva a Lenovo IdeaPad platformtal való támogatás állandó töltés és billentyűzet világítás vezérlésével. Továbbá, ACPI profiltámogatás a ThinkPad platformhoz, amely lehetővé teszi az energiafogyasztási módok irányítását. Hozzáadva a Lenovo ThinkPad X1 Tablet Gen 2 HID alrendszerének meghajtója.
    • Hozzáadva az ov5647 meghajtó Raspberry Pi kameramodul támogatásával.
    • Támogatás hozzáadva a RISC-V SoC FU740 és a HiFive Unleashed kártyákhoz. Emellett egy új meghajtó a Kendryte K210 chiphez is hozzáadva.

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