10 Punkte von xguru 2021-04-16 | 3 Kommentare | Auf WhatsApp teilen
  • 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

 
octopuset 2021-04-17

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.

 
xguru 2021-04-16

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.

 
ffdd270 2021-04-18

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.