Josh Triplett, die bij Intel werkt en lid is van de commissie die toezicht houdt op de ontwikkeling van Crates.io, spreekt op de Open Source Technology Summit
In een werkgroep die momenteel wordt opgericht, zullen Rust-ontwikkelaars, samen met ingenieurs van Intel, specificaties opstellen die de functionaliteit definiëren die in Rust moet worden geïmplementeerd voor systeemprogrammering. Systeemprogrammering vereist vaak manipulatie op laag niveau, zoals het uitvoeren van bevoorrechte processorinstructies en het verkrijgen van gedetailleerde informatie over de status van de processor. Van de vergelijkbare functies die al voor Rust worden ontwikkeld, wordt ondersteuning voor naamloze structuren, unies, invoegingen in assembleertaal (de "asm!"-macro) en het BFLOAT16 drijvende-kommagetalformaat vermeld.
Josh gelooft dat de toekomst van systeemprogrammering aan Rust toebehoort, en dat de C-taal in de moderne realiteit de plaats claimt die de afgelopen jaren werd ingenomen door Assembly. Roest
verlost ontwikkelaars niet alleen van de problemen die inherent zijn aan de C-taal en die ontstaan door het werken op laag niveau met geheugen, maar biedt ook de mogelijkheid om het te gebruiken bij de ontwikkeling van moderne programmeerparadigma's.
Gedurende
Josh kwam op het idee om de mogelijkheid toe te voegen om stuurprogramma's in de Linux-kernel te ontwikkelen in de Rust-taal, wat het mogelijk zou maken om met minimale inspanning veiligere en betere stuurprogramma's te maken, vrij van problemen zoals geheugentoegang na het vrijmaken, null pointer-dereferenties en bufferoverruns.
Greg Kroah-Hartman, die verantwoordelijk is voor het onderhouden van de stabiele tak van de Linux-kernel, sprak zijn bereidheid uit om een raamwerk voor het ontwikkelen van stuurprogramma's in de Rust-taal aan de kernel toe te voegen als dit echte voordelen heeft ten opzichte van C, het zal bijvoorbeeld veilige bindingen via Kernel API. Bovendien beschouwt Greg dit raamwerk alleen als een optie, en niet standaard actief, om Rust niet op te nemen als een build-afhankelijkheid van de kernel.
Het bleek dat verschillende teams al in deze richting werken. Bijvoorbeeld ontwikkelaars van het bedrijf "Fish in a Barrel"
Parallel
Nog niet alle beoogde functionaliteit is geïmplementeerd, maar het raamwerk is al redelijk geschikt voor werk en werd gebruikt om een werkende driver te schrijven voor de LAN9512 USB Ethernet-controller die in het Raspberry Pi 3-bord wordt geleverd. De bestaande smsc95xx-driver, geschreven door in C-taal. Opgemerkt wordt dat de modulegrootte en overhead van runtime-componenten bij het ontwikkelen van een stuurprogramma in Rust onbeduidend zijn, waardoor het raamwerk kan worden gebruikt voor apparaten met beperkte bronnen.
Bron: opennet.ru