Essence vorgestellt: Modern, schick und offen

Mo, 6. Dezember 2021, Niklas

Essence ist ein freies Betriebssystem unter der MIT-Lizenz, das hauptsächlich in C und C++ geschrieben wurde. Es hat einen eigenen Kernel, eine eigene Desktopoberfläche und einige eigene Programme, die sich hervorragend in den Desktop integrieren, um ein konsistentes Benutzererlebnis zu schaffen. Lediglich einige Code-Bibliotheken wurden anderen Open-Source-Projekten entnommen.

Als ich den ersten Screenshot gesehen habe, musste ich sofort an Chrome denken. An eine alte Version, bevor man Material Design eingeführt hat. In gewisser Weise zeigt Essence vielleicht, was Chrome OS hätte sein können, wenn man es nicht mit Material Design und Handyapps ruiniert, sondern den Ansatz eines Browser-Designs für alle Anwendungen, die trotzdem noch native Software und keine Webapps sind, konsequent verfolgt hätte.

Essence befindet sich noch in einer relativ frühen Entwicklungsphase, aber in der empfohlenen Umgebung, einer QEMU VM, eignet es sich schon zum Ausprobieren und weckt Lust auf Mehr. Ein Video von November zeigt Essence auf echter Hardware, bei mir hat es jedoch auf keinem Gerät funktioniert.

Releases sucht man bei Essence vergeblich. Bis jetzt gibt es keine festgelegten Versionen und keine fertigen Builds, die man einfach herunterladen und ausprobieren kann. Stattdessen lädt man das Git Repository mit git clone herunter und kompiliert den Quellcode selbst. Wenn alle Abhängigkeiten erfüllt sind, muss nur noch ./start.sh ausgeführt werden und alles Weitere passiert automatisch. Danach kann das System mit dem Befehl k in QEMU mit KVM gestartet werden.

Achtung: Zum Kompilieren von Essence ist zwingend GNU/Linux erforderlich! Ich habe es zuerst mit Haiku und FreeBSD versucht, jedoch haben beide schon relativ früh mit unterschiedlichen Fehlermeldungen abgebrochen. Die Hardwareanforderungen, die start.sh anzeigt, sind allerdings in Wahrheit nicht so hoch. Dort werden 8 GB RAM genannt, mein Laptop hat nur 4 GB und es funktioniert trotzdem.

Wenn Essence erst einmal kompiliert ist, was beim ersten Mal gut eine viertel Stunde, danach mit bereits fertiger Toolchain nur noch etwa eine bis zwei Minuten dauert, startet es extrem schnell. Das QEMU Fenster ist kaum geöffnet, da sehe ich schon einen grafischen Desktop. Es zeigt einen schlichten blauen Bildschirm mit Mauszeiger und einer Taskleiste am unteren Bildschirmrand.

Mit einem Klick auf das + unten links öffne ich den Programmstarter. Startmenü wäre hier der falsche Ausdruck. Der Starter öffnet sich bereits in einem vollwertigen Programmfenster mit dem Titel "New Tab" und zeigt eine bislang noch relativ kurze Liste an vorinstallierten Programmen an.

Das Besondere an den Fenstern: Sie haben alle Tabs in der oberen Leiste, so wie die meisten Browser. Und genau so funktionieren sie auch. Wenn man ein Fenster öffnet, hat dieses Fenster einen Tab. Neben diesem kann man weitere Tabs öffnen, also weitere Programme, die im gleichen Fenster angezeigt werden. Mit dem + links in der Taskleiste kann man weitere Fenster öffnen, die wiederum beliebig viele Tabs beinhalten können. Das Schliessen des letzten verbliebenen Tabs schliesst das ganze Fenster, einen separaten Schliessbutton für das Fenster gibt es nicht. Man kann Tabs auch in andere Fenster verschieben oder auf eine freie Fläche, damit sie ein eigenes, neues Fenster bekommen.

