Josh Triplett, som jobber hos Intel og er i komiteen som fører tilsyn med utviklingen av Crates.io, taler på Open Source Technology Summit
I en arbeidsgruppe som er i ferd med å bli opprettet, vil Rust-utviklere sammen med ingeniører fra Intel utarbeide spesifikasjoner som definerer funksjonaliteten som må implementeres i Rust for systemprogrammering. Systemprogrammering krever ofte manipulering på lavt nivå, for eksempel å utføre privilegerte prosessorinstruksjoner og innhente detaljert informasjon om prosessorens tilstand. Av de lignende funksjonene som allerede er utviklet for Rust, er støtte for navngitte strukturer, fagforeninger, assembly-språkinnlegg (“asm!”-makroen) og BFLOAT16 flytende tallformat.
Josh mener at fremtiden til systemprogrammering tilhører Rust, og C-språket i moderne realiteter gjør krav på plassen som de siste årene ble okkupert av Assembly. Rust
ikke bare avlaster utviklere fra problemene som ligger i C-språket som oppstår på grunn av arbeid på lavt nivå med minne, men gir også muligheten til å bruke det i utviklingen av moderne programmeringsparadigmer.
Under
Josh kom opp med ideen om å legge til muligheten til å utvikle drivere i Linux-kjernen i Rust-språket, noe som ville gjøre det mulig å lage tryggere og bedre drivere med minimal innsats, fri for problemer som minnetilgang etter frigjøring, null pekereferanser og bufferoverskridelser.
Greg Kroah-Hartman, som er ansvarlig for å vedlikeholde den stabile grenen til Linux-kjernen, uttrykte at han var villig til å legge til et rammeverk for å utvikle drivere i Rust-språket til kjernen hvis det har reelle fordeler fremfor C, for eksempel vil det gi sikker bindinger over Kernel API. I tillegg anser Greg dette rammeverket bare som et alternativ, ikke aktivt som standard, for ikke å inkludere Rust som en byggeavhengighet til kjernen.
Det viste seg at flere team allerede jobber i denne retningen. For eksempel utviklere fra selskapet "Fish in a Barrel"
Parallell
Ikke all den tiltenkte funksjonaliteten er implementert ennå, men rammeverket er allerede ganske egnet for arbeid og ble brukt til å skrive en fungerende driver for LAN9512 USB Ethernet-kontrolleren som følger med Raspberry Pi 3-kortet. Den eksisterende smsc95xx-driveren, skrevet av i C språk. Det bemerkes at modulstørrelsen og overhead fra kjøretidskomponenter ved utvikling av en driver i Rust er ubetydelig, noe som gjør at rammeverket kan brukes for enheter med begrensede ressurser.
Kilde: opennet.ru