Na konference Maintainers Summit, která probíhá v těchto dnech, došlo k diskuzi o výsledcích experimentu přidání možnosti vývoje komponent v jádru Linux pomocí jazyka Rust. Přítomní účastníci experiment uznali za úspěšný a rozhodli se převést podporu jazyka Rust do kategorie základních částí jádra, čímž byla odstraněna značka experimentální funkčnosti.
Před třemi lety byla do jádra 6.1 přidána možnost vývoje ovladačů a modulů v jazyce Rust. Od té doby byla do jádra zahrnuta abstrakce pro vývoj ovladačů pro GPU, FS, bloková zařízení, síťové adaptéry a USB zařízení. V jazyce Rust se vyvíjí ovladač Nova pro GPU NVIDIA, asahi pro GPU Apple AGX, Tyr pro GPU ARM Mali a rust_ext2 pro souborový systém Ext2. Do jádra byla přijata implementace IPC Binder napsaná v jazyce Rust. Projekt RROS vyvíjí real-time subsystém pro jádro Linux napsaný v jazyce Rust. Podpora Rust není ve výchozím nastavení aktivní a nezpůsobuje zařazení Rust mezi povinné závislosti pro sestavení jádra.
Podle zastánců propagace Rust tento jazyk eliminuje většinu chyb, které se v jádře vyskytují a které jsou způsobeny zvláštnostmi jazyka C (corner case), což umožňuje při recenzování soustředit se na logické chyby a stavy závody. Rust pomáhá zbavit se problémů, jako je přístup k paměti po jejím uvolnění, přetečení vyrovnávacího prostoru, nesprávné uvolnění zdrojů při zpracování chyb a zapomenuté kontroly vracených chybových kódů. Použití Rustu pro nový kód také nabízí možnost zkrátit čas vývoje díky snížení nákladů na ladění a přítomnosti v jazyce přísných záruk, které odhalují chyby již na ranné fázi psaní kódu.
Odpůrci zavedení Rustu do jádra považují použití několika programovacích jazyků ve složitých projektech za nepřijatelné — smíšené kódové základny ztěžují práci udržovatelům, protože je staví do závislosti na kódu napsaném v jiném jazyce. Například s existencí obalů na Rustu musí vývojáři subsystémů napsaných v jazyce C brát v úvahu vliv změn na pokračování funkčnosti obalů.
Zdroj: opennet.ru
