Cervus: WASM als Linux-Kernelmodul

Ein chinesischer Student hat auf Github ein neues Projekt namens Cervus gestartet, um ein Webassembly-Subsystem für den Linux-Kernel zu bauen.

Cervus ist in Rust geschrieben und implementiert einen Webassembly-Usermodus für den Linux-Kernel, wobei die Implementierung der Common-Webassembly-API-Spezifikation (Common WA) zu folgen versucht. Dank des Moduls sollen Wasm-Anwendungen direkt in Ring 0 laufen können. Der Code steht unter der GPL v2.

Ziel der Übung sei es unter anderem, Zero-Copy-I/O zu ermöglichen, Performance-Overheads durch zusätzliche Systemaufrufe und Kontextwechsel zu vermeiden und eine Managed Execution des Codes zu ermöglichen. Dabei wird der Code in einer (sicheren) Runtime ausgeführt, die auch bestimmte Aufgaben übernimmt und seine Performance lässt sich einfacher optimieren.

Was läuft?

Einige Dinge funktionieren bereits, andere noch nicht. Cervus verwendet einen Interpreter, der auf Hexagon-E basiert. Binäres Übersetzen und Laden auf Basis von “wasm-core” klappt auch. Ein Großteil der Common WA ist implementiert, IPC funktioniert als Broadcast, mit “ipc-broadcast://”. Arbeit erwartet Interessierte unter anderem noch in den Bereichen Jit und Floating Point. Was es braucht, um das experimentelle Modul zu bauen und einige Tools zu installieren, erklärt der Einführungstext auf Github.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben