In den Branchengruppen von linux-next, auf dessen Grundlage die Version 5.13 des Linux-Kernels erstellt wird, ist ein anfĂ€ngliches Set von Komponenten fĂŒr die Entwicklung von GerĂ€tetreibern in der Programmiersprache Rust enthalten. Separat wurde eine Dokumentation zur Verwendung von Rust im Linux-Kernel und ein Beispiel fĂŒr ein Kernel-Modul mit einem Zeichenorientierten GerĂ€tetreiber in Rust veröffentlicht. Der Code wurde von Stephen Rothwell, dem Maintainer des Linux-next-Branches, hinzugefĂŒgt. In der Regel enthĂ€lt der Branch Linux-next Code, der bereit ist, im nĂ€chsten Ănderungszyklus in den Kernel aufgenommen zu werden, aber es ist noch unklar, ob die UnterstĂŒtzung von Rust von Linus Torvalds in die Version 5.13 des Linux-Kernels aufgenommen wird, da der Code noch nicht von einer breiten Entwicklergemeinschaft ĂŒberprĂŒft wurde.
Die UnterstĂŒtzung fĂŒr die Entwicklung von Kernel-Treibern in der Programmiersprache Rust wurde im vergangenen Jahr aktiv diskutiert, einschlieĂlich der Beteiligung von Linus Torvalds, der diese Möglichkeit nicht ausschloss. Die Idee wurde auch von Greg Kroah-Hartman unterstĂŒtzt, der fĂŒr die UnterstĂŒtzung des stabilen Branches des Linux-Kernels verantwortlich ist. Die Verwendung von Rust fĂŒr die Entwicklung von Treibern ermöglicht es, mit minimalem Aufwand sichere und qualitativ hochwertigere Treiber zu erstellen, die frei von Problemen wie dem Zugriff auf Speicherbereiche nach deren Freigabe, Dereferenzierung von Nullzeigern und Buffer Overflow sind.
Um die UnterstĂŒtzung von Rust im Branch linux-next zu aktivieren, wurde in KConfig die Option CONFIG_RUST (âRust-Supportâ im MenĂŒ âAllgemeine Einstellungenâ) hinzugefĂŒgt. Bei Aktivierung dieser Option wird ĂŒberprĂŒft, ob der Rust-Compiler rustc im System vorhanden ist, und bei Vorhandensein wird die Aktivierung weiterer, von Rust abhĂ€ngiger Komponenten ermöglicht (zum Beispiel erscheint im MenĂŒ âKernel-Hackingâ der Abschnitt âRust-Hackingâ). Die Verwendung von Rust wird als Option betrachtet, die standardmĂ€Ăig nicht aktiv ist und nicht dazu fĂŒhrt, dass Rust zu den verpflichtenden Build-AbhĂ€ngigkeiten des Kernels zĂ€hlt.
Der Bau von Kernel-Komponenten in Rust ist sowohl mit GCC als auch mit Clang möglich. FĂŒr die Verwendung von Rust im Kernel ist die Installation aktueller Nachbauversionen des Compilers rustc erforderlich, die nicht Ă€lter sind als die nightly-Version vom 20. Februar 2021 (es wird versprochen, UnterstĂŒtzung fĂŒr stabile Rust-Versionen hinzuzufĂŒgen, aber derzeit gibt es eine Bindung an einige experimentelle Funktionen). AuĂerdem mĂŒssen die Standardbibliotheken von Rust, die im Paket rust-src geliefert werden, sowie der Bindungs-Generator bindgen im System vorhanden sein. Die UnterstĂŒtzung ist momentan auf die Plattformen x86_64 und ARM64 beschrĂ€nkt.
Quelle: opennet.ru
