Die zweite Version der Patches für die Rust-Treiberunterstützung unter Linux wurde bereits ausgeliefert

Im März dieses Jahres auf dem Linux-Next-Zweig in dem es damals für den Linux-Kernel 5.13 arbeitete, Ein erster Satz von Komponenten wurde zur Entwicklung von Gerätetreibern in die Sprache Rust und nun wurde die Bitte um eine zweite Auflage gestellt von Patches, um dem Linux-Kernel Rust-Unterstützung hinzuzufügen.

Die Person, die die Anfrage an die Linux-Entwickler geschickt hat, ist Miguel Ojeda, Autor des Rust-for-Linux-Projekts und über den wir vor einigen Tagen auch gesprochen haben, da er angestellt wurde, um das Projekt "Prossimo" zu leiten, das im Grunde konzentriert sich auf die Koordinierung der Bemühungen, die kritische Software-Infrastruktur auf einen sicheren Code umzustellen, um den Linux-Kernel-Speicher mit Rust zu sichern (wenn Sie mehr über das Projekt erfahren möchten, können Sie sich an wenden unter folgendem Link posten.)

Rust-Treiber unter Linux
Verwandte Artikel:
Prossimo, ein ISRG-Projekt zur Sicherung des Linux-Kernel-Speichers mit Rust

Die von Miguel Ojeda gesendete Anfrage ist eine zweite aktualisierte Version der Komponenten für die Entwicklung von Gerätetreibern in der Sprache Rust und in denen die Kommentare, die während der Diskussion der ersten Version der Patches gemacht wurden, gelöscht werden und zu denen Linus Torvalds bereits in die Diskussion eingetreten ist und vorgeschlagen hat, die Logik zu ändern, um einige Bitoperationen zu verarbeiten.

In den Vorteilen die erwähnt werden sind das sichere Speicherverwaltung ist in Rust garantiert guaranteed zur Kompilierzeit durch Prüfen von Referenzen, Verfolgen des Objektbesitzes und der Lebensdauer des Objekts sowie Bewerten der Korrektheit des Speicherzugriffs zur Laufzeit.

Rost bietet auch Integer-Überlaufschutz, erfordert eine obligatorische Initialisierung von Variablenwerten vor der Verwendung, behandelt Fehler in der Standardbibliothek besser, übernimmt standardmäßig das Konzept von Referenzen und unveränderlichen Variablen und bietet starkes statisches Schreiben, um logische Fehler zu minimieren.

Von den Veränderungen, die auffallen dieser neuen Version der Patches wird erwähnt:

  • Der Speicherzuweisungscode verhindert die Möglichkeit, einen Panikzustand zu erzeugen, wenn Fehler wie nicht genügend Speicher auftreten.
  • Ist enthalten eine Variante der Rust-Alloc-Bibliothek, bei der der Code überarbeitet wurde, um mit Schlössern umzugehen, aber das Endziel ist es, alle notwendigen Funktionen für den Kernel in die Hauptedition von alloc zu bringen (die Änderungen wurden bereits vorbereitet und in die Standard-Rust-Bibliothek übernommen).
  • Statt nächtlicher Builds können jetzt Beta- und stabile Versionen verwendet werden rustc-Compiler zum Kompilieren eines Rust-fähigen Kernels. Derzeit wird rustc 1.54-beta1 als Referenz-Compiler verwendet, aber nach dem Release 1.54 Ende des Monats wird es als Referenz-Compiler unterstützt.
  • Unterstützung für das Schreiben von Tests mit dem standardmäßigen Rust-Attribut "# [test]" und die Möglichkeit, doctests zu verwenden, um Beispielcode aus der Dokumentation als Tests zu verwenden, wurde hinzugefügt.
  • Unterstützung für ARM32- und RISCV-Architekturen zusätzlich zu den zuvor unterstützten x86_64 und ARM64 hinzugefügt.
    Verbesserte GCC-Implementierungen Rust (das GCC-Frontend für Rust) und rustc_codegen_gcc (das rustc-Backend für GCC), die jetzt alle Benchmarks bestehen.
  • EIN neue Abstraktionsebene für Rust-Programme, um in C geschriebene Kernel-Mechanismen zu verwenden, wie Bäume, Objekte zum Zählen von Referenzen, Erstellen von Dateideskriptoren, Tasks, Dateien und I/O-Vektoren.
  • Die Treiberentwicklungskomponenten bieten eine verbesserte Unterstützung für das Modul "file_operations", das Makro "module!", die Makroprotokollierung und rudimentäre Treiber (Prüfen und Löschen).
  • Binder unterstützt die Übergabe von Dateideskriptoren und LSM-Links.
  • Ein funktionaleres Beispiel für einen Rust-Treiber, bcm2835-rng, wird für einen Hardware-Zufallszahlengenerator für Raspberry Pi-Boards vorgeschlagen.

Wenn Sie mehr darüber erfahren möchten, können Sie die Details konsultieren im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.