iX 8/2018
S. 60
Review
Linux-Distribution
Aufmacherbild

Devuan GNU+Linux, Version 2.0 „ASCII“

Befreit

Devuan GNU+Linux, das von systemd befreite Debian, nutzt zum Starten von Systemdiensten das klassische SysV-Init. Die Version 2.0 „ASCII“ basiert auf Debian 9.4 „Stretch“ und möchte den langen Streit um die PID1 beilegen.

Über das Für und Wider von systemd haben Befürworter und Gegner bis zum Erbrechen ohne ein echtes Ergebnis diskutiert. Der Kasten „Stein des Anstoßes“ führt exemplarisch einige Argumente auf. Wer eine Software aus welchen Gründen auch immer nicht einsetzen will, den sollte vor allem ein freies Betriebssystem nicht dazu zwingen (siehe ix.de/ix1808060). Der jetzt in der Version 2.0 freigegebene Debian-Fork Devuan (Codename ASCII) ist jedenfalls aus diesen Diskussionen entstanden [1].

Alternative Init-Systeme

Auf Unix-basierten oder -ähnlichen Systemen ist init der erste Prozess, den der Kernel beim Hochfahren des Systems anstößt. Darüber erfolgt direkt oder indirekt der Start aller weiteren Prozesse. Daher erhält init als Mutter aller Prozesse die Prozess-ID 1 (PID) und ist auch der letzte Prozess, den der Kernel beim Shutdown beendet. Stürzt init ab, reagiert der Kernel mit Panic und im Idealfall noch einem Kernel-Dump.

Wegen der zentralen Bedeutung von init ist es offensichtlich, dass Programmierfehler und Sicherheitslöcher in seinem Code um jeden Preis zu vermeiden sind. Bekanntlich steigt die Zahl der Fehler im Sourcecode proportional mit dessen Größe und bewegt sich laut Wikipedia im Bereich von 0,5 Fehlern pro 1000 Zeilen Programmcode (LoC, Lines of Code) bei militärischen oder medizinischen Anwendungen. Als normal gelten 2 bis 6, bei der Webprogrammierung angeblich sogar bis zu 10 Fehler pro 1000 LoC. Das klassische init von SysV-Init in Devuan 2.0 ist ein lediglich 37 KByte großes Binary, systemd ist mit 1,6 MByte über 44-mal größer – beim Sourcecode ist der Unterschied noch deutlicher.

SysV-Init und optional OpenRC

Wie der Artikel „Startbereit“ beschreibt [4], gibt es viele weitere Init-Konzepte. OpenRC dürfte neben SysV-Init und systemd das wohl wichtigste für Linux sein. Es wurde auf NetBSD entworfen, wird mittlerweile aber primär unter Gentoo Linux weiterentwickelt. Dort und unter anderem auf Systemen wie Alpine Linux, Parabola GNU/Linux-libre, Artix Linux oder dem FreeBSD-Abkömmling TrueOS ist es Systemvorgabe. OpenRC ist im Gegensatz zu systemd auch in Richtung BSD portabel, es startet Dienste optional parallel (standardmäßig aber sequenziell). Es kann Abhängigkeiten auflösen und optimiert starten, Prozessressourcen limitieren und verwendet Prozessseparation via cgroups. Weiter separiert es den Code (init.d) von der Konfiguration (conf.d), überwacht und steuert Dienste, kennt komplexe Startzusammenhänge (Samba: smbd + nmbd) und passt sich an die Umgebung (physische Hardware, VM, Container et cetera) an. Daneben beherrscht OpenRC umfangreiche Netzwerkaufgaben (VPNs, Bridges …) und bietet Entwicklern sowie Administratoren ausführliche Debugging-Informationen.

Der erste Schritt zu „init-Freedom“: Devuan bietet neben SysV-Init auch OpenRC als vorinstalliertes Init-System, weitere sollen folgen (Abb. 1).

Per Default richtet Devuan beim Installieren das klassische SysV-Init ein. Über den Expertenmodus der Installation lässt sich auch OpenRC vorkonfigurieren. Bei „Installer-Komponenten von CD laden“ wird dazu die Option „choose init: select an init-system“ aktiviert. Etwas später präsentiert der Installer eine Liste der verfügbaren Init-Systeme: bislang „sysvinit“ und „openrc“, weitere sollen folgen (siehe Abbildung 1). Sollte sich systemd eines Tages zu einem wirklich optionalen Plug-in-fähigen Init-System weiterentwickelt haben, könnte es auch als Option verfügbar sein.

