Western Digital werkt al aan een NVMe-stuurprogramma geschreven in Rust

RustLinux

De integratie van Rust in Linux heeft een hoge mate van acceptatie gehad door de gemeenschap en ontwikkelaars

Tijdens de conferentie “Linux Loodgieters 2022” die tegenwoordig aan de gang was, een ingenieur van Western Digital gaf een presentatie over de ontwikkeling van een controller experimenteel voor SSD NVM-Express (NVMe) geschreven in Rust en draait op het Linux-kernelniveau.

Ook al zijn het project bevindt zich nog in een vroeg stadium van ontwikkeling, toonden de uitgevoerde tests aan dat de prestaties van het Rust NVMe-stuurprogramma overeenkomen met het NVMe-stuurprogramma dat in C in de kernel is geschreven.

Ik ben Matthew Wilcox, ik ben een van de auteurs van de NVMe-specificatie, ik was degene die voorstelde om een ​​NVMe-stuurprogramma te maken om de waarde van Rust aan te tonen. Het is gelukt boven mijn stoutste verwachtingen. 

Over het gepresenteerde rapport het huidige NVMe C-stuurprogramma zou volledig bevredigend zijn voor ontwikkelaars, maar het NVMe-subsysteem is een goed platform om de haalbaarheid van het ontwikkelen van stuurprogramma's in Rust te onderzoeken, omdat het vrij eenvoudig is, veel wordt gebruikt, hoge prestatie-eisen heeft, een bewezen referentie-implementatie heeft ter vergelijking en verschillende interfaces ondersteunt (dev, pci, dma, blk-mq, gendisk, sysfs).

Opgemerkt wordt dat de Rust PCI NVMe-driver biedt al de nodige functionaliteit voor gebruik, maar het is nog niet klaar voor wijdverbreid gebruik, omdat het afzonderlijke verbeteringen vereist.

Plannen voor de toekomst zijn onder meer het wegwerken van bestaande onveilige blokkades, ondersteuning om het apparaat te verwijderen en de driver te downloaden, ondersteuning sysfs-interface, implementeer luie initialisatie, maak een controller voor blk-mq en experimenteer met een asynchroon programmeermodel voor queue_rq.

Verder kunnen we wijzen de uitgevoerde experimenten door de NCC Group om controllers in de Rust-taal te ontwikkelen voor de FreeBSD-kernel. Als voorbeeld een eenvoudige echo-controller die gegevens terugstuurt die naar de /dev/rustmodule zijn geschreven. In de volgende fase van experimenteren overweegt de NCC Group de kerncomponenten in Rust te herwerken om de beveiliging van netwerk- en bestandsactiviteiten te verbeteren.

Dat gezegd hebbende, hoewel is aangetoond dat het mogelijk is om eenvoudige modules in Rust te maken, een strakkere integratie van Rust in de FreeBSD-kernel zal extra werk vergen.

Hij noemt bijvoorbeeld de noodzaak om een ​​set abstractielagen te maken over kernelsubsystemen en -structuren, vergelijkbaar met de plug-ins die zijn voorbereid door het Rust-project voor Linux. In de toekomst zijn we van plan soortgelijke experimenten uit te voeren met de Illumos-kern en veelvoorkomende abstracties in Rust te benadrukken die kunnen worden gebruikt in stuurprogramma's die zijn geschreven door Rust voor Linux, BSD en Illumos.

Volgens Microsoft en Google is ongeveer 70% van de kwetsbaarheden in hun softwareproducten te wijten aan onveilig geheugenbeheer.

Het gebruik van de Rust-taal zou het risico op kwetsbaarheden verminderen veroorzaakt door onveilige geheugenverwerking en elimineert het optreden van fouten zoals toegang tot een geheugengebied nadat het is vrijgemaakt en bufferoverloop.

Geheugenbeveiliging wordt in Rust tijdens het compileren geboden door referenties te controleren, objecteigendom en objectlevensduur (scope) te volgen, evenals door de juistheid van geheugentoegang te evalueren tijdens de uitvoering van de code.

Roest biedt ook integer overloopbeveiliging, vereist dat variabelen vóór gebruik worden geïnitialiseerd, gaat beter om met fouten in de standaardbibliotheek, dwingt standaard het concept van onveranderlijke variabelen en verwijzingen af ​​en biedt sterk statisch typen om logische fouten te minimaliseren.

Het is vermeldenswaard dat het mogelijk is dat toekomstig werk hand in hand zal gaan met het werk dat Miguel Ojeda heeft gepresenteerd aan zijn "Rust for Linux"-stuurprogramma's, die zijn gepresenteerd als een reeks patches.

Eindelijk als u er meer over wilt weten, kunt u de details inchecken de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.