Google heeft de eerste aanstalten gemaakt om ondersteuning voor Rust toe te voegen aan de Linux-kernel. Het bedrijf beschouwt de programmeertaal als een mogelijkheid om betere en veiligere code voor de kernel te schrijven.
Kernels worden al bijna een halve eeuw voornamelijk geschreven in C, vertelt Google. Deze programmeertaal biedt de controle en voorspelbare prestaties die een dergelijk kritieke component van een systeem nodig heeft. Over het algemeen komen bugs in geheugenbeveiliging daarbij niet zo veel voor, aangezien de code goed wordt geschreven en er veel checks zijn om te voorkomen dat slechte code in de kernel belandt. Toch komen dergelijke bugs wel voor, wat voor enorm hoge beveiligingsproblemen kan zorgen.
Memory-safe
Rust is een programmeertaal die sterk lijkt op C++, maar dankzij zijn borrow checker het geheugen tegen programmeerfouten beschermt, waarmee het memory-safe is. Dit betekent dat bugs in de geheugenbeveiliging theoretisch niet zomaar meer kunnen voorkomen. Om die reden kondigde Google onlangs aan dat het de programmeertaal in Android heeft verwerkt. De programmeertaal kan ingezet worden voor de ontwikkeling van drivers in de diepere lagen van het besturingssysteem.
Rust for Linux
Nu wil de techreus ook in Rust kunnen knutselen aan de Linux-kernel waar Android bovenop is gebouwd. Daarbij is het niet de bedoeling om alle 30 miljoen regels code waar de Linux-kernel uit bestaat te vervangen met Rust, maar wel om nieuwe code te kunnen toevoegen geschreven in Rust. Om dat te bewerkstelligen, heeft het bedrijf zich aangesloten bij de Rust for Linux-organisatie. Die organisatie is onlangs opgezet door Linux-ontwikkelaar Miguel Ojeda, die eerder deze week zijn intenties deelde met de Linux-mailinglijst met een verzoek voor input.
Documentatie met best practices
Google ziet het toevoegen aan een tweede programmeertaal voor de Linux-kernel meteen als een kans om best practices te hanteren op het gebied van documentatie en uniformiteit. Het bedrijf geeft een voorbeeld van hoe er met onveilige code omgegaan moet worden, zoals door te documenteren aan welke vereisten voldaan moet worden voordat de code kan worden aangeroepen.
In de blogpost over de aankondiging toont Google meerdere voorbeelden van hoe het gebruik van Rust in de Linux-kernel eruit zou zien.
Tip: Rust-programmeertaal krijgt eigen belangen- en beheerorganisatie