Den linux-next-gren, som Linux-kernen 5.13 vil blive baseret på, har fået et indledende sæt komponenter til udvikling af enhedsdrivere i Rust-sproget. Der er også offentliggjort dokumentation om brugen af Rust i Linux-kernen samt et eksempel på en kernemodul med en enhedsdriver skrevet i Rust. Koden blev tilføjet af Stephen Rothwell, vedligeholderen af Linux-next-grenen. Normalt indeholder Linux-next-grenen kode, der er klar til at blive accepteret i den næste ændringscyklus for kernen, men det er endnu uklart, om Linus Torvalds vil godkende Rust-understøttelsen i Linux 5.13, da koden ikke er blevet vurderet af et bredt udvalg af udviklere.
Understøttelsen af kernedriverudvikling i Rust-sproget har været aktivt diskuteret sidste år, også med deltagelse af Linus Torvalds, som ikke udelukkede denne mulighed. Ideen blev også støttet af Greg Kroah-Hartman, som er ansvarlig for vedligeholdelsen af den stabile Linux-kernelinje. Brug af Rust til udvikling af drivere vil muliggøre skabelsen af sikre og mere kvalitetsdrivere med minimale anstrengelser, fri for problemer som adgang til hukommelse efter frigivelse, dereferering af nul-pegepinde og buffer-overløb.
For at aktivere Rust-understøttelsen i linux-next-grenen er der tilføjet en mulighed CONFIG_RUST ("Rust support" i menuen "General setup") i KConfig, som verificerer tilstedeværelsen af rustc-kompilatoren i systemet, og hvis den er til stede, tillades aktivering af de øvrige komponenter relateret til Rust (for eksempel fremkommer sektionen "Rust hacking" i menuen "Kernel hacking"). Brug af Rust betragtes som en valgfri mulighed, der ikke er aktiveret som standard og ikke medfører, at Rust inkluderes blandt de obligatoriske byggeafhængigheder til kernen.
Kompilering af kernekomponenter i Rust er mulig både ved brug af GCC og ved at kompilere med Clang. For at bruge Rust i kernen kræves installation af de nyeste natlige builds af compilatoren rustc, ikke ældre end nightly-2021-02-20 (der lover en fremtidig støtte til stabile Rust-versioner, men der er i øjeblikket binding til nogle eksperimentelle funktioner). Det er også nødvendigt, at systemet har de standard Rust-biblioteker, der leveres i pakken rust-src, samt bindingsgeneratoren bindgen. Støtten er i øjeblikket begrænset til platformene x86_64 og ARM64.
Kilde: opennet.ru
