Linus Torvalds odhalen prostřednictvím oznámení o dostupnosti nové verze Linuxové jádro 6.1. což možná je jedna z nejdůležitějších verzí vydaných za posledních 30 let A právě to, co dělá toto vydání tak výjimečným, je to, že od této verze je zaveden druhý jazyk pro vývoj jádra, kterým je jazyk Rust.
Rust jako takový dostává pouze oficiální API, které umožňuje vývoj samostatných modulů nebo pilotních verzí pro Linux. To znamená, že otevírání linuxového jádra tomuto jazyku probíhá s tím důsledkem, že sešrotování jazyka C není naplánováno na zítra. Jde však o změnu, která má svůj původ v dostupnosti a kompetencích třetích stran zapojených do vývoje jádra.
Hlavní novinky v Linuxu 6.1
Největší inovací Linuxu 6.1 je příchod Rusta, stejně jako několik let se v zákulisí pracuje na tom, aby bylo jádro vhodné pro vznikající programovací jazyk. V budoucnu by mělo být možné nejen programovat moduly v C, ale i v Rustu.
V současném stavu umožňuje pouze kompilovat, nahrávat a stahovat velmi jednoduchý příklad modulu. Jako první krok chtěl Linus Torvalds jen jednoduché "Ahoj světe!" Proto další užitečné moduly a především nejsou v Rustu v aktuálním jádře možné. Nové jádro však nabízí první pohled na to, jak se Rust integruje a jaké výzvy je třeba překonat.
Další novinkou implementovanou touto novou verzí Linuxu 6.1 je Podpora AMD Platform Management Framework, která zaručuje zlepšení výkonu u různých CPU AMD (Central Processing Units).
AMD Platform Management Framework také plná podpora pro AMT (automatický přechod do režimu) a pro CnQF (Cool and Quiet Framework). Počínaje touto aktualizací budou mít uživatelé distribuce v podstatě přístup k hlubšímu a komplexnějšímu řízení napájení a teploty.
Kromě toho můžeme najít i to Součástí je mechanismus MGLRU (vícegenerační LRU), která nahradil starou implementaci LRU (Nejméně nedávno použité) založené na dvou frontách s vícestupňovou strukturou, která lépe určuje, které paměťové stránky se skutečně používají a které lze vynutit ze swapu.
Přidané podpora datové struktury javorového stromu navržený inženýry Oracle, který je umístěn jako efektivnější náhrada za strukturu „červeno-černého stromu“. Javor aje variantou stromu B který podporuje indexování rozsahu a je navržen tak, aby efektivně využíval mezipaměť moderních procesorů. Některé subsystémy správy paměti již byly portovány do javorového stromu, což má pozitivní vliv na jeho výkon. V budoucnu může být javorový strom použit k implementaci zámku rozsahu.
Vyniká také v Linuxu 6.1, který přidáno speciální volání pro alokaci paměti v programech BPF (alokátor paměti), který poskytuje bezpečnější alokaci paměti v kontextu BPF než normální kmalloc(). První část změn byla integrována, poskytující možnost vytvářet ovladače pro vstupní zařízení s rozhraním HID (Human Interface Device), implementované ve formě programů BPF. Kód byl zcela odstraněn z jádra, aby podporoval formát spustitelných souborů a.out, který byl ve verzi 5.1 zastaralý a od verzí 5.18 a 5.19 byl zakázán pro všechny hlavní architektury.
Formát a.out se na systémech Linux dlouho nepoužívá a moderní nástroje nepodporují generování souborů a.out ve výchozích linuxových konfiguracích. Zavaděč souboru a.out lze implementovat zcela v uživatelském prostoru.
Nahradila implementaci ochranného mechanismu CFI (Control Flow Integrity), přidání kontrol před každým nepřímým voláním funkce k identifikaci některých forem nedefinovaného chování, které může potenciálně vést k porušení normálního pořadí provádění (kontrolního toku) v důsledku používání exploitů, které mění ukazatele funkcí uložené v paměti.
Běžná CFI implementace projektu LLVM byla nahrazena variantou, rovněž založenou na použití Clang, ale speciálně upravenou pro ochranu nízkoúrovňových subsystémů a jader operačních systémů. V LLVM bude navržena nová implementace ve verzi Clang 16 a bude povolena s volbou „-fsanitize=kcfi“.
Klíčovým rozdílem nové implementace je to, že není vázána na optimalizaci času propojení (LTO) a nevede k nahrazení ukazatelů funkcí odkazy v tabulce skoků.
Z dalších změn které vynikají
- U modulů Linux Security Module (LSM) je poskytována možnost vytvářet řadiče, které zachycují operace za účelem vytváření jmenných prostorů.
- Poskytované nástroje pro ověřování digitálních podpisů PKCS#7 v programech BPF.
- /dev/random vrátil možnost otevírat v neblokujícím režimu (O_NONBLOCK), který byl neúmyslně odstraněn v jádře 5.6.
- Přidáno varování na systémech x86, když subsystémy jádra alokují stránky paměti, které jsou spustitelné i zapisovatelné. Do budoucna se zvažuje možnost úplného zákazu takového mapování paměti.
konečně jestli jsi zájem dozvědět se o tom více, můžete zkontrolovat podrobnosti Na následujícím odkazu.