Miguel Ojeda, der Autor des Projekts Rust-for-Linux, hat den Entwicklern des Linux-Kernels vorgeschlagen, die Version v10 der Komponenten zur Entwicklung von GerĂ€tetreibern in Rust zu veröffentlichen. Dies ist die elfte Ausgabe der Patches, die auf der ursprĂŒnglichen Version basiert, die ohne Versionsnummer veröffentlicht wurde. Die UnterstĂŒtzung von Rust wurde von Linus Torvalds genehmigt, um in den Linux-Kernel 6.1 aufgenommen zu werden, sofern keine unvorhergesehenen Probleme auftreten. Die Entwicklung wird von Google und der ISRG (Internet Security Research Group) finanziert, die das Projekt Letâs Encrypt ins Leben gerufen hat und die Förderung von HTTPS sowie die Entwicklung technologischer Lösungen zur Verbesserung der Internet-Sicherheit unterstĂŒtzt.
Wie die vorherige Patch-Version wurde v10 auf das absolut Notwendigste reduziert, das erforderlich ist, um ein einfaches Kernel-Modul in Rust zu erstellen. Die Unterschiede zur vorherigen Version beschrĂ€nken sich auf kleinere Anpassungen, die Ersetzung von sizeof durch ARRAY_SIZE in kallsyms.c und die Anpassung der Patches an den Kernel v6.0-rc7. Der minimale Patch, dessen GröĂe von 40.000 auf 13.000 Codezeilen verringert wurde, soll die Annahme von Rust im Hauptkernel erleichtern. Nach der GewĂ€hrleistung der minimalen UnterstĂŒtzung ist geplant, die vorhandene FunktionalitĂ€t schrittweise auszubauen und weitere Ănderungen aus dem Rust-for-Linux-Zweig zu integrieren.
Die vorgeschlagenen Ănderungen ermöglichen die Nutzung von Rust als zweite Sprache fĂŒr die Entwicklung von Treibern und Kernel-Modulen. Die UnterstĂŒtzung von Rust wird als Option angeboten, die nicht standardmĂ€Ăig aktiviert ist und nicht zur Verpflichtung fĂŒhrt, Rust in den erforderlichen Build-AbhĂ€ngigkeiten des Kernels einzuschlieĂen. Die Verwendung von Rust zur Entwicklung von Treibern bietet die Möglichkeit, sicherere und hochwertigere Treiber mit minimalem Aufwand zu erstellen, die frei von Problemen wie dem Zugriff auf den Speicherbereich nach dessen Freigabe, dem Dereferenzieren von Nullzeigern und PufferĂŒberlĂ€ufen sind.
Die sichere Verwaltung von Speicher in Rust erfolgt wĂ€hrend der Kompilierung durch ĂberprĂŒfung von Referenzen, das Verfolgen des Eigentums an Objekten und das Management der Lebensdauer von Objekten (Sichtbarkeiten). AuĂerdem bewertet Rust die Korrektheit des Zugriffs auf den Speicher zur Laufzeit. Rust bietet auch Mechanismen zum Schutz vor ĂberlĂ€ufen bei Ganzzahlen, verlangt die obligatorische Initialisierung von Variablen vor ihrer Verwendung, behandelt Fehler in der Standardbibliothek besser und wendet das Konzept der UnverĂ€nderlichkeit (immutable) fĂŒr Referenzen und Variablen standardmĂ€Ăig an. Zudem bietet es eine starke statische Typisierung zur Minimierung logischer Fehler.
Quelle: opennet.ru
