Einführung in Motūrus OS
- Das Motūrus-Projekt entwickelt MotūrusOS, ein einfaches, schnelles und sicheres Betriebssystem für die Cloud.
- Motūrus OS ist ein neues Betriebssystem, das auf Workloads in virtuellen Maschinen abzielt und für Webserver, Serverless und Edge-Caching genutzt werden kann.
Warum Motūrus OS?
- Derzeit laufen die meisten virtualisierten Produktions-Workloads unter Linux.
- Linux verfügt zwar über viele fortgeschrittene Funktionen, bringt aber auch einige Komplexitäten mit sich, die für virtualisierte Workloads nicht ideal sind:
- Linux ist für Bare Metal optimiert und daher bei der Nutzung innerhalb einer VM ineffizient.
- Linux ist schwierig zu verwenden.
- Linux war historisch gesehen sehr unsicher.
- Ein neues Betriebssystem mit Fokus auf virtualisierte Workloads kann deutlich einfacher und sicherer als Linux gebaut werden und Linux bei Leistung oder Effizienz übertreffen oder zumindest erreichen.
Was ist Motūrus OS?
- Motūrus OS ist ein Microkernel-basiertes Betriebssystem, das in Rust entwickelt wurde und ausschließlich auf virtualisierte Workloads ausgerichtet ist.
- Es unterstützt derzeit x64-KVM-basierte virtuelle Maschinen und kann in Qemu oder Cloud Hypervisor ausgeführt werden.
- Rust ist die Kernsprache von Motūrus OS; nicht nur die Implementierung, sondern auch das ABI wird in Rust bereitgestellt.
Funktionen, die bereits arbeiten
- Die meisten Subsysteme laufen derzeit noch im POC/MVP-Modus, aber Aufgaben wie ein Webserver lassen sich bereits ausführen.
- Im Einzelnen funktionieren derzeit folgende Features:
- Boot über MBR (Qemu) oder PVH (Cloud Hypervisor) in etwa 200 ms.
- himem-Microkernel.
- Scheduling: einfaches Multiprozessor-Round-Robin (SMP), das Kernel-Scheduling ist kooperativ.
- Speicherverwaltung: derzeit nur 4K-Seiten, Stacks sind geschützt, Page Faults im Userspace werden korrekt behandelt.
- I/O-Subsystem (im Userspace): VirtIO-BLK- und VirtIO-NET-Treiber, zwei einfache Dateisysteme, smoltcp-basiertes Networking (nur TCP unterstützt).
- Userspace: mehrere Prozesse, Präemption, Threads, TLS, der Großteil der Rust-Standardbibliothek wurde portiert.
- Eine einfache Unix-artige Shell ist vorhanden.
Funktionen, die noch nicht arbeiten
- Die meisten Teile sind noch nicht bereit für den produktiven Einsatz.
- Es gab noch kein Sicherheitsaudit.
- Im sys-io (Userspace-I/O-Subsystem) kann man leicht auf einen "not implemented"-Panic stoßen.
- Konkret funktionieren die folgenden Dinge noch nicht:
- Dateisysteme: Der Großteil der Rust-
std::fs-API wurde als POC implementiert, muss aber mit asynchronem I/O neu implementiert werden.
- Networking:
std::net::TcpStream ist größtenteils implementiert, andere Protokolle fehlen jedoch noch.
- Ökosystem jenseits des Rust-Standards: Einige Crates lassen sich mit kleineren Anpassungen kompilieren und verwenden, Crates mit Abhängigkeit von asynchronen Runtimes wie Tokio lassen sich derzeit nicht kompilieren.
Wie kann man Motūrus OS bauen/ausführen?
- Siehe Dokument
docs/build.md.
Danksagung
- Großer Dank an Philipp Oppermann, der die Blogserie über das Schreiben eines OS in Rust verfasst hat. Sie hat viele Menschen dazu inspiriert, in diesem Bereich zu experimentieren.
Meinung von GN⁺
- Innovativer Ansatz: Motūrus OS ist ein neues, auf virtualisierte Umgebungen spezialisiertes Betriebssystem, das die Komplexität und Ineffizienz von Linux lösen will.
- Einsatz von Rust: Rust ist eine Sprache mit starkem Fokus auf Speichersicherheit und Performance und dürfte zur Sicherheit und Effizienz von Motūrus OS beitragen.
- Beitrag für die Entwickler-Community: Das Projekt kann Entwicklern mit Interesse an Betriebssystementwicklung helfen, neue Möglichkeiten zu erkunden und bestehende Grenzen zu überwinden.
3 Kommentare
Ich lese den Blog
writing an os in rustauch, aber da tut sich ja schon jetzt etwas!Scheint ein guter Artikel zu sein.
Hacker-News-Kommentare
Meinung des Projektentwicklers/Autors:
Erklärung des "Rust-first"-Ansatzes:
Verwunderung darüber, warum ein kleiner Kernel auf moderner Hardware 200 ms benötigt:
Meinung, dass man gern einen Async-first-Kernel sehen würde, der in Rust geschrieben ist:
Meinung, die an frühere Aussagen von Linus Torvalds über Linux-Konkurrenz erinnert:
Meinung, die Projekte wie Motor OS interessant findet und hofft, dass die Entwicklung fortgesetzt wird:
Meinung, dass Docker, NixOS und "Serverless" wegen der Komplexität von Linux existieren:
Meinung, die anfangs eine skeptische Haltung gegenüber neuer Technologie hatte, dann aber nach erneutem Nachdenken die durch das Entfernen unnötiger Schichten erreichbaren Effizienz- und Sicherheitsgewinne attraktiv findet:
Meinung, dass Motor OS eher mit Docker usw. zu konkurrieren scheint:
Meinung, dass es nicht schwierig ist, ein neues Betriebssystem zu beginnen, aber sehr schwierig, es in den nächsten 50 Jahren zu unterstützen:
Der Abschnitt „Nicht funktionierende Features“ ist wirklich ein starkes Stück. Ein Spielzeugprojekt.