Google legde uit dat Rust (-een taal die is voortgekomen uit Mozilla) garanties biedt voor geheugenveiligheid voor het Android-besturingssysteem, dat historisch is geschreven in C en C ++. Google richt zich op Rust op nieuwe Android-code, in plaats van de miljoenen regels bestaande code in Rust te herschrijven.
Nu is het tijd om over te stappen op de Linux-kernel die ten grondslag ligt aan Android. Linux-kernelontwikkelaars denken dat het zinvol is om nieuwe delen van de kernel in Rust te schrijven in plaats van de hele Linux-kernel te herschrijven, die meer dan 30 miljoen regels code bevat, grotendeels geschreven in C.
“We zijn van mening dat Rust nu klaar is om zich bij C aan te sluiten als een praktische taal voor het implementeren van de kernel. Het kan ons helpen het aantal potentiële bugs en beveiligingsproblemen in geprivilegieerde code te verminderen, terwijl we goed met de kernkernel spelen en de prestatiekenmerken behouden” legt Wedson Almeida Filho van het Android-team van Google uit .
Filho merkt op dat de dichtheid van geheugenbugs in de Linux-kernel vrij laag is. Wanneer ze zich echter voordoen, beschouwt het Android-beveiligingsteam ze over het algemeen als zeer ernstige tekortkomingen.
Om te laten zien waar Rust Linux-kernelontwikkelaars ten goede kan komen, heeft Google een voorbeelddriver ontwikkeld met de naam ‘semaphore’.
“Hoe Rust de ontwikkelaar kan helpen, is het aspect dat we willen benadrukken”, merkt Filho op. “Tijdens het compileren stelt het ons bijvoorbeeld in staat om de kans op het introduceren van klassen van bugs te elimineren of aanzienlijk te verkleinen, terwijl we tegelijkertijd flexibel blijven en minimale overhead hebben.”
Linux-kernelontwikkelaar Miguel Ojeda bracht deze week een verzoek om commentaar (RFC) uit naar de Linux-mailinglijst met een voorstel voor een tweede taal in de kernel, samen met verschillende patches voor de Linux-kernel geschreven in Rust.
Er is een Rust for Linux-groep opgericht door Ojeda, waar ook Google’s Android-team zich bij heeft aangesloten. “We weten dat er enorme kosten en risico’s zijn verbonden aan de introductie van een nieuwe hoofdtaal in de kernel. We lopen het risico de inspanningen te verdelen en we vergroten de kennis die nodig is om bij te dragen aan sommige delen van de kernel”, schrijft Ojeda.
“Het belangrijkste is dat elke nieuwe taal die wordt geïntroduceerd, betekent dat elke module die in die taal is geschreven, later veel moeilijker te vervangen zal zijn als de ondersteuning voor de nieuwe taal wegvalt. Desalniettemin zijn we van mening dat de voordelen van het gebruik van Rust zelfs vandaag de dag opwegen tegen de kosten. . ”
Zoals opgemerkt door Phoronix, heeft Linux-kernelontwikkelaar Linus Torvalds al enkele zorgen geuit met Rust, hoewel hij ook zei dat “ik het over het algemeen niet haat”. Torvalds voegde er echter aan toe dat “de ‘paniek bij mislukte runtime’ een fundamenteel probleem is”.
Filho legde uit dat, aangezien Rust nieuw is in de kernel, er een mogelijkheid is om processen en documentatie te verbeteren. “We hebben bijvoorbeeld specifieke machinaal gecontroleerde vereisten rond het gebruik van onveilige code: voor elke onveilige functie moet de ontwikkelaar de vereisten documenteren waaraan bellers moeten voldoen om ervoor te zorgen dat het gebruik ervan veilig is; bovendien moet voor elke oproep naar onveilige functies (of het gebruik van onveilige constructies zoals dereferentie van een onbewerkte pointer), moet de ontwikkelaar de rechtvaardiging documenteren waarom het veilig is om dit te doen, “schrijft Filho.
Rust, dat in 2015 slechts 1,0 bereikte, lijkt grip te krijgen bij ontwikkelaars. AWS, Huawei, Google, Microsoft en Mozilla steunen de Rust Foundation, die in februari werd gelanceerd.