Mit EasyOS entwarf der Puppy-Erfinder Barry Kauler eine experimentelle Distribution, die Container innerhalb des Systems ebenso ermöglicht wie Snapshots und atomare Updates mit Rollback.
Was macht der Entwickler einer Distribution, wenn er sich langweilt? Barry Kauler [1], australischer Erfinder der leichtgewichtigen Distribution Puppy Linux [2], beantwortete diese Frage 2014: Er legte das 2003 erstmals veröffentlichte Puppy Linux in die Hände der Community und widmet sich seither der Zusammenstellung experimenteller Distributionen wie Quirky [3] oder EasyOS [4]. Quirky wurde Ende 2018 offiziell eingestellt, EasyOS ist Kaulers aktuelles Projekt.
Er betont dabei, dass er mit EasyOS keine speziellen Ambitionen verfolgt, was wohl heißt, dass er es weiterentwickelt, solange es ihm Spaß macht. Er bezeichnet das System als “neues Paradigma” für eine Distribution, eine Mischung der besten Funktionen aus Puppy Linux und Quirky, und ein “fundamentales Umdenken in Sachen Sicherheit, Wartbarkeit und Benutzerfreundlichkeit”.
EasyOS baute der Entwickler von Grund auf neu. Als Build-System kam Woof aus der Puppy-Entwicklung zum Einsatz. Das fütterte er direkt mit Binärpaketen, die er wiederum mit einem eigenen Werkzeug, das seinerseits auf dem Build-Framework OpenEmbedded [5] beruht, aus den Quellen baut.
So vermeidet Kauler den Einsatz des von ihm nicht geschätzten Systemd und setzt stattdessen auf das minimale Init-Script von Busybox. Alle Pakete optimierte er für EasyOS, womit es dem leichtgewichtigen und wieselflinken Puppy nacheifert. Eines der Paradigmen von EasyOS lautet, dem Anwender die Kommandozeile zu ersparen und für alle Aufgaben eine einfache GUI anzubieten.
Zwei Images
Auf der Download-Seite [6] finden Sie zwei Image-Dateien mit den Endungen .img.gz und .iso, die verschiedenen Zwecken dienen. Möchten Sie EasyOS zunächst live oder in einer virtuellen Maschine ausprobieren, greifen Sie zur ISO-Datei. Das gepackte Image von EasyOS, das auch auf Deutsch bereitsteht, eignet sich dagegen zum Booten von einem entsprechend vorbereiteten USB-Stick.
Für den Transfer beider Abbilder auf externe Datenträger nutzen Sie entweder Dd oder das grafische Tool Etcher [7]. Für den alternativen Live-Betrieb brennen Sie das ISO-Image auf eine CD oder DVD und booten den Rechner damit. Auch diese Version lässt sich auf einer Festplatte installieren [8]. Dass das nicht dem eigentlichen Verwendungszweck von EasyOS entspricht, geht aus der Dokumentation nur indirekt hervor. Wie auch Puppy dient EasyOS hauptsächlich dazu, von Wechselmedien wie USB-Sticks oder SD-Karten zu starten, und bietet sich daher als Zweitsystem für die Hosentasche an.
Beim Einrichten auf der Festplatte handelt es sich um eine sogenannte frugale Installation, die das System nicht nach den Regeln des Filesystem Hierarchy Standard (FHS) [9] ausrollt, sondern alles in einem Ordner auf der gewählten Partition belässt. Weitere eventuell auf dieser Partition gespeicherte Inhalte bleiben davon unangetastet. Frugale Installationen bieten unter anderem auch Knoppix, MX Linux und Damn Small Linux an.
Besonderheiten
Eines der Alleinstellungsmerkmale von EasyOS besteht darin, Container innerhalb des Systems zu verwenden, um Anwendungen zu isolieren. Kauler setzt hier nicht auf Docker oder LXC, sondern verwendet eine Eigenentwicklung mit nur wenigen KByte kleinen Containern, die kaum Overhead erzeugen.
Zudem erlaubt EasyOS das Erstellen eines System-Snapshots, der das Zurückrollen des Systems erlaubt und dabei auch mögliche Container einschließt. Somit halten Sie bei Bedarf zwei Systemzustände vor, zwischen denen Sie wechseln können. Analog zu atomaren Paket-Updates wie etwa bei Fedora Silverblue [10] genügt bei EasyOS das Ersetzen von nur drei Dateien, um es zu aktualisieren.
Die Bootpartition enthält die Dateien vmlinuz, initrd und easy.sfs. Dabei handelt es sich um den Kernel, die Bootkonfiguration und um EasyOS selbst. Erscheint eine neue Version des Systems, genügt es, lediglich diese drei Dateien gegen die aus dem neuen Abbild auszutauschen. Anschließend klicken Sie auf die neue Initrd, um sie an die Gegebenheiten der Hardware anzupassen. Ein Bestätigen der Abfrage nach der Korrektheit der Einträge schließt die Aktualisierung ab.
Nach einem Reboot läuft dann die neue Version. Unter Filesystem | Easy Version Control sehen Sie nun die alte und die neue Version sowie einen eventuell von Ihnen erstellten Snapshot (Abbildung 1). Der lässt sich alternativ auch in einem Container erstellen.

