Vydanie jadra Linux 5.12

Po dvoch mesiacoch vývoja vydal Linus Torvalds jadro. Linux 5.12. Medzi najvýznamnejšie zmeny patria: podpora pre zónové blokové zariadenia v Btrfs, možnosť mapovať ID používateľov na súborové systémy, vyčistenie starších architektúr ARM, režim eager write v NFS, mechanizmus LOOKUP_CACHED na určovanie ciest k súborom z vyrovnávacej pamäte, podpora pre atomické inštrukcie v BPF, ladiaci systém KFENCE na detekciu chýb pri manipulácii s pamäťou, režim dotazovania NAPI v sieťovom zásobníku bežiaci v samostatnom vlákne jadra, hypervízor ACRN, možnosť meniť model preempt za chodu v plánovači úloh a podpora optimalizácií LTO pri zostavovaní v Clang.

Nová verzia obsahuje 14170 (v predchádzajúcom vydaní 15480) opráv od vývojárov z roku 1946 (1991), veľkosť opravy je 38 MB (zmeny ovplyvnili 12102 (12090) súborov, bolo pridaných 538599 (868025) riadkov kódu, 333377 (261456) riadky boli vymazané). Približne 43 % všetkých zmien zavedených v 5.12 sa týka ovládačov zariadení, približne 17 % zmien súvisí s aktualizáciou kódu špecifického pre hardvérové ​​architektúry, 12 % súvisí so sieťovým zásobníkom, 5 % súvisí so súborovými systémami a 4 % súvisia s internými subsystémami jadra.

Hlavné inovácie:

  • Diskový subsystém, I/O a súborové systémy
    • Bola implementovaná schopnosť mapovať ID používateľov pre pripojené súborové systémy (môžete mapovať súbory jedného používateľa na pripojenom cudzom oddiele s iným používateľom v aktuálnom systéme). Mapovanie je podporované pre súborové systémy FAT, ext4 a XFS. Navrhovaná funkcionalita umožňuje zjednodušiť zdieľanie súborov medzi rôznymi používateľmi a na rôznych počítačoch, vrátane mapovania, ktoré sa použije v mechanizme prenosného domáceho adresára systemd-homed, čo používateľom umožní presunúť svoje domovské adresáre na externé médiá a použiť ich na rôznych počítačov, mapovanie ID používateľov, s ktorými sa nezhoduje. Ďalšou užitočnou aplikáciou je organizovanie poskytovania zdieľaného prístupu k súborom z externého hostiteľa bez skutočnej zmeny údajov o vlastníkoch súborov v súborovom systéme.
    • Do jadra boli prijaté záplaty LOOKUP_CACHED, ktoré umožňujú operáciám určiť cestu k súboru z užívateľského priestoru bez blokovania, iba na základe údajov dostupných vo vyrovnávacej pamäti. Režim LOOKUP_CACHED sa aktivuje vo volaní openat2() odovzdaním príznaku RESOLVE_CACHED, v ktorom sa údaje obsluhujú iba z vyrovnávacej pamäte a ak určenie cesty vyžaduje prístup k jednotke, vráti sa chyba EAGAIN.
    • Súborový systém Btrfs pridal počiatočnú podporu pre zónované blokové zariadenia (zariadenia na pevných magnetických diskoch alebo NVMe SSD, ktorých úložný priestor je rozdelený do zón, ktoré tvoria skupiny blokov alebo sektorov, do ktorých je povolené len postupné pridávanie údajov, aktualizácia celej skupiny blokov). V režime len na čítanie je implementovaná podpora blokov s metadátami a údajmi menšími ako stránka (podstránka).
    • V súborovom systéme F2FS bola pridaná možnosť výberu algoritmu a úrovne kompresie. Pridaná podpora pre vysoké úrovne kompresie pre algoritmus LZ4. Implementovaná možnosť pripojenia checkpoint_merge.
    • Bol implementovaný nový príkaz ioctl FS_IOC_READ_VERITY_METADATA na čítanie metadát zo súborov chránených fs-verity.
    • Klient NFS implementuje „eager“ režim zápisu (writes=eager), keď je povolený, operácie zápisu do súboru sa okamžite prenesú na server, čím sa obíde vyrovnávacia pamäť stránok. Tento režim vám umožňuje znížiť spotrebu pamäte, poskytuje okamžitý príjem informácií o konci voľného miesta v súborovom systéme a v niektorých situáciách umožňuje dosiahnuť zvýšený výkon.
    • Do CIFS (SMB) boli pridané nové možnosti pripojenia: acregmax na riadenie ukladania súborov do vyrovnávacej pamäte a acdirmax na riadenie ukladania metadát adresárov do vyrovnávacej pamäte.
    • V XFS bol povolený viacvláknový režim kontroly kvót, zrýchlené vykonávanie fsync a bol pripravený kód growfs na implementáciu funkcie zmenšenia veľkosti súborového systému.
  • Pamäťové a systémové služby
    • Pribudol subsystém DTMP (Dynamic Thermal Power Management), ktorý umožňuje dynamicky regulovať spotrebu energie rôznych zariadení na základe nastavených všeobecných teplotných limitov.
    • Bola implementovaná možnosť zostaviť jadro pomocou kompilátora Clang so zahrnutím optimalizácií vo fáze prepojenia (LTO, Link Time Optimization). Optimalizácie LTO sa líšia tým, že zohľadňujú stav všetkých súborov zapojených do procesu zostavenia, zatiaľ čo tradičné režimy optimalizácie optimalizujú každý súbor samostatne a nezohľadňujú podmienky pre volanie funkcií definovaných v iných súboroch. Napríklad pri LTO je možné inline nasadenie pre funkcie z iných súborov, nepoužitý kód nie je zahrnutý do spustiteľného súboru, kontrola typu a všeobecná optimalizácia sa vykonávajú na úrovni projektu ako celku. Podpora LTO je v súčasnosti obmedzená na architektúry x86 a ARM64.
    • Možnosť výberu režimov preempcie (PREEMPT) je teraz k dispozícii v plánovači úloh pri bootovaní (preempt=none/voluntary/full) alebo počas vykonávania prostredníctvom debugfs (/debug/sched_debug), ak bolo počas kompilácie jadra zadané nastavenie PREEMPT_DYNAMIC. Predtým bolo možné režim preempcie zadať iba na úrovni parametrov zostavovania. Táto zmena umožňuje distribúciám dodávať jadrá so zapnutým režimom PREEMPT, ktorý poskytuje minimálnu latenciu pre desktopy za cenu mierneho zníženia priepustnosti, a v prípade potreby sa vrátiť k režimu PREEMPT_VOLUNTARY (prechodný režim pre desktopy) alebo PREEMPT_NONE (ktorý poskytuje maximálnu priepustnosť pre serverov).
    • Do subsystému BPF bola pridaná podpora pre atómové operácie BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG a BPF_CMPXCHG.
    • Programy BPF majú možnosť pristupovať k údajom v zásobníku pomocou ukazovateľov s variabilným posunom. Napríklad, ak ste predtým mohli použiť iba konštantný index prvku na prístup k poli v zásobníku, teraz môžete použiť meniaci sa index. Kontrolu prístupu len v rámci existujúcich hraníc vykonáva overovateľ BPF. Táto funkcia je dostupná len pre privilegované programy kvôli obavám zo zneužitia zraniteľností pri spúšťaní špekulatívneho kódu.
    • Pridaná možnosť pripojiť programy BPF k holým sledovacím bodom, ktoré nie sú spojené s udalosťami sledovania viditeľnými v užívateľskom priestore (pre takéto sledovacie body nie je zaručené zachovanie ABI).
    • Bola implementovaná podpora zbernice CXL 2.0 (Compute Express Link), ktorá sa používa na organizáciu vysokorýchlostnej interakcie medzi CPU a pamäťovými zariadeniami (umožňuje používať externé pamäťové zariadenia ako súčasť RAM alebo trvalej pamäte, ako keby táto pamäť boli pripojené cez štandardný pamäťový radič v CPU).
    • Pridaný ovládač nvmem na načítanie údajov z pamäťových oblastí rezervovaných firmvérom, ktoré nie sú priamo prístupné Linux (napríklad pamäť EEPROM, ktorá je fyzicky prístupná iba firmvéru, alebo údaje, ktoré sú prístupné iba v počiatočnej fáze bootovania).
    • Bola odstránená podpora pre profilovací systém „oprofile“, ktorý nebol široko používaný a bol nahradený modernejším perf mechanizmom.
    • Asynchrónne I/O rozhranie io_uring poskytuje integráciu s cgroups, ktoré riadia využitie pamäte.
    • Architektúra RISC-V podporuje systémy NUMA, ako aj mechanizmy kprobes a uprobes.
    • Pridaná možnosť použiť systémové volanie kcmp() bez ohľadu na funkčnosť snímok stavu procesu (kontrolný bod/obnovenie).
    • Makrá EXPORT_UNUSED_SYMBOL() a EXPORT_SYMBOL_GPL_FUTURE(), ktoré sa v praxi dlhé roky nepoužívali, boli odstránené.
  • Virtualizácia a bezpečnosť
    • Pridaný ochranný mechanizmus KFence (Kernel Electric Fence), ktorý zachytáva chyby pri práci s pamäťou, ako je pretečenie vyrovnávacej pamäte a prístup po uvoľnení pamäte. Na rozdiel od ladiaceho mechanizmu KASAN sa subsystém KFence vyznačuje vysokou prevádzkovou rýchlosťou a nízkou réžiou, čo umožňuje zachytiť chyby pamäte, ktoré sa objavujú len na fungujúcich systémoch alebo pri dlhodobej prevádzke.
    • Pridaná podpora pre hypervízor ACRN, ktorý bol napísaný s ohľadom na pripravenosť v reálnom čase a vhodnosť pre kritické úlohy. ACRN poskytuje minimálnu réžiu, zaručuje nízku latenciu a primeranú odozvu pri interakcii s hardvérom. Podporuje virtualizáciu CPU, I/O, siete, grafických a zvukových zdrojov. ACRN je možné použiť na spustenie viacerých izolovaných inštancií. virtuálne stroje v elektronických riadiacich jednotkách, prístrojových zostavách, automobilových informačných systémoch, spotrebiteľských zariadeniach internetu vecí a iných vstavaných technológiách. ACRN podporuje dva typy hosťujúcich systémov: privilegované servisné virtuálne počítače, ktoré sa používajú na správu systémových zdrojov (CPU, pamäť, I/O atď.), a používateľské virtuálne počítače, ktoré môžu spúšťať Linux-distribúcie, Android и Windows.
    • Subsystém IMA (Integrity Measurement Architecture), ktorý spravuje hašovaciu databázu na kontrolu integrity súborov a súvisiacich metadát, má teraz možnosť kontrolovať integritu samotných údajov jadra, napríklad na sledovanie zmien v pravidlách SE.Linux.
    • Do hypervízora KVM bola pridaná možnosť zachytávať hyperhovory Xen a posielať ich emulátoru spustenému v užívateľskom priestore.
    • Pridaná možnosť použitia Linux ako koreňové prostredie pre hypervízor Hyper-V. Koreňové prostredie má priamy prístup k hardvéru a používa sa na spúšťanie hosťovských systémov (podobne ako Dom0 v Xen). Doteraz Hyper-V (Microsoft Hypervisor) podporoval Linux iba v hosťovských prostrediach, ale samotný hypervízor bol ovládaný z hostiteľského prostredia Windows.
    • Pridaná podpora pre inline šifrovanie pre eMMC karty, čo vám umožňuje používať šifrovacie mechanizmy zabudované v radiči disku, ktoré transparentne šifrujú a dešifrujú I/O.
    • Podpora pre hash RIPE-MD 128/256/320 a Tiger 128/160/192, ktoré sa nepoužívajú v jadre, ako aj prúdová šifra Salsa20, ktorá bola nahradená algoritmom ChaCha20, bola odstránená z kryptografický subsystém. Algoritmus blake2 bol aktualizovaný tak, aby implementoval blake2s.
  • Sieťový subsystém
    • Pridaná možnosť presunúť obslužný program NAPI polling pre sieťové zariadenia do samostatného vlákna jadra, čo umožňuje lepší výkon pri niektorých typoch pracovného zaťaženia. Predtým sa prieskum vykonával v kontexte softirq a nebol pokrytý plánovačom úloh, čo sťažovalo vykonávanie jemnozrnných optimalizácií na dosiahnutie maximálneho výkonu. Spustenie v samostatnom vlákne jadra umožňuje, aby bol obslužný program pollingu pozorovaný z používateľského priestoru, pripojený k jednotlivým jadrám CPU a zohľadnený pri plánovaní prepínania úloh. Na povolenie nového režimu v sysfs sa navrhuje parameter /sys/class/net/ /vlákno.
    • Integrácia do jadra MPTCP (MultiPath TCP), rozšírenie protokolu TCP na organizáciu prevádzky TCP spojenia s doručovaním paketov súčasne po niekoľkých trasách cez rôzne sieťové rozhrania spojené s rôznymi IP adresami. Nové vydanie pridáva možnosť priradiť prioritu určitým vláknam, čo umožňuje napríklad organizovať prácu záložných vlákien, ktoré sa zapnú iba v prípade problémov s primárnym vláknom.
    • IGMPv3 pridáva podporu pre mechanizmus EHT (Explicit Host Tracking).
    • Modul filtrovania paketov Netfilter poskytuje možnosť vlastniť určité tabuľky, aby ste získali výlučnú kontrolu (napríklad proces brány firewall na pozadí môže prevziať vlastníctvo určitých tabuliek a zabrániť tomu, aby do nich niekto zasahoval).
  • Оборудование
    • Vyčistili sme zastarané a neudržiavané platformy ARM. Kód pre platformy efm32, picoxcell, prima2, tango, u300, zx a c6x, ako aj ich pridružené ovládače boli odstránené.
    • Ovládač amdgpu poskytuje možnosť pretaktovania (OverDrive) kariet založených na GPU Sienna Cichlid (Navi 22, Radeon RX 6xxx). Pridaná podpora pre pixelový formát FP16 pre DCE (display controller engine) od 8. do 11. generácie. Pre GPU Navy Flounder (Navi 21) a APU Van Gogh bola implementovaná možnosť resetovania GPU.
    • Ovládač i915 pre grafické karty Intel implementuje parameter i915.mitigations na deaktiváciu mechanizmov izolácie a ochrany v prospech zlepšeného výkonu. Pre čipy začínajúce od Tiger Lake je zahrnutá podpora mechanizmu VRR (Variable Rate Refresh), ktorý umožňuje adaptívne meniť obnovovaciu frekvenciu monitora, aby bola zaistená plynulosť a žiadne medzery počas hier. Pre lepšiu presnosť farieb je zahrnutá podpora technológie Intel Clear Color. Pridaná podpora pre DP-HDMI 2.1. Bola implementovaná možnosť ovládať podsvietenie eDP panelov. Pre GPU Gen9 s podporou LSPCON (Level Shifter and Protocol Converter) je povolená podpora HDR.
    • Ovládač nouveau pridáva počiatočnú podporu pre GPU NVIDIA založené na architektúre GA100 (Ampere).
    • Ovládač msm pridáva podporu pre GPU Adreno 508, 509 a 512 používané v čipoch SDM (Snapdragon) 630, 636 a 660.
    • Pridaná podpora pre zvukové karty Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s a Pioneer DJM-750. Pridaná podpora pre audio subsystém Intel Alder Lake PCH-P. Pre ladiace obslužné programy v užívateľskom priestore bola implementovaná podpora softvérovej simulácie pripájania a odpájania audio konektora.
    • Pridaná podpora pre herné konzoly Nintendo 64 vydané v rokoch 1996 až 2003 (predchádzajúce pokusy o portovanie Linux (Port pre Nintendo 64 nebol nikdy dokončený a bol odsunutý na úroveň Vaporware.) Motiváciou pre vytvorenie nového portu pre starnúcu platformu, ktorá sa už takmer dvadsať rokov nevyrába, je údajne túžba stimulovať vývoj emulátorov a zjednodušiť portovanie hier.
    • Pridaný ovládač pre herný ovládač Sony PlayStation 5 DualSense.
    • Pridaná podpora pre ARM dosky, zariadenia a platformy: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Pridaná podpora pre smartfóny Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070.
    • Pridaný ovládač bcm-vk pre akceleračné dosky Broadcom VK (napríklad dosky Valkyrie a Viper PCIe), ktorý možno použiť na prenesenie operácií spracovania zvuku, videa a obrazu, ako aj operácií súvisiacich so šifrovaním, na samostatné zariadenie.
    • Pridaná podpora pre platformu Lenovo IdeaPad s možnosťou ovládať neustále nabíjanie a podsvietenie klávesnice. K dispozícii je aj podpora profilu ACPI platformy ThinkPad s možnosťou ovládať režimy spotreby energie. Pridaný ovládač pre subsystém Lenovo ThinkPad X1 Tablet Gen 2 HID.
    • Pridaný ovládač ov5647 s podporou modulu kamery pre Raspberry Pi.
    • Pridaná podpora pre dosky RISC-V SoC FU740 a HiFive Unleashed. Pribudol aj nový ovládač pre čip Kendryte K210.

Zdroj: opennet.ru

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