Die Programme sind alle speziell für Essence in C++ geschrieben und integrieren sich somit hervorragend ins Systemdesign. Die meisten Programme bestehen aus nur einer einzigen Datei mit wenigen hundert Zeilen Code. Damit eignet es sich auch perfekt, um einen ersten Blick auf C++-Programmierung zu werfen. Folgende Programme sind auf Essence vorhanden:

  • 2048: Ein Spiel mit dem Ziel, durch Verschieben der Blöcke die Zahl 2048 zu erreichen.
  • File Manager: Ein übersichtlicher Dateimanager mit sehr vielen Funktionen im Vergleich zu den restlichen Programmen.
  • Font Book: Eine Vorschau der vorhandenen Schriftarten.
  • Image Editor: Ein einfaches Zeichenprogramm, kann bis jetzt nur Stift, Rechteck und Fläche ausfüllen.
  • IRC Client: Ein Client für das freie Chatprotokoll IRC. Das einzige Programm auf Essence, das eine Internetverbindung braucht. Das Programm scheint nicht zu funktionieren und stürzt beim Klick auf Connect immer ab.
  • POSIX Launcher: Funktioniert mit den Standardeinstellungen nicht, da es das POSIX Subsystem braucht. Mehr dazu später.
  • Settings: Die Systemeinstellungen. Bietet aktuell nur vier Unterpunkte: Display, Keyboard, Mouse und Theme, wobei ich bei Display leider nicht einmal meine Bildschirmauflösung anpassen kann.
  • System Monitor: Zeigt die laufenden Prozesse, die RAM Nutzung und das System Log an.
  • Test: Stellt einige UI-Elemente von Essence dar und bietet die Möglichkeit, sie auszuprobieren. Das dürfte hauptsächlich für Entwickler gedacht sein, die eigene Programme damit entwickeln wollen.
  • Text Editor: Ein Text-Editor mit Syntax Highlighting. Eignet sich zum Programmieren. Formatierungen wie etwa in Word unterstützt es nicht.

Wie man an der Auflistung unschwer erkennen kann, ist Essence keineswegs für den Alltagsgebrauch geeignet. Viele Programme müssen noch um weitere Funktionen ergänzt und einige ganz neue hinzugefügt werden. So fehlt beispielsweise ein Browser bislang komplett. Das, was jetzt schon vorhanden ist und funktioniert, hat mein Interesse aber auf jeden Fall geweckt und macht Hoffnung, dass sich daraus mit der Zeit ein schlankes Betriebssystem entwickeln wird, das alles Wichtige für den Alltag mitbringt.

Wenn man die Essence VM verlässt, befindet man sich wieder im start.sh Launcher. Mit dem Befehl config kann man hier ein Programm mit erweiterten Einstellungen aufrufen. Es funktioniert ähnlich wie die about:config Seite in Firefox. Mit Flag.ENABLE_POSIX_SUBSYSTEM: Yes kann ich hier den POSIX Launcher aktivieren, den ich weiter oben ausgelassen habe. Mit Flag.BGA_RESOLUTION_WIDTH und Flag.BGA_RESOLUTION_HEIGHT kann ich die richtige Bildschirmauflösung einstellen.

Anschliessend sollte man noch build-port im start.sh Launcher ausführen und Busybox in die Essence VM installieren, sonst wird man am POSIX Subsystem wenig Freude haben. Wenn das erledigt ist, kann man die VM mit dem Befehl k wieder in QEMU starten. Das Programm POSIX Launcher funktioniert jetzt und zeigt eine Art Terminal. Es ist ein sehr einfaches Terminal, das ein festes Eingabefeld am unteren Fensterrand hat. Ich habe Zweifel, dass dieses Terminal komplexe CLI Tools wie Midnight Commander korrekt darstellen kann, aber da solche ohnehin noch nicht portiert wurden, spielt das heute noch keine Rolle.

Die gängigen Befehle von Linux, die dort über die GNU Coreutils bereitgestellt werden, funktionieren auf Essence nicht. Es gibt also kein ls, cd, cat, cp und so weiter. Da wir Busybox über die Ports installiert haben, können wir diese Funktionen jetzt nutzen, indem wir busybox davor setzen, also beispielsweise busybox ls oder busybox cd. Des Weiteren steht eine Hello World Anwendung zur Verfügung, die mit dem Befehl hello ausgeführt werden kann.

Auch hier muss sich Essence noch stark weiterentwickeln, um mit Linux oder BSD mithalten zu können, aber ich denke, die Priorität von Essence liegt gar nicht auf dem Terminal, sondern auf der grafischen Oberfläche, die wirklich sehr gelungen ist.

Fazit: Essence ist ein vielversprechendes Projekt, ein neues freies Betriebssystem zu entwickeln, das sich aktuell noch in einer sehr frühen Phase befindet. Es macht Spass, in einer VM damit zu experimentieren, aber ist noch sehr weit davon entfernt, einen tatsächlichen Nutzen zu haben. Natürlich werden wir das Projekt im Blick behalten und über bedeutende Verbesserungen berichten.