SerenityOS: Ein grafisches Unix-artiges Betriebssystem

Mo, 12. April 2021, Niklas

Das SerenityOS Projekt wurde am 10. Oktober 2018 vom Programmierer Andreas Kling gestartet. Es besteht fast komplett aus Eigenentwicklungen, einschliesslich dem Kernel und der Desktop Oberfläche. Die Arbeit an ersterem wurde bereits früher begonnen.

Ziel des Projekts ist es, ein neues Unix-artiges Betriebssystem zu entwickeln, das über genug Funktionen verfügt, um als Hauptsystem für alle alltäglichen Aufgaben genutzt werden zu können. Davon ist es im heutigen Zustand noch weit entfernt und doch kann es schon erstaunlich viel für ein so junges Projekt.

SerenityOS ist schnell und sparsam. Es startet selbst in einer QEMU Virtual Machine in wenigen Sekunden und hat mit der Standardkonfiguration des QEMU Startscripts nur 512 MB RAM zur Verfügung, die im Leerlauf mit Desktopumgebung und sonst nichts etwa zur Hälfte gefüllt sind. Ich habe meine Konfiguration auf 3 GB erhöht, davon wurde aber nie mehr als 1 GB verbraucht.

Mich begrüsst ein gut bekanntes Design: Ich erinnere mich zurück an die guten alten Zeiten mit Windows 98, als Computer noch ohne viel Schnickschnack einfach das getan haben, wozu man sie gebraucht hat. Es war damals vielleicht nicht alles besser, aber doch das Meiste. Diesen Gedanken dürfte wohl auch der Projektleiter gehabt haben, immerhin ist der Nachbau eines User-Interface aus den 1990ern ausdrücklich ein Ziel des Projekts.

Anfang 2019 wurde zunächst ein Konzept ausprobiert, das mehr an die Statusleiste von macOS angelehnt ist, wobei die restlichen grafischen Elemente schon eher an eine alte Windows Version erinnerten. Später wurde die Statusleiste durch eine Taskleiste ersetzt, wie man sie von Windows kennt.

Die Desktopumgebung basiert auf der Simple DirectMedia Layer Bibliothek. Mit LibGUI gibt es bereits eine eigene Bibliothek, mit der neue Programme geschrieben werden können (Anleitung), die sich gut in den restlichen Desktop einpassen. Es stehen noch viele weitere Bibliotheken zur Verfügung, darunter LibWeb für HTML und CSS, LibJS für Javascript und LibMarkdown für Markdown.

Die GNU Compiler Collection wurde bereits auf SerenityOS portiert und macht das Kompilieren eigener SerenityOS Programme möglich. Ein Paketmanagementsystem, das die einfache Installation und Verwaltung von Programmen als Binärpakete erlauben würde, ist allerdings noch nicht vorhanden.

SerenityOS verfügt über eine Vielzahl an vorinstallierten Programmen. Alle sind relativ einfach gehalten und bieten zugleich die wichtigsten Funktionen. Es gibt einen Webbrowser mit eigener Rendering Engine, der bis jetzt aber noch sehr eingeschränkt funktioniert. Mit HackStudio ist bereits eine IDE für C++ vorhanden, die sogar Syntax Highlighting unterstützt.

Ein IRC Client, der sich beim Starten direkt in den Freenode Channel des Projekts einwählt, ist auch vorhanden. Ausserdem gibt es einen Texteditor mit Vorschaufunktion für HTML und Markdown, allerdings ohne direkte Formatierungsmöglichkeit im Text und ein Tabellenkalkulationsprogramm, das durch Javascript Unterstützung sogar einige Befehle versteht.

Ein echtes Highlight des Systems sind die zahlreichen Spiele. Es handelt sich dabei hauptsächlich um alte Klassiker, die eher einfach zu programmieren sind, aber trotzdem einen enormen Suchtfaktor entwickeln können. Darunter befinden sich unter anderem der Nokia-Klassiker Snake, das Brettspiel Schach, wo man wahlweise gegen einen Mitspieler oder eine künstliche Intelligenz spielen kann oder auch 2048.

SerenityOS ist nur in Form des Quellcodes erhältlich und muss von jedem Anwender selbst kompiliert werden, was auf allen gängigen Systemen möglich ist. Es sollte in einer QEMU Virtual Machine benutzt werden, da bis jetzt kaum Treiber vorhanden sind und die Nutzung somit auf echter Hardware in den meisten Fällen unmöglich ist.

Fazit: Es macht Spass, sich mit SerenityOS zu beschäftigen. Auch wenn es noch weit davon entfernt ist, für den Alltagsgebrauch geeignet zu sein, bietet es schon sehr viele Funktionen für die kurze Entwicklungszeit. Vor allem die Tatsache, dass SerenityOS auf viele Eigenentwicklungen setzt, macht es sehr interessant, weil es sich damit von anderen Unix-artigen und Unix-basierten Betriebssystemen abhebt.

Quellen: