Miguel Ojeda, de auteur van het Rust-for-Linux-project, heeft de ontwikkelaars van de Linux-kernel voorgesteld om versie 10 van de componenten voor de ontwikkeling van stuurprogramma's in de Rust-taal te overwegen. Dit is de elfde editie van de patches, rekening houdend met de eerste versie, die zonder versienummer is gepubliceerd. De ondersteuning voor Rust is goedgekeurd door Linus Torvalds voor opname in de Linux-kernel 6.1, mits zich geen onvoorziene problemen voordoen. De ontwikkeling wordt gefinancierd door Google en de organisatie ISRG (Internet Security Research Group), die de oprichter is van het Letās Encrypt-project en bijdraagt aan de promotie van HTTPS en de ontwikkeling van technologieĆ«n voor een veiligere internetomgeving.
Net als de vorige versie van de patches is versie 10 ingekort tot de absolute minimumvereisten die nodig zijn om een eenvoudige kernelmodule in de Rust-taal te bouwen. De verschillen met de vorige versie zijn voornamelijk kleine aanpassingen, zoals het vervangen van sizeof door ARRAY_SIZE in kallsyms.c en het aanpassen van de patches voor de kernel v6.0-rc7. Het is de bedoeling dat de minimale patch, waarvan de grootte is verkleind van 40.000 naar 13.000 regels code, het aannemen van Rust-ondersteuning binnen de kernel vergemakkelijkt. Na het realiseren van de minimale ondersteuning is het plan om geleidelijk de bestaande functionaliteit uit te breiden door andere wijzigingen van de Rust-for-Linux-tak over te brengen.
De voorgestelde wijzigingen maken het mogelijk om Rust te gebruiken als een tweede taal voor de ontwikkeling van stuurprogramma's en kernelmodules. De ondersteuning voor Rust wordt gepresenteerd als een optie die standaard niet is ingeschakeld en niet leidt tot de opname van Rust als een verplichte bouwafhankelijkheid van de kernel. Het gebruik van Rust voor de ontwikkeling van stuurprogramma's maakt het mogelijk om met minimale inspanning veilige en hoogwaardige stuurprogramma's te creƫren, vrij van problemen zoals het aanspreken van geheugen na vrijgave, het derefereren van null pointers en buffer overflow.
Veilige geheugentoegang wordt in Rust tijdens de compilatie gegarandeerd door middel van referentietests, objecteigenaarschap en het bijhouden van de levensduur van objecten (scope), evenals door het evalueren van de geldigheid van geheugentoegang tijdens het uitvoeren van code. Rust biedt ook middelen om te beschermen tegen gehele getallenoverflows, vereist dat variabelen verplicht worden geĆÆnitialiseerd voordat ze worden gebruikt, behandelt fouten beter in de standaardbibliotheek, past het concept van onveranderlijkheid (immutable) van verwijzingen en variabelen standaard toe en biedt sterke statische typecontrole om logische fouten te minimaliseren.
Bron: opennet.ru
