Mastodon
Zuletzt aktualisiert am
Linux News
Bobby 🇬🇧 Borisov

GRUB bekommt mit neuem Prototyp einen Vorgeschmack auf Rust

Rust landet in GRUB als experimentelle i386-Pc-Unterstützung und dynamische Module, die sichereren Systemcode versprechen.
Eine Übersetzung von 🇬🇧 Linuxiac.com

Es besteht kein Zweifel daran, dass die Programmiersprache Rust in der Open-Source-Welt stark an Fahrt aufnimmt. Es gibt immer mehr Projekte, die sich dieser Sprache annehmen, wie die Desktop-Umgebung COSMIC von System76, die vollständig in Rust entwickelt wurde, und Fish Shell 4.

Rust hat sogar begonnen, seinen Weg in den Linux-Kernel zu finden. Ubuntu kündigte kürzlich Pläne an, GNU Coreutils in der kommenden Version 25.10 durch eine Rust-basierte Alternative zu ersetzen. Und nun schließt sich eine weitere wichtige Komponente des Linux-Ökosystems der Rust-Bewegung an: der kultige GRUB-Bootloader.

Einer der führenden Entwickler, Vladimir Serbinenko, hat damit begonnen, mit der Integration von Rust-Code in GRUB zu experimentieren. Seine anfängliche Arbeit ist über zwei GitHub-Repositories zugänglich: eines ist einem einfachen "Hello World"-Rust-Modul für GRUB gewidmet, das andere enthält die entsprechenden Änderungen in GRUB selbst. Serbinenkos Experiment konzentriert sich auf die i386-pc-Plattform - ein verständlicher Ausgangspunkt, da die i386-pc-Portierung von GRUB historisch gesehen die am häufigsten verwendete Konfiguration ist. Er betont jedoch, dass es kein inhärentes technisches Hindernis für die Integration von Rust in andere Architekturen gibt:

Im Moment ist nur i386-pc implementiert, aber das ist keine technische Einschränkung, andere sind einfach noch nicht implementiert.

Interessanterweise hat Serbinenko die GRUB-Module von ET_REL (.o)-Binärdateien auf ET_DYN (.so)-Binärdateien umgestellt. Dieser Ansatz ermöglicht es Rust-basierten Modulen, natürlicher mit der bestehenden GRUB-Infrastruktur zusammenzuarbeiten. Ein weiteres erwähnenswertes technisches Detail ist die Entscheidung, mit panic=abort zu kompilieren. Um Panikzustände rückgängig zu machen, müsste rust_eh_personality implementiert werden, was in diesem frühen Prototyp noch nicht berücksichtigt wurde.

In der Praxis bedeutet diese Einschränkung, dass sich Rust-Paniks nicht geordnet in der GRUB-Umgebung ausbreiten, so dass der Code darauf angewiesen ist, die Ausführung abzubrechen, sobald ein schwerwiegender Fehler auftritt.

Wie erwartet, sind nicht alle Entwickler voll und ganz damit einverstanden, Rust in GRUB zu integrieren. Als Reaktion auf die Ankündigung teilte ein anderer Entwickler, Maxim Fomin, einige Bedenken über diesen Wechsel mit:

Ich fand es bezeichnend, dass in dem Beitrag über die Einführung von Rust in das Projekt keine technische Diskussion über die Vorzüge einer solchen Einführung stattfindet. Dies stimmt mit dem Punkt der Rust-Kritik überein, dass das Einbringen von Rust in ein Projekt oft von Programmierern verursacht wird, die angeben wollen ("Ich/Projekt ist cool, weil es Rust hat") und nicht von technischen Vorzügen.

Die meisten Rückmeldungen waren jedoch positiv, und viele Entwickler erwarten, dass die Einbindung von Rust in GRUB die Zuverlässigkeit der Software erhöhen wird.

Zur Erinnerung: Das im Februar durchgeführte Audit enthüllte eine Liste von Schwachstellen im Code von GRUB, von denen viele mit der Speicherverwaltung zusammenhingen. Das ist genau die Art von Problemen, die Rust standardmäßig verhindern soll.

Weitere Informationen finden Sie in der Ankündigung von Serbinenko.

Spendieren Sie Bobby einen ☕ Ko-fi

Ein Service von s3n🧩net

Comments