Die Rust-Unterstützung wurde von experimentellen in die Hauptfunktionen des Linux-Kernels übertragen.

Auf der derzeit laufenden Konferenz Maintainers Summit fand eine Diskussion über die Ergebnisse des Experiments zur Integration der Möglichkeit zur Entwicklung von Komponenten in der Programmiersprache Rust in den Linux-Kernel statt. Die Teilnehmer erkannten das Experiment als erfolgreich an und beschlossen, die Unterstützung der Programmiersprache Rust in die Kategorie der Hauptteile des Kernels zu überführen und die experimentelle Funktionalität abzulehnen.

Vor drei Jahren wurde die Möglichkeit zur Entwicklung von Treibern und Modulen in der Programmiersprache Rust in den Kernel 6.1 aufgenommen. Seitdem wurden Abstraktionen für die Entwicklung von Rust-Treibern für GPUs, Dateisysteme, Blockgeräte, Netzwerkkarten und USB-Geräte in den Kernel integriert. In Rust entwickelt sich der Nova-Treiber für NVIDIA-GPUs, asahi für Apple AGX-GPUs, Tyr für ARM Mali-GPUs und rust_ext2 für das Dateisystem Ext2. Die im Kernel integrierte IPC Binder-Implementierung wurde in Rust geschrieben. Das Projekt RROS entwickelt ein Echtzeitsystem für den Linux-Kernel, das in Rust geschrieben ist. Die Rust-Unterstützung ist standardmäßig deaktiviert und hat keinen Einfluss darauf, ob Rust zu den zwingenden Build-Abhängigkeiten des Kernels gehört.

Befürworter der Rust-Entwicklung argumentieren, dass diese Sprache die meisten Fehler eliminiert, die durch die Eigenheiten von C (Corner Cases) im Kern entstehen. Dadurch kann man sich bei der Überprüfung auf logische Fehler und Race Conditions konzentrieren. Rust hilft, Probleme wie den Zugriff auf den Speicher nach dessen Freigabe, Pufferüberläufe, inkorrekte Ressourcenerlässe bei der Fehlerbehandlung und vergessene Überprüfungen von Rückgabecodes zu vermeiden. Die Verwendung von Rust für neuen Code bietet zudem die Möglichkeit, die Entwicklungszeit zu verkürzen, indem der Aufwand für das Debugging verringert wird und die strengen Garantien der Sprache dazu beitragen, Fehler frühzeitig im Code-Entstehungsprozess zu erkennen.

Gegner der Einführung von Rust in den Kernel halten den Einsatz mehrerer Programmiersprachen in komplexen Projekten für inakzeptabel – gemischte Codebasen erschweren die Arbeit der Maintainer, da sie von Code in einer anderen Sprache abhängig gemacht werden. Zum Beispiel müssen Entwickler von Subsystemen, die in C geschrieben sind, das Zusammenspiel mit Rust-Bindings beachten, um sicherzustellen, dass Änderungen die Weiterfunktionalität der Bindungen nicht beeinträchtigen.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster