-
Zusammenfassung der Gründe, warum Rust als zweite Sprache für den Kernel verwendet werden sollte
-
Es geht nicht darum, den Kern oder wichtige Kernel-Subsysteme neu zu schreiben, sondern darum, Treiber und ähnliche "Leaf"-Module in Rust schreiben zu können
Wenn Rust im Linux-Kernel eingesetzt wird,
-
verringert sich aufgrund der Spracheigenschaften das Risiko von Memory-Safety-Bugs, Datenrennen und logischen Fehlern
-
können Maintainer dank der Sicherheit von Rust Module beim Refactoring und Patchen mit mehr Vertrauen bearbeiten
-
lassen sich dank moderner Sprachfunktionen und ausführlicher Dokumentation neue Treiber und Module leichter schreiben
-
können sich insgesamt mehr Menschen an der Kernel-Entwicklung beteiligen, indem sie eine moderne Sprache verwenden
"Why Rust?"
- Im Kontext des Linux-Kernels bietet Rust gegenüber C einige wichtige Vorteile
→ (sprachliche Vorteile ausgelassen..)
"Why not?"
- Im Kontext des Linux-Kernels hat Rust gegenüber C diese Nachteile
→ Es wurde viel Aufwand in C-basierte Tooling wie Compiler-Plugins und Sanitizer investiert. Das dürfte sich verbessern, wenn die Nutzung von Rust mit der Zeit zunimmt
→ Eine einzige LLVM-basierte Implementierung. Es gibt laufende Arbeiten wie ein GCC-Frontend, ein auf Cranelift basierendes "rustc"-Backend und "mrustc" zur Verringerung der Bootstrapping-Kette
→ Noch nicht standardisiert. Ob eine Standardisierung dem Kernel helfen würde, ist allerdings nicht sicher..
→ Aufgrund komplexer Funktionen und Einschränkungen des aktuellen Compilers sind die Kompilierzeiten langsam
→ Derzeit werden Funktionen aus Nightly-Builds benötigt. Eine stabile Version kann nicht verwendet werden. Ziel ist es, diese Einschränkung innerhalb eines Jahres zu beseitigen
→ Nicht alle Funktionen aus den Rust-Standardbibliotheken core und alloc werden genutzt, daher sind sie derzeit größer als nötig
-
Die meisten dieser Nachteile ergeben sich daraus, dass Rust noch eine junge und weniger verbreitete Sprache ist
-
Man geht davon aus, dass Rust wie C in den vergangenen Jahrzehnten ein wichtiger Bestandteil der Systemprogrammierung werden wird
3 Kommentare
https://lkml.org/lkml/2021/4/14/1099
Zusammen mit „So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it.“
und wenn man sich den Text ansieht, der auf HOWEVER folgt,
dann könnte es tatsächlich noch ziemlich lange dauern, bis das hinzugefügt wird.
Zu diesem RFC hat Linus Torvalds höchstpersönlich geantwortet: https://lkml.org/lkml/2021/4/14/1099
"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."
Da er sagte, dass er es insgesamt nicht schlecht findet, hoffe ich, dass es einen guten Verlauf nimmt.
Wie ich gesehen habe, wurden auf GeekNews wirklich sehr viele Rust-bezogene News gepostet. Ich denke, inzwischen ist es wirklich ein großer Trend der Zeit.
https://news.hada.io/search?q=Rust
Die Programmiersprache Rust [koreanische Ausgabe] https://de.news.hada.io/topic?id=1152
Rust – eine Sprache für hohe Performance und Zuverlässigkeit: "Wer die Großartigkeit von Rust nicht kennt, tut mir leid" https://de.news.hada.io/topic?id=991
Ich frage mich, ob es nicht nach und nach neben C koexistieren und irgendwann ersetzt worden sein wird ... Vielleicht war es sogar die bessere Entscheidung, sich von Mozilla zu lösen.