Unterschiede zu Debian

Die gute Nachricht für alle Debian-Fans: Devuan ist zu über 98 % mit Debian identisch. Anders als beispielsweise Canonical bei Ubuntu baut das Devuan-Team keine zusätzlichen Funktionen ein. Es fehlen nur die systemd-Pakete und davon abhängige Komponenten, die sich nicht patchen oder durch SysV-Init-taugliche Alternativen ersetzen lassen. Gegebenenfalls macht das Devuan-Team Paket-Maintainer und -Entwickler auf unnötige Abhängigkeiten von systemd aufmerksam.

Xfce- und der hier gezeigte MATE-Desktop sind bei Devuan in schlichtem Grau gehalten und ansonsten wie bei Debian vorkonfiguriert (Abb. 2).

Projekte wie GNOME, die sich systemd verschrieben haben, mussten die Entwickler im Devuan-Installer bei der Desktop-Auswahl entfernen. Der bietet neben dem Standard-Desktop Xfce4 auch den in Abbldung 2 gezeigten MATE sowie Cinnamon, KDE und LXQt an – bei Debian gibt es zusätzlich GNOME und LXDE statt LXQt. Xfce und MATE sind mit dem Login-Manager slim und dem Session-Manager consolekit vorkonfiguriert, Cinnamon, KDE und LXQt hingegen mit lightdm und elogind. Andere Fenstermanager kann man nachinstallieren. Nach der Installation lässt sich unter Devuan per apt install task-gnome-desktop manuell auch ein GNOME-Desktop aufspielen, Nutzer müssen dabei aber mit funktionalen Einschränkungen rechnen.

Statt des Network-Managers setzt Devuan für die Netzwerkverwaltung wicd ein, das einfacher zu bedienen und weniger eigensinnig ist (Abb. 3).

Den von systemd-Komponenten abhängigen Network-Manager ersetzt Devuan durch wicd, der allerdings eine bei der Installation vergebene IP-Konfiguration beim ersten Start vergisst. Das kann sehr unangenehm sein, wenn man ferne Systeme (VPS, Root-Server) mit Devuan installiert oder ein System von Debian umstellt. Hier sollte man zuvor das Netz manuell konfigurieren (siehe ix.de/ix1808060).

Software aus dem Devuan-Repository läuft meistens problemlos, da die Entwickler sie an das systemd-lose System angepasst haben. Ein Beispiel: Um HP-Drucker zu unterstützen, soll das Paket hplip installiert werden. Der Paketmanager versucht, die Abhängigkeitskette hplip –> policykit-1 –> libpam-systemd –> systemd aufzulösen. Hat man systemd auf einem Debian entfernt, führt das zu einem nicht auflösbaren Konflikt, weil dort die beiden letzten Pakete fehlen. Die Devuan-Entwickler haben libpam-systemd durch libpam-elogind ersetzt, das nicht mehr von systemd abhängt und so die Installation von hplip ermöglicht.

Seit Kurzem gibt es unter pkginfo.devuan.org eine öffentlich zugängliche Datenbank mit Informationen zu allen Paketen. Hier kann der Systemverwalter im Voraus prüfen, welche Abhängigkeiten ein Softwarepaket voraussetzt. Problematisch kann hier Software von Drittanbietern sein, die man aus externen Repositories bezieht oder direkt aus dem Sourcecode installiert.

Merkwürdige Benchmarks

Das Duo Debian und Devuan ist eine ideale Basis, systemd gegen SysV-Init zu testen, da sich beide Systeme nur durch das Init-System und dessen Auswirkungen auf die Systemleistung unterscheiden. Devuan/SysV-Init belegt gegenüber Debian/systemd (in Klammern) 867 (884) MByte und hat 46620 (53823) Dateien verteilt auf 5953 (7362) Verzeichnisse in der Minimalinstallation ohne Print-, aber mit SSH-Server. Beim Start und Stopp ist Debian je eine Sekunde schneller, dafür installiert Devuan zusätzliche Software oft fixer. Beim Übersetzen des verwendeten Linux-Kernel 4.9.0-6 sowie beim Schreiben und Lesen über NFS liegen beide Systeme gleichauf oder Devuan ist nahe dem Messrauschen schneller.

Spannender sieht es beim Messen des Apache 2.4.25 mit dem Apache Benchmark ab aus:

ab -n 5000 -c 500 "http://10.0.0.102/index.html"

Hier variieren die Ergebnisse bei Debian stark und liegen manchmal bis zu 50 % unter denen des Devuan-SysV-Init-Gespanns. Das trat im Test gelegentlich auf – sowohl direkt auf Hardware (HP Z600 mit 24 GByte RAM und SSD) als auch in VirtualBox-VMs mit „Intel PRO/1000 MT Server“-NICs. Nach einem Umstellen auf virtio wird Devuan noch mal schneller, während Debian das Netz nicht aktiviert bekommt. Erst der händische Eintrag der virtio-Netzwerkschnittstelle in /etc/network/interfaces sowie ein

systemctl restart systemd-networkd
reboot

bringt Debian wieder ins Rennen – zwar auch schneller als vorher, aber auch diesmal ab und zu etwas langsamer als Devuan. Den Grund konnte der Autor nicht ermitteln, beide Systeme liefen in der Standardkonfiguration als Minimalinstallation plus Apache-Webserver ohne weitere Änderungen.

Mit dem Xfce-Desktop sind keine fühlbaren Unterschiede im Betrieb festzustellen. Der MATE-Desktop als GNOME2-Fork lässt sich als einfacher Desktop problemlos auch von Windows-Anwendern bedienen. Die Umstellung auf GTK3 und viele offene Probleme machen ihn leider immer weniger attraktiv.

Verbesserte Softwareverfügbarkeit

Devuan GNU+Linux gibt es als GPL-Software frei über die Projektseite devuan.org. Über eine mittlerweile beachtliche Anzahl an Spiegelservern ist das aktuelle Devuan GNU+Linux 2.0 „ASCII“ für 32- und 64-Bit-Umgebungen (i386 und amd64) als CD-, DVD- und kleines netinst-Image erhältlich. Es gibt auch minimale Live-CDs mit und ohne grafische Oberfläche, die über spezielle Boot-Optionen für exotische oder sehr alte Hardware verfügen. Fertige virtuelle Maschinen bietet das Projekt für QEMU/VMware/VirtualBox (.qcow2), für Vagrant (.box) und speziell für VirtualBox (.vdi). Alle Medien enthalten die „Non-free Firmware“, was bedeutet, dass sich WiFi oder Server-NICs schon während der Installation nutzen lassen.

Im Embedded-Bereich, der vor allem von den geringeren Ressourcenanforderungen durch SysV-Init profitiert, stehen unter anderem Images für ARM (Raspberry Pi 0/1 raspi1, 2/3 raspi2 sowie 3 in 64 Bit raspi3), für Chromebooks, für Nokia N9xx sowie viele Allwinner-Boards wie Banana Pi, Cubieboard, Orange Pi oder Olimex Lime/MICRO zum Download bereit.

Kontakt zu den Entwicklern und zur Devuan-Community bekommt man über Mailinglisten, ein Webforum oder IRC-Kanäle. Technische Hilfe erhält man in der Regel schnell, auch wenn sich ein beachtlicher Teil der Konversationen um eher esoterische und prinzipielle Fragen dreht.

Fazit

Devuan GNU+Linux 2.0 „ASCII“ hat alle von Debian her bekannten Vorzüge: etwas konservativ, äußerst stabil und dank LTS durchaus Enterprise-fähig – nur eben ohne systemd. Neben den wichtigen weiteren systemd-freien Open-Source-Alternativen Gentoo/Alpine (OpenRC), Void (runit), Slackware (rc) und natürlich FreeBSD/OpenBSD steht dem Systemverwalter nun eine (leicht modifizierte) ausgereifte und bekannte Mainstream-Distribution ohne systemd zur Auswahl.

Das Wichtigste: Die ermüdenden und fruchtlosen Diskussionen um systemd können beendet werden, denn die Devuan-Entwickler bieten nicht nur eine Lösung, sie sammeln auch das Wissen, wie man systemd aus Linux entfernen kann. Alleine deshalb könnte es sinnvoll sein, das Projekt kennenzulernen und vielleicht sogar zu unterstützen. (avr@ix.de)