Met de aankomende Linux 6.1 kernel release is er de initiële Rust infrastructuur samengevoegd om het gebruik van de Rust programmeertaal voor toekomstige kernel drivers en andere kernel code mogelijk te maken. Maar die staat in Linux 6.1 is de basis en nog niet praktisch, terwijl er nu een secundaire verzonden”Rust voor Linux”-patches zijn verzonden om meer kernelontwikkeling mogelijk te maken met Rust.
Miguel Ojeda, die de Rust voor Linux-inspanningen leidde, stuurde donderdag een set van 28 patches uit die meer Rust core-toevoegingen aan de kernel bieden. Ojeda legde in de patchreeks deze laatste grote patchreeks uit:
Deze patchreeks is de eerste reeks wijzigingen om de rest van de Rust-ondersteuning stroomopwaarts te brengen.
In dit geval maken alle geïntroduceerde voorzieningen deel uit van de”Rust-kern”. Ze hebben geen interactie met de C-kant op nieuwe belangrijke manieren (geen nieuwe C-types gebruikt; alleen `strlen`, `memchr`, extra foutcodes en wat meer `printk` formaatstrings).
Na deze serie zijn `str.rs` en `print.rs` synchroon met downstream en zijn alle resterende proc-macro’s toegevoegd. `error.rs` is ook redelijk compleet, hoewel er later nog een paar `pub(crate)`-functies komen (om te voorkomen dat er dode code tussen reeksen blijft).
Merk op dat een paar tijdelijke `#[allow(dead_code)]`-kenmerken worden gebruikt om wat meer vrijheid te hebben bij het organiseren van de patches, terwijl ze allemaal zonder waarschuwingen/fouten kunnen worden gebouwd, maar aan het einde van de serie is er geen overgebleven (van de tijdelijke).
Vrijwel alle code is al maanden in linux-next en maakte deel uit van de Rust-patchreeks vóór het inkorten (d.w.z. tot v8).
Elke patch is gebouwd en getest op een Rust-enabled `defconfig` met `CLIPPY=1` op de `all`, `rustfmtcheck`, `rustdoc` en `rusttest` doelen.
Gezien het feit dat deze code al een tijdje in linux-next is en er al wat recensies zijn gezien als onderdeel van de originele Rust voor Linux patch-serie, is het goed mogelijk dat we dit werk op tijd klaar zouden kunnen zien voor de Linux 6.2 samenvoegvenster volgende maand. We zullen zien. De Rust voor Linux-trein blijft in ieder geval doorrollen.
Zodra al deze Rust-infrastructuur aanwezig is, zullen we zien hoe lang het duurt voordat meer prominente, echte stuurprogramma’s beginnen over te schakelen naar Rust-code, hetzij voor nieuwe hardware-ondersteuning of het herschrijven van bestaande C-stuurprogrammacode in Rust. Een van de eerste grote gebruikers van Rust in de Linux-kernel zal naar verwachting het DRM-stuurprogramma zijn voor de Apple M1/M2-graphics.
Afzonderlijk heeft de Amerikaanse National Security Agency gisteren richtlijnen gepubliceerd over bescherming tegen geheugenveiligheidsproblemen. De NSA-rapport suggereert het gebruik van de Rust-programmeertaal of andere geheugenveilige talen zoals Swift, Java, Go, Ruby en C#.