Greg Kroah-Hartman, zodpovědný za údržbu stabilní a stagingové větve jádra Linux a správce 16 subsystémů jádra, přednesl na konferenci Rust Week 2026 přednášku, ve které nastínil, jak může jazyk Rust pomoci předcházet zranitelnostem jádra vyplývajícím z typických chyb, kterých se vývojáři v jazyce C dopouštějí při práci s pamětí, zámky, ošetřováním chyb a manipulací s nedůvěryhodnými daty. Hlavní výhodou jazyka Rust je schopnost detekovat takové chyby v době sestavení, spíše než vyžadovat lidskou kontrolu kódu. Rust však není považován za všelék schopný odstranit všechny problémy a nikdo neplánuje přepisovat jádro v Rustu. Očekává se, že Rust bude postupně přijímán prostřednictvím jeho používání v nových ovladačích a subsystémech.
Mezi příklady chyb jádra, kterým se dalo předejít použitím Rustu, patří chyba v subsystému Bluetooth, která zůstala 15 let nepovšimnuta, a problém v hypervisoru Xen. V prvním případě vývojář dereferencoval ukazatel bez kontroly a ve druhém zapomněl uvolnit zámek v kódu pro ošetření chyb.
Podle Grega je většina chyb jádra způsobena takovými malými problémy, které se časem hromadí a projevují se jako zranitelnosti. V Rustu je mnoha z těchto problémů zabráněno kompilátorem. Například abstrakce zámků v Rustu umožňují přístup k vnitřním ukazatelům struktur až po získání příslušného zámku, který se automaticky uvolní. Bez získání zámku je přístup k ukazatelům struktur v Rustu nemožný.
Greg věří, že funkce Rustu by zabránily 60 % chyb nalezených v jádře a kontroly kompilátoru by ušetřily správcům čas strávený diskusí s autory o správnosti ošetření chyb a vhodnosti zamykání. Zavedení podpory Rustu navíc již mělo příznivý vliv na kód C v jádře, uklidilo kód C a rozhraní a vypůjčilo si některé vývojářské techniky (například implementaci zámků s omezeným rozsahem).
Díky typovému systému, který zajišťuje dodržování definovaných pravidel, a použití systémů kontinuální integrace, které kontrolují kód v době sestavení, se správci při kontrole změn v Rustu mohou soustředit na ověřování základní logiky, spíše než na sledování manipulací s prostředky. Používání Rustu také umožňuje pečlivější posuzování dat přicházejících z hardwaru nebo externích systémů. Toho je dosaženo explicitním rozlišením mezi důvěryhodnými a nedůvěryhodnými daty na úrovni typového systému: vývojář musí provést analýzu pouze při přechodu z nedůvěryhodného do důvěryhodného stavu.
Tým pro bezpečnost jádra v poslední době publikuje přibližně 13 hlášení o zranitelnosti denně, což se ve srovnání s předchozím trendem objevování zranitelností zdá téměř šílené (například včera bylo publikováno 277 hlášení o zranitelnosti jádra). Greg se domnívá, že používání Rustu je jedním ze skutečných způsobů, jak snížit počet chyb v jádře způsobených tradičními přehlédnutími v oblasti ošetřování chyb a správy zdrojů. Podpora Rustu v jádře se již posunula za experimentální fázi a byla přijata jako standardní funkce koncem loňského roku.

Zdroj: opennet.ru
