De tweede versie van de patches voor Rust-stuurprogrammaondersteuning op Linux is al verzonden

In maart van dit jaar op de linux-next branch waarin het op dat moment werkte voor de Linux-kernel 5.13, Er werd een eerste set componenten meegeleverd om apparaatstuurprogramma's te ontwikkelen in de taal Rust en nu is het verzoek gedaan om een ​​tweede editie toe te voegen van patches om Rust-ondersteuning toe te voegen aan de Linux-kernel.

De persoon die het verzoek naar de Linux-ontwikkelaars heeft gestuurd, is Miguel Ojeda, auteur van het Rust-for-Linux-project en over wie we een paar dagen geleden ook hebben gesproken, sinds hij werd ingehuurd om de leiding te nemen over het "Prossimo"-project dat in feite richt zich op het coördineren van inspanningen om de kritieke software-infrastructuur te verplaatsen naar een beveiligde code om het Linux-kernelgeheugen met Rust te beveiligen (als u meer wilt weten over het project, kunt u posten op de onderstaande link.)

Rust-stuurprogramma's op Linux
Gerelateerd artikel:
Prossimo, een ISRG-project om het Linux-kernelgeheugen te beveiligen met Rust

Het verzoek verzonden door Miguel Ojeda is een tweede bijgewerkte versie van de componenten voor de ontwikkeling van apparaatstuurprogramma's in Rust-taal en waarin de opmerkingen die tijdens de bespreking van de eerste versie van de patches zijn gemaakt, zijn verwijderd en waarbij Linus Torvalds al aan de discussie deelnam en voorstelde de logica te wijzigen om sommige bitbewerkingen te verwerken.

Binnen de voordelen die worden genoemd zijn dat veilig geheugenbeheer is gegarandeerd in Rust tijdens het compileren door referenties te controleren, objecteigendom en levensduur van het object te volgen, evenals de juistheid van geheugentoegang tijdens runtime te evalueren.

Roest biedt ook integer overloopbeveiliging, vereist verplichte initialisatie van variabelewaarden vóór gebruik, gaat beter om met fouten in de standaardbibliotheek, neemt standaard het concept van verwijzingen en onveranderlijke variabelen over en biedt sterk statisch schrijven om logische fouten te minimaliseren.

Van de veranderingen die opvallen van deze nieuwe versie van de patches wordt vermeld:

  • De geheugentoewijzingscode voorkomt dat er paniek ontstaat wanneer er fouten optreden, zoals onvoldoende geheugen.
  • Inbegrepen een variant van de Rust alloc-bibliotheek, waarin de code is herwerkt om sloten af ​​te handelen, maar het einddoel is om alle noodzakelijke functies voor de kernel naar de hoofdeditie van alloc te brengen (de wijzigingen zijn al voorbereid en overgedragen naar de standaard Rust-bibliotheek).
  • In plaats van nachtelijke builds kunnen nu bèta- en stabiele versies worden gebruikt rustc compiler om een ​​Rust-enabled kernel te compileren. Momenteel wordt rustc 1.54-beta1 gebruikt als referentie-compiler, maar na de 1.54-release aan het einde van de maand zal het worden ondersteund als referentie-compiler.
  • Ondersteuning toegevoegd voor het schrijven van tests met behulp van het standaard Rust-attribuut "# [test]" en de mogelijkheid om doctests te gebruiken om voorbeeldcode uit de documentatie als tests te gebruiken.
  • Naast de eerder ondersteunde x32_86 en ARM64 is ondersteuning voor ARM64- en RISCV-architecturen toegevoegd.
    Verbeterde GCC-implementaties Rust (de GCC-frontend voor Rust) en rustc_codegen_gcc (de rustc-backend voor GCC), die nu alle benchmarks doorstaat.
  • EEN nieuw niveau van abstractie voor Rust-programma's om kernelmechanismen te gebruiken die zijn geschreven in C, zoals bomen, referentietelobjecten, het maken van bestandsdescriptors, taken, bestanden en I / O-vectoren.
  • De componenten voor het ontwikkelen van stuurprogramma's hebben verbeterde ondersteuning voor de "file_operations"-module, de "module!" Macro, macro-logboekregistratie en rudimentaire stuurprogramma's (probeer en verwijder).
  • Binder heeft ondersteuning voor het doorgeven van bestandsdescriptors en LSM-links.
  • Een meer functioneel voorbeeld van een Rust driver, bcm2835-rng, wordt voorgesteld voor een hardware random number generator voor Raspberry Pi boards.

Als u er tenslotte meer over wilt weten, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

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

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  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.