Abbildung 1: Easy Version Control ist eine der einfachen, aber wirkungsvollen GUIs zum Verwalten verschiedener Versionen inklusive eines Snapshots.
In der GUI rollen Sie bei Bedarf auf eine ältere Version zurück oder wieder vor auf die neuere. Über den Schalter Depth bestimmen Sie die Zahl der gespeicherten Releases; voreingestellt sind drei, maximal möglich fünf.
Paketbündel
Ein von Intels Clear Linux OS bekanntes Merkmal sind Paketbündel statt einzeln installierter Pakete. Bei EasyOS enden deren Dateinamen auf .sfs [11]. Bei den bereits von Puppy bekannten Mega-Paketen handelt es sich um schreibgeschützte SquashFS-Archive, deren Pakete man nicht installiert, sondern bei Bedarf zur Laufzeit einhängt. Das hält die installierte Paketbasis klein und spart Platz. EasyOS setzt das mittels des Aufs-Overlay-Dateisystems [12] um, das auch zum scheinbaren Beschreiben von Live-CDs zum Einsatz kommt (Abbildung 2).

Abbildung 2: Die schematische Darstellung der beiden Partitionen eines USB-Sticks mit EasyOS. Das Verzeichnis .session/ enthält die aktuelle Sitzung und wird durch Aufs beschreibbar. (Quelle: bkhome.org)
Startet EasyOS das erste Mal vom USB-Stick, lädt es zunächst das Image vom Stick in den Hauptspeicher. Anschließend legt es auf dem Stick zwei Partitionen an: eine mit FAT32 formatierte Bootpartition mit einer Größe von 640 MByte und eine Ext4-Partition, die den Rest des Sticks einnimmt. Das System beansprucht nach der Initialisierung etwa 700 MByte davon.
In dieser “Working Partition” speichert die Distribution persistent die mit dem System erstellten Daten. Im Verlauf des Setups fragt der Installer Sie nach einem Passwort, mit dem Sie später auf verschlüsselte Teile des Systems zugreifen.
Root als Standard
Wenn Sie den Bootscreen beim ersten Start aufmerksam verfolgen, stellen Sie fest, dass EasyOS Sie automatisch als root einloggt. Diese Eigenart, die Kauler bei vielen der Varianten von Puppy Linux nutzte, beruht darauf, dass er die Distribution als Einzelplatzsystem konzipierte. So lassen sich darin ohne Passworteingabe sämtliche Systemveränderungen vornehmen.
Für Webapps und ähnlich exponierte Anwendungen steht bei Bedarf der in seinen Rechten beschränkte User spot zur Verfügung, in Containern tritt zeus an seine Stelle. Dort läuft generell ein sogenannter crippled root, dessen Rechte diverse Kernel-Mechanismen stark reduzieren.
Einstellungssache
Nach dem ersten Einrichten erwartet Sie zunächst das Quick Setup (Abbildung 3). Die Einstellungen zum Lokalisieren erklären sich selbst, die Videoeinstellungen rechts im Fenster waren bei Verwendung einer Intel-Grafikkarte von Haus aus korrekt.

Abbildung 3: Das Willkommensfenster Quick Setup erlaubt einige grundsätzliche Einstellungen im Bezug auf Lokalisierung, Grafiktreiber und Netzwerk.
Beim Versuch, den Intel-Treiber gegen den Kernel-Modesetting-Treiber aus X.org zu ersetzen, erwies sich die Routine als nicht sehr stabil. Wir mussten in diesem Fall von vorne beginnen, da wir nicht mehr in eine grafische Umgebung gelangen konnten. Kauler sieht im Quick-Setup die praktische Möglichkeit vor, EasyOS aus dem laufenden System heraus neu zu komprimieren. Nach einem Reboot wurde das System somit neu aufgesetzt. Beim zweiten Versuch gelang die Umstellung dann problemlos. Generell empfehlen wir aber, diese Einstellung nur im Notfall zu verändern.
Ein Klick auf das Desktop-Icon Setup öffnet den aus Puppy Linux stammenden PupControl, der die wichtigsten Einstellungsdialoge in einer Oberfläche zusammenfasst (Abbildung 4). Klicken Sie im Reiter Network auf den untersten Schalter Network Wizard, dann öffnet sich der Internet Connection Wizard, mit dem Sie die Verbindung ins Internet einrichten.

Abbildung 4: Das von Puppy Linux ausgeliehene PupControl fasst die verschiedenen Einstellungsdialoge unter einer Oberfläche zusammen.
Den Curses-basierten Netzwerkmanager Nmtui erreichen Sie im Menü unter Network | Nmtui NetworkManager configuration. Die Schaltfläche EasyShare network file and printer sharing im selben Abschnitt öffnet den Einstellungsdialog EasyShare, in dem Sie das Print- und Filesharing (de-)aktivieren (Abbildung 5).

Abbildung 5: Das Einrichten des Netzwerks übernimmt das Curses-basierte Werkzeug Nmtui, über EasyShare richten Sie das Print- und Filesharing ein.
Schlanker Desktop
Nach der Grundkonfiguration erscheint der Helpsurfer, der ins System einführt und unter anderem die Desktop-Icons erläutert. Das ist auch nötig, da Kauler nicht nur keinen Wert auf zeitgemäßes Design legt, sondern einige der Icons ihren Sinn auf den ersten Blick nur Puppy-Kennern offenbaren (Abbildung 6).

Abbildung 6: Der HelpSurfer erläutert die auf dem Desktop befindlichen Icons. Die drei Exemplare mit Vorhängeschloss führen zu Containern. Hinter Easy verbirgt sich ein containergelagertes, komplettes EasyOS.
Das ungewohnte Design liegt zu großen Teilen am verwendeten Fenstermanager JWM (Joe’s Window Manager) [13]. Er kam bereits bei Puppy, Damn Small Linux, Tiny Core Linux und Simplix zum Zug. Damit setzt EasyOS auf einen Desktop, der zunächst fremd und altmodisch anmutet. Durch seinen geringen Ressourcenverbrauch geht EasyOS außergewöhnlich flott zu Werk, was die Arbeit mit dem Desktop und das Starten von Programmen angeht. Als Dateimanager verwendet die Distribution den ROX-Filer, einen Teil des ROX-Desktops (Abbildung 7) [14].

Abbildung 7: Als Dateimanager kommt der schlanke ROX-Filer aus dem gleichnamigen Desktop zum Einsatz.
In der traditionellen Taskleiste am unteren Rand finden Sie links das Menü, das Zugriff auf alle installierten Anwendungen und die von Kauler erstellten GUIs zur Handhabung von Containern, zum Entfernen von Paketen aus SFS-Dateien oder für die vielen weiteren Konfigurationsmöglichkeiten bietet. Sie erreichen dieses Menü auch durch einen Rechtsklick auf den Desktop.
Umfangreiche Auswahl
Was die auf dem relativ kleinen Image von knapp über 400 MByte Platz versammelten Anwendungen betrifft, sammelt EasyOS richtig Punkte. Kauler zeigt bei der Auswahl viel Erfahrung, und durch die SFS-Archive spart er viel Platz bei trotzdem blitzschnell startenden Anwendungen.
Bei der Auswahl berücksichtigte der Entwickler eher leichtgewichtige Alternativen zu den üblichen Standardanwendungen. So kommt etwa die Seamonkey-Suite zum Zug, die neben einem Webbrowser auch einen E-Mail- und IRC-Client mitbringt (Abbildung 8). Auf Wunsch lassen sich aber auch Firefox und Chromium jederzeit nachinstallieren.

