Greg Kroah-Hartman, zodpovedný za podporu stabilných a „staging“ vetiev jadra Linux a pôsobiaci ako hlavný udržiavač v 16 subsystémoch jadra, vystúpil s prednáškou na konferencii Rust Week 2026, kde hovoril o tom, ako môže jazyk Rust pomôcť pri prevencii vzniku zraniteľností v jadre, ktoré vznikajú v dôsledku bežných chýb vývojárov v jazyku C pri práci s pamäťou, zámkami, spracovaním chýb a prácou s nedôveryhodnými údajmi. Hlavnou výhodou Rust je schopnosť identifikovať takéto chyby už v priebehu zostavovania, a nie pri revízii kódu ľuďmi. Rust sa však nepovažuje za panaceu, ktorá by mohla zbaviť všetkých problémov, a nikto nemá v úmysle prepísať jadro do Rustu: očakáva sa postupné zavádzanie Rustu prostredníctvom jeho použitia pre nové ovládače a subsystémy.
Ako príklad chýb v jadre, ktorým by sa bolo dalo vyhnúť použitím Rustu, bola spomenutá chyba v subsystéme Bluetooth, ktorá bola prehliadnutá 15 rokov, a problém v hypervízore Xen. V prvom prípade vývojár vykonal de-referencing ukazovateľa bez kontroly, zatiaľ čo v druhom prípade zabudol odblokovať zámok v kóde spracovania chýb.
Podľa Grega je väčšina chýb v jadre spôsobená podobnými drobnosťami, ktoré sa časom hromadia a vyplávajú na povrch ako zraniteľnosti. V Ruste mnohé z týchto problémov predchádza kompilátor, napríklad Rust-abstrakcie pre zámky v jadre umožňujú prístup k interným ukazovateľom štruktúr len po zachytení príslušného zámku, ktorý sa uvoľňuje automaticky. Bez zachytenia zámku nie je možné získať prístup k ukazovateľom štruktúr v Rust.
Greg si myslí, že takéto možnosti Rust by zabránili vzniku 60% chýb identifikovaných v jadre a overovania vykonávané kompilátorom by zbavili udržiavajúcich od trávenia času diskusiou s autormi o správnosti spracovania chýb a dôvodoch blokovania v správnom mieste. Okrem toho zavedenie podpory Rust už malo blahodarný vplyv aj na C-kód v jadre vďaka úprave C-kódu a rozhraní, ako aj prevzatiu niektorých vývojových techník (napríklad boli implementované zámky s obmedzeným rozsahom).
Vďaka systému typov, ktorý zabezpečuje dodržiavanie stanovených pravidiel, a aplikácii systémov kontinuálnej integrácie, ktoré kontrolujú kód v štádiu zostavenia, sa pri revízii zmien v Rust môžu recenzenti sústrediť na overenie logiky fungovania, namiesto sledovania manipulácií so zdrojmi. Použitie Rustu tiež umožňuje venovať väčšiu pozornosť údajom prichádzajúcim z hardvéru alebo externých systémov. To sa dosahuje vďaka jasnému rozlíšeniu dôveryhodných a nedôveryhodných údajov na úrovni systému typov: vývojárovi stačí vykonať analýzu pri prechode z nedôveryhodného do dôveryhodného stavu.
V poslednom období tím zodpovedný za bezpečnosť v jadre zverejňuje každý deň približne 13 správ o zraniteľnostiach, čo sa na pozadí predchádzajúcej dynamiky odhaľovania zraniteľností javí ako niečo bláznivé (na príklad včera bolo zverejnených 277 správ o zraniteľnostiach v jadre). Podľa Grega je využívanie Rustu jedným z reálnych spôsobov, ako znížiť počet chýb v jadre spôsobených tradičnými chybami pri spracovaní chýb a správe zdrojov. V jadre už podpora Rustu prekročila rámec experimentu a koncom minulého roka bola uznaná za štandardnú možnosť jadra.

Zdroj: opennet.ru
