Die vierte Version der Patches zur Unterstützung von Rust-Treibern unter Linux wurde veröffentlicht

Miguel Ojeda, Autor des Rust-for-Linux-Projekts, Teme hat kürzlich den vierten Vorschlag für vorgestellt Gerätetreiberkomponenten Rust für Linux-Kernel-Entwickler zu berücksichtigen.

Rostunterstützung gilt als experimentell, aber es wurde bereits vereinbart, in den linux-next-Zweig aufgenommen zu werden, und ist ausgereift genug, um mit der Arbeit an Abstraktionsschichten auf Kernel-Subsystemen sowie mit dem Schreiben von Treibern und Modulen zu beginnen. Die Entwicklung wird von Google und der ISRG (Internet Security Research Group) finanziert, die Gründer des Let's Encrypt-Projekts ist und HTTPS und die Entwicklung von Technologien zur Erhöhung der Internetsicherheit vorantreibt.

Für diejenigen, die die vorgeschlagenen Änderungen noch nicht kennen, sollten sie wissen, dass sie es möglich machen die Verwendung von Rust als Zweitsprache zur Entwicklung von Controllern und Modulen des Kerns. Die Rust-Unterstützung wird als Option präsentiert, die standardmäßig nicht aktiviert ist und nicht dazu führt, dass Rust in die erforderlichen Build-Abhängigkeiten für den Kernel aufgenommen wird.

Verwenden von Rust zum Entwickeln von Treibern ermöglicht es Ihnen, mit minimalem Aufwand bessere und sicherere Treiber zu erstellen, ohne Probleme wie Zugriff auf einen Speicherbereich nach dem Freigeben, Dereferenzieren von Nullzeigern und Pufferüberläufen.

Die Speichersicherheit wird in Rust zur Kompilierzeit durch Überprüfung von Referenzen, Nachverfolgung des Objektbesitzes und der Objektlebensdauer (Scope) sowie durch Bewertung der Korrektheit des Speicherzugriffs während der Ausführung des Codes gewährleistet.

Rust bietet auch Ganzzahlüberlaufschutz, erfordert, dass Variablen vor der Verwendung initialisiert werden, behandelt Fehler in der Standardbibliothek besser, erzwingt standardmäßig das Konzept unveränderlicher Variablen und Referenzen und bietet eine starke statische Typisierung, um logische Fehler zu minimieren.

Was sind die Änderungen in der vierten Rate?

In dieser neuen Version der vorgestellten Patches wird erwähnt, dass die während der Diskussion über die erste, zweite und dritte Ausgabe der Patches gemachten Kommentare weiterhin entfernt wurden.

Wir werden so lange aktualisieren, bis wir nicht mehr auf instabile Funktionen angewiesen sind.
An diesem Punkt möchten wir vielleicht damit beginnen, eine minimale Version von Rust zu deklarieren
wird unterstützt, wie dies beispielsweise für GCC und Clang der Fall ist.

In ähnlicher Weise haben wir auch auf die 2021-Edition der Rust-Sprache migriert.

Zu den anderen Änderungen, die in dieser neuen Version vorgenommen wurden, erwähnt die Ankündigung Folgendes:

  • Umstellung auf Stable Rust 1.58.0 als Referenz-Compiler.
  • Zu den für das Projekt erforderlichen Änderungen, die noch nicht im Haupttoolkit von Rust enthalten sind, gehören das Flag "-Zsymbol-mangling-version=v0" (erwartet in Rust 1.59.0) und der Modus "maybe_uninit_extra" (erwartet in Rust 1.60.0). .
  • Automatische Überprüfungen der Verfügbarkeit von Rust-Tools und deren Eignung wurden hinzugefügt, und die Möglichkeit, die Rust-Unterstützung auf dem System zu testen, wurde ebenfalls erweitert.
  • Es werden neue Abstraktionen vorgeschlagen, um vom Rust-Code aus auf die Gerätekennungstabellen ("IdArray" und "IdTable") zugreifen zu können.
  • Ebenen zum Aufrufen von Funktionen hinzugefügt, die sich auf den Timer (Uhrrahmen) beziehen.
  • Plattformcontroller werden jetzt durch Trait-Implementierungen definiert.
  • Ein neues Makro wurde hinzugefügt, um die Registrierung von Plattformtreibern zu vereinfachen, und es wurde eine neue generische Treibervorlage vorgeschlagen.
  • Neue Makros für „dev_*“-Strukturen hinzugefügt.
  • Neue Methoden „{read,write}*_relaxed“ für IoMem-Typ hinzugefügt .
  • FileOpener-Eigenschaft entfernt, um Dateioperationen zu vereinfachen.
  • Parameter „ThisModule“ zur Anzahl der Argumente hinzugefügt, die während der Registrierung des Controllers übergeben werden.
  • Eine typische Vorlage zum Erstellen von Kernelmodulen in der Rust-Sprache wird vorgeschlagen.

Wenn Sie mehr über diese neue Version erfahren möchten, können Sie die Details einsehen 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.