Abbildung 8: Die Browsersuite Seamonkey, ehemals Mozilla Application Suite, umfasst einen Webbrowser, einen E-Mail- und IRC-Client, einen HTML-Editor, ein Adressbuch und diverse Hilfsprogramme.
In der grafischen Abteilung glänzt EasyOS neben vielen kleinen Werkzeugen mit Gimp, Inkscape und LibreOffice Impress. Für Büroarbeiten bieten sich LibreOffice Writer und Scribus an, ergänzt durch mehrere Texteditoren und Tools. Die Sparte Business bringt Home Bank, LibreOffice Calc und Base mit. In der Rubrik Multimedia finden sich neben Xine und Audacious wiederum eine größere Anzahl an kleinen Helferlein für jede erdenkliche Aufgabe.
Easy Containers
Das Aufsetzen und Konfigurieren von Containern in der GUI übernimmt Easy Containers, das Sie im Menü unter Filesystem | Easy Container Management finden. Das Tool enthält zusätzlich einen Expertenmodus, der unter anderem die Kontrolle über Sicherheitsmerkmale wie Kernel-Capabilities [15] und Namespaces [16] für den zu erstellenden Container erlaubt (Abbildung 9).

Abbildung 9: Eine weitere einfache GUI verwaltet die Container innerhalb des Systems. Im Expert-Modus lassen sich gezielt Kernel-Funktionen zum Absichern der Container nutzen.
Standardmäßig existiert neben Containern für den Browser und das Terminal bereits ein Container, der einen kompletten Klon des Betriebssystems enthält. Wenn Sie aus dem Easy-Container heraus arbeiten möchten, klicken Sie auf dem Desktop das Icon mit dem Titel easy und dem Vorhängeschloss an.
Hier lassen sich beispielsweise Pakete installieren, die Sie mit eingeschränkten Rechten starten möchten. Um wieder ins Hauptsystem zu wechseln, drücken Sie [Alt]+[F6]. Wir konnten zudem aus der GUI heraus problemlos einen Container mit dem zusätzlichen Betriebssystem Xenial-Pup einrichten und es innerhalb von EasyOS nutzen (Abbildung 10).

Abbildung 10: Innerhalb eines Containers von EasyOS lässt sich auch eine andere Distribution, im Beispiel Xenialpup, erstellen und nutzen.
Fazit
Stellt EasyOS mehr als ein Experiment dar, und lässt es sich sinnvoll im Alltag einsetzen? Nach unserer Einschätzung: ja, allerdings nicht für jeden. Sicher gibt es Anwender, die den Funktionsumfang als wie für ihren Arbeitsfluss gemacht empfinden, andere dürften eher nur ein Experiment darin sehen. EasyOS setzt aber in jedem Fall voraus, dass Sie sich an das etwas überholte Design gewöhnen. Kauler geht hier pragmatisch vor und gibt der Funktion Vorrang vor Form und Design.
Die Dokumentation auf der Webseite des Projekts führt gut in die Materie ein und hilft beim Finden weiterer Funktionen [17]. Der einzige grobe Fehler, den wir entdeckten, war die Umstellung des Grafiktreibers im Quick-Setup. Weitere Stabilitätsprobleme fanden wir nicht, kleine Fehler und unfertige Übersetzungen trüben den positiven Gesamteindruck aber ein wenig.
Infos
-
Barry Kauler:http://bkhome.org
-
Puppy Linux: http://wikka.puppylinux.com/HomePage
-
Quirky: http://bkhome.org/linux/quirky-linux-an-experimental-distribution.html
-
EasyOS: https://easyos.org
-
OpenEmbedded: https://de.wikipedia.org/wiki/OpenEmbedded
-
EasyOS herunterladen: http://distro.ibiblio.org/easyos/amd64/releases/pyro/1.0/international/
-
Etcher: https://www.balena.io/etcher/
-
EasyOS Festplatteninstallation: https://easyos.org/install/how-to-install-easyos-on-your-hard-drive.html
-
FHS: https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
-
Fedora Silverblue: https://linuxnews.de/2019/04/fedora-workstation-mit-silverblue/
-
SFS: https://distro.ibiblio.org/puppylinux/sfs_modules-2/sfs-README.txt
-
Capabilities: Marcel Hilzinger, “Grenzen setzen”, LU 06/2009, S. 36, https://www.linux-community.de/18253
-
Namespaces: https://de.wikipedia.org/wiki/Namensraum
-
EasyOS-Dokumentation: https://easyos.org





