Vydanie jadra Linux 6.0

Po dvoch mesiacoch vývoja predstavil Linus Torvalds vydanie jadra Linux 6.0. Značná zmena čísla verzie bola vykonaná z estetických dôvodov a predstavuje formálny krok, ktorý uvoľňuje nepohodlie z dôvodu hromadenia veľkého počtu vydaní v sérii (Linus vtipne poznamenal, že dôvod zmeny čísla vetvy je skôr ten, že mu dochádzajú prsty na rukách a nohách na počítanie čísiel verzií). Medzi najvýraznejšie zmeny patrí: podpora asynchrónneho buffered zápisu v XFS, blokový ovládač ublk, optimalizácia plánovača úloh, mechanizmus overovania správnej funkcie jadra, podpora blokového šifrovania ARIA.

Hlavné novinky v jadre 6.0:

  • Diskový subsystém, I/O a súborové systémy
    • Do súborového systému XFS bola pridaná podpora asynchrónneho buffered zápisu s využitím mechanizmu io_uring. Testy výkonu, vykonané pomocou nástrojov fio (1 vlákno, veľkosť bloku 4 kB, 600 sekúnd, sekvenčný zápis), ukazujú nárast počtu operácií vstupu/výstupu za sekundu (IOPS) z 77k na 209k, rýchlosti prenosu dát – z 314 MB/s na 854 MB/s, a pokles latencií z 9600 ns na 120 ns (80-krát).
    • V súborovom systéme Btrfs bola implementovaná druhá verzia protokolu pre príkaz „send“, ktorá implementuje podporu pre ďalšie metadáta, odosielania dát väčšími blokmi (viac ako 64K) a prenos extentov v komprimovanej podobe. Výrazne (až 3-krát) sa zvýšila výkonnosť operácií priameho čítania (direct read) vďaka súčasnému čítaniu až 256 sektorov. Znížili sa konflikty zamykania a urýchlilo sa overovanie metadát znížením rezervovaných metadát pre odložené prvky.
    • Do súborového systému ext4 boli pridané nové ioctl operácie EXT4_IOC_GETFSUUID a EXT4_IC_SETFSUUID na extrakciu alebo nastavenie UUID identifikátora, uloženého v superbloku.
    • V súborovom systéme F2FS bol navrhnutý režim nízkej spotreby pamäte, ktorý optimalizuje prácu na zariadeniach s malým objemom RAM a umožňuje znížiť spotrebu pamäte na úkor zníženia výkonu.
    • Bola pridaná podpora autentifikácie pre disky NVMe.
    • V serveri V NFSv4 bol zavedený limit na počet aktívnych klientov, ktorý sa nastavuje ako 1024 povolených klientov na každý gigabajt operačnej pamäte v systéme.
    • Vo vykonaní CIFS klienta sa zvýšil výkon v režime viackanálového prenosu.
    • Do subsystému sledovania udalostí v FS fanotify bol pridaný nový flag FAN_MARK_IGNORE na ignorovanie špecifických udalostí.
    • V FS Overlayfs, pri montáži na FS s mapovaním identifikátorov používateľov, bola zabezpečená správna podpora POSIX-kompatibilných zoznamov riadenia prístupu.
    • Bol pridaný blokový ovládač ublk, ktorý presúva špecifickú logiku na stranu pozadia v používateľskom priestore a využíva subsystém io_uring.
  • Pamäť a systémové služby
    • Do subsystému DAMON (Data Access MONitor) boli pridané nové funkcie umožňujúce nielen sledovať prístup procesov k operačnej pamäti z používateľského priestoru, ale aj ovplyvňovať správu pamäte. V tejto súvislosti bol navrhnutý nový modul „LRU_SORT“, ktorý zabezpečuje pregrupovanie zoznamov LRU (Least Recently Used) na zvýšenie prioritizácie určitých stránok pamäte.
    • Bola implementovaná možnosť vytvárania nových pamäťových regiónov využívajúcich možnosti zbernice CXL (Compute Express Link), ktorá sa používa na organizáciu vysokorýchlostnej interakcie CPU s pamäťovými zariadeniami. CXL umožňuje pripojiť nové pamäťové regióny poskytované externými pamäťovými zariadeniami a používať ich ako dodatočné zdroje fyzického adresného priestoru na rozšírenie systémovej operačnej pamäte (DDR) alebo trvalej pamäte (PMEM).
    • Boli vyriešené problémy s výkonom systémov na procesoroch AMD Zen spôsobené kódom pridaným pred 20 rokmi pre obídenie hardvérovej chyby v niektorých čipsetoch (pridávala sa dodatočná inštrukcia WAIT, ktorá spomaľovala procesor, aby čipset stihol prejsť do stavu nečinnosti). Zmena viedla k poklesu výkonu pri záťažiach, v ktorých sa často striedajú stavy nečinnosti (idle) a aktivity (busy). Napríklad po odstránení obchádzajúceho manévru sa priemerné výsledky testu tbench zvýšili z 32191 MB/s na 33805 MB/s.
    • V plánovači úloh bol odstránený kód s heuristikou, ktorý zabezpečoval migráciu procesov na najmenej vyťažené CPU s ohľadom na predpokladaný prínos v spotrebe energie. Vývojári dospeli k záveru, že heuristika neprináša dostatočný úžitok a je jednoduchšie presúvať procesy bez dodatočných hodnotení zakaždým, keď takýto presun potenciálne môže viesť k zníženiu spotreby energie (napríklad, keď sa cieľové CPU nachádza na úrovni s nižšou spotrebou energie). Vypnutie heuristiky viedlo k zníženiu spotreby energie pri vykonávaní intenzívnych úloh; napríklad v teste s dekódovaním videa sa spotreba energie znížila o 5,6 %.
    • Bol vykonaný optimalizácia rozdelenia úloh medzi jadrami CPU na veľkých systémoch, čo umožnilo zvýšiť výkon pri niektorých type záťaže.
    • V rozhraní asynchrónneho vstupu/výstupu io_uring bol navrhnutý nový flag IORING_RECV_MULTISHOT, ktorý umožňuje používať režim „multi-shot“ so systémovým volaním recv() na vykonávanie viacerých operácií čítania z jedného sieťového socketu. V io_uring bola tiež implementovaná podpora sieťového prenosu bez medzibuforovania (zero-copy).
    • Bola implementovaná možnosť prekladu programov BPF, pripojených k uprobe, do stavu spánku. Do BPF bol tiež pridaný nový iterátor ksym pre prácu s tabuľkami symbolov jadra.
    • Bol odstránený zastaraný rozhranie „efivars“ v sysfs, určené na prístup k bootovacím premenným UEFI (na prístup k údajom EFI sa teraz všade používa virtuálny FS efivarfs).
    • V utilite perf boli implementované nové hlásenia na analýzu konfliktov zámkov a času, ktorý procesor strávil vykonávaním komponentov jadra.
    • Bola odstránená nastavenie CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, ktorá umožňovala zhromažďovať jadro v režime optimalizácie „-O3“. Uvádza sa, že experimenty s režimami optimalizácie môžu byť vykonávané prostredníctvom predania flagov pri zbere („make KCFLAGS=-O3“), a na pridanie nastavenia do Kconfig je potrebné zabezpečiť opakovateľné profilovanie výkonu, ktoré ukazuje, že používanie v režime „-O3“ rozvinutie cyklov prináša výhodu v porovnaní s úrovňou optimalizácie „-O2".
    • Pridaný debugfs rozhranie na získavanie informácií o fungovaní jednotlivých «memory shrinker» (spracovatelia, ktorí sa spúšťajú pri nedostatku pamäte a balia štruktúry dát jadra na zníženie ich pamäťovej spotreby).
    • Pre architektúry OpenRISC a LoongArch bola implementovaná podpora zbernice PCI.
    • Pre architektúru RISC-V bolo implementované rozšírenie «Zicbom» na správu zariadení s DMA, ktoré nie sú v súlade s cache (non-cache-coherent).
  • Virtualizácia a bezpečnosť
    • Bol pridaný mechanizmus overovania RV (Runtime Verification) na kontrolu správnosti fungovania vo vysoko spoľahlivých systémoch, ktoré zaručujú absenciu porúch. Kontrola sa vykonáva počas behu prostredníctvom pripojenia spracovateľov k sledovacím bodom, ktoré porovnávajú skutočný priebeh vykonávania s vopred určeným referenčným deterministickým modelom automatu, ktorý určuje očakávané správanie systému. Porovnávanie s modelom počas behu sa považuje za ľahší a praktickejší spôsob potvrdenia správnosti vykonávania v kritických systémoch, dopĺňajúci klasické metódy potvrdenia spoľahlivosti. Medzi výhody RV patrí možnosť zabezpečiť prísne overenie bez nutnosti samostatnej implementácie celého systému v modelovacom jazyku, ako aj flexibilné reagovanie na nepredvídané udalosti.
    • Sú integrované komponenty jadra pre správu encláv založených na technológii Intel SGX2 (Software Guard eXtensions), umožňujúcej aplikáciám vykonávať kód v izolovaných šifrovaných oblastiach pamäte, pričom prístup zvyšnej časti systému je obmedzený. Technológia Intel SGX2 je podporovaná v čipoch Intel Ice Lake a Gemini Lake a od Intel SGX1 sa líši pridanými inštrukciami na dynamickú správu pamäte encláv.
    • Pre architektúru x86 bola implementovaná možnosť prenosu vzorky pre generátor pseudonáhodných čísel prostredníctvom nastavení bootloadera.
    • Do LSM modulu SafeSetID bola pridaná funkcia riadenia zmien vykonaných prostredníctvom volania setgroups(). SafeSetID umožňuje systémovým službám bezpečne spravovať používateľov bez zvýšenia privilégií (CAP_SETUID) a bez získania práv používateľa root.
    • Pridaná podpora blokového šifrovania ARIA.
    • V module správy bezpečnosti založenom na BPF bola pridaná možnosť pripojenia spracovateľov k jednotlivým procesom a skupinám procesov (cgroup).
    • Bol pridaný mechanizmus s implementáciou watchdog na určenie zamrznutí hostiteľských systémov na základe monitorovania aktivity vCPU.
  • Sieťový subsystém
    • Do subsystému BPF boli pridané obslužné rutiny na generovanie a overovanie SYN cookies. Takisto bol pridaný súbor funkcií (kfunc) na prístup a zmenu stavu spojení.
    • Do bezdrôtového zásobníka bola pridaná podpora mechanizmu MLO (Multi-Link Operation), definovaného v špecifikácii WiFi 7, ktorý umožňuje zariadeniam súčasne prijímať a odosielať dáta pomocou rôznych frekvenčných rozsahov a kanálov, napríklad na súčasné vytvorenie viacerých komunikačných kanálov medzi prístupovým bodom a klientským zariadením.
    • Zvýšený výkon zabudovanej implementácie protokolu TLS v jadre.
    • Bol pridaný parameter príkazového riadka jadra „hostname=“, ktorý umožňuje nastaviť názov hostiteľa v skorých fázach zavádzania, ešte predtým, ako sa spustia komponenty užívateľského priestoru.
  • Zariadenie
    • V ovládači i915 (Intel) bola zabezpečená podpora diskrétnych grafických kariet Intel Arc (DG2/Alchemist) A750 a A770. Bola navrhnutá počiatočná implementácia podpory GPU Intel Ponte Vecchio (Xe-HPC) a Meteor Lake. Pokračuje sa v práci na podpore platformy Intel Raptor Lake.
    • V ovládači amdgpu pokračuje práca na zabezpečení podpory platforiem AMD RDNA3 (RX 7000) a CDNA (Instinct).
    • V ovládači Nouveau bol prepracovaný kód podpory displejových motorov GPU NVIDIA nv50.
    • Bol pridaný nový DRM ovládač logicvc pre obrazovky LogiCVC.
    • V ovládači v3d (pre GPU Broadcom Video Core) bola implementovaná podpora platforiem Raspberry Pi 4.
    • V ovládači msm bola pridaná podpora GPU Qualcomm Adreno 619.
    • V ovládači Panfrost bola pridaná podpora GPU ARM Mali Valhall.
    • Bol pridaný počiatočný podpora procesorov Qualcomm Snapdragon 8cx Gen3, používaných v notebookoch Lenovo ThinkPad X13s.
    • Boli pridané zvukové ovládače pre platformy AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake a Mediatek MT8186.
    • Bola pridaná podpora akcelerátorov systémov strojového učenia Intel Habana Gaudi 2.
    • Bola pridaná podpora ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Súčasne latinskoamerická Nadácia voľného softvéru vytvorila variant úplne voľného jadra 6.0 — Linux-libre 6.0-gnu, vyčisteného od prvkov firmvéru a ovládačov obsahujúcich neveľké komponenty alebo úseky kódu, ktorých použitie je obmedzené výrobcom. V novej verzii je zakázané používanie blobov v ovládači CS35L41 HD-audio a v ovládači s rozhraním UCSI pre mikrocontrolery STM32G0. Prebehla očista dts-súborov pre čipy Qualcomm a MediaTek. Bolo prepracované zakázanie blobov v ovládači MediaTek MT76. Aktualizovaný kód čistenia blobov v ovládačoch a subsystémoch AMDGPU, Adreno, Tegra VIC, Netronome NFP a Habanalabs Gaudi2. Očista ovládača VXGE, ktorý bol odstránený z jadra, bola ukončená.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster