Schlagwort: Systemd

  • InitWare als Systemd-Fork auch für macOS

    InitWare auf einem iMac

    Anfang August hatte ich über das Projekt InitWare berichtet, dass ein an Systemd angelehntes Init-System für BSD-Distributionen zum Ziel hat. Nun meldet sich der Entwickler zurück und kündigt kommende Unterstützung auch für macOS an.

    Auf macOS portiert

    Nachdem InitWare auf NetBSD, FreeBSD, DragonFlyBSD und zuletzt auch auf OpenBSD lauffähig sei, verbleibe nur die Portierung auf ein weiteres wichtiges BSD-Betriebssystem, nämlich macOS, so der Entwickler. Gesagt – getan, er besorgte sich einen iMac aus 2. Hand und begann damit, InitWare unter macOS zu bauen. Da die Hauptarbeit bereits für die anderen BSD-Varianten geleistet wurde, war diese Portierung relativ einfach. 90 % der Arbeit habe darin bestanden, eine Reihe kleinerer im Systemd-Quellcode verwendeter GNU/Linux-Erweiterungen zu POSIX durch die POSIX-Äquivalente zu ersetzen.

    Verbleibende Probleme

    Noch ist die Portierung aber nicht ganz auf dem Stand der anderen BSDs. Eines der zu lösenden Probleme ist es, einen adäquaten Ersatz für die Kernel Virtual Memory (KVM) API zu finden, die von InitWare auf den freien BSDs verwendet wird, um Metadaten über Prozesse zu erhalten. Diese wurde mit macOS 10.5 abgeschafft. Da auch ein ProcFS wie unter Linux fehlt, das ähnliche Informationen liefert, vermutet der Entwickler, dass die BSD-Standardschnittstelle sysctl(3) von macOS ähnliche Informationen bereithält.

    Alternative zu Launchd

    Somit erhält macOS neben Launchd, das in Teilen die Entwicklung von Systemd beeinflusst hat, über einen Umweg mit InitWare eine Systemd-nahe Implementierung. Geplant ist, künftig das bestehende pkgsrc-wip-Rezept für InitWare unter NetBSD zu erweitern, um InitWare auch unter macOS zu unterstützen, was es jedem, der InitWare unter macOS ausprobieren möchte, ermöglichen wird, dies recht einfach zu tun. Anzumerken bleibt, dass InitWare als Ganzes vorerst noch Alpha-Software bleibt.

  • InitWare als Systemd-Fork auf OpenBSD

    InitWare unter OpenBSD

    Ein oft vorgebrachter Kritikpunkt an Systemd ist, dass es nur unter einem Linux-Kernel und glibc läuft und nirgends sonst. Seit einiger Zeit ist mit InitWare ein Fork in Arbeit, um ein Systemd-ähnliches Initsystem auch auf BSD nutzen zu können. Der Fork verzichtet zudem auf die Linux-typischen Systemaufrufe. InitWare ist nicht der erste Systemd-Fork, 2014 gab es bereits uselessd mit der Zielsetzung, Systemd auf ein reines Init-System zurückzustutzen. Dieser Versuch wurde aber ein Jahr später wieder eingestellt.

    Nicht alle Komponenten genutzt

    Auch das modular aufgebaute InitWare nutzt nicht die gesamte Funktionalität von Systemd, sondern verzichtet unter anderem auf Komponenten wie Udev und Journald. Das generelle Prinzip der Units wurde übernommen, jedoch fokussiert InitWare stärker auf den Init-Prozess selbst. Units sind über eine einheitliche Schnittstelle verwaltbar, können Abhängigkeiten und andere Beziehungen zu anderen Einheiten angeben und werden automatisch vom InitWare-Manager, einem Dienstverwaltungssystem geplant. Hinzu kommt ein Anmelde- und Benutzer-Sitzungsmanager, der die Verwaltung von Benutzern und ihren Sitzungen erleichtert. Jedem Benutzer wird ein eigener Benutzerdienstmanager zur Verfügung gestellt, mit dem er seine eigenen Dienste verwalten kann.

    Kompatibilität angestrebt

    InitWare strebt ein hohes Maß an Kompatibilität mit den Kernschnittstellen von Systemd an. Unit-Dateien, die systemctl– und loginctl-Befehle, die hier iwctl und iwloginctl heißen, die D-Bus-APIs, die sd_notify-API und mehrere andere Schnittstellen sind alle Gegenstand dieses Ziels. Es gibt aber auch Punkte, in denen sich beide Systeme unterscheiden. InitWare ist sehr portabel und will wesentlich modularer sein. Zudem ist InitWare von wesentlich geringerem Umfang und beschränkt sich auf die Verwaltung von Systemen, Diensten, Sitzungen und Anmeldungen.

    Nun auch auf OpenBSD bootbar

    Bisher konnten Rechner unter DragonFly BSD, FreeBSD, NetBSD und GNU/Linux mit InitWare gestartet werden. Kürzlich kam nun OpenBSD hinzu. Eine Roadmap skizziert die nächsten Schritte des Projekts. Die Entwickler machen darauf aufmerksam, dass InitWare noch nicht bereit für den Einsatz ist und dass die Installation derzeit ein Verständnis der Feinheiten des Bootvorgangs der Plattform erfordert, es dagegen aber recht einfach sei, das System in einen nicht mehr startfähigen Zustand zu versetzen.

  • Sicherheitslücken im Kernel und bei Systemd geschlossen

    Systemd Lücke
    Quelle: Negative Space | Lizenz: CC0

    Die Forscher des Sicherheitsunternehmens Qualys haben eine Sicherheitslücke im System- und Sitzungs-Manager Systemd entdeckt. Bei erfolgreicher Ausnutzung der Lücke kann ein unprivilegierter Angreifer Systemd zum Absturz bringen und eine Kernel-Panik auslösen.

    Lücke seit Systemd v220 vorhanden

    Die Sicherheitslücke wurde bereits in Systemd v220 im April 2015 durch den Commit 7410616c eingeführt. Anfang Juni informierte Qualys dann das Red Hat Security Team über die als CVE-2021-33910 katalogisierte Lücke. Einen Monat später wurden Patches von Red Hat an die Mailing-Liste linux-distros@openwall geschickt. Am gestrigen 20. Juli wurde die Lücke dann öffentlich bekannt gemacht.

    Angesichts der Breite der Angriffsfläche für diese Schwachstelle empfiehlt Qualys den Anwendern, die Patches für diese Schwachstelle sofort anzuwenden.

    Bharat Jogi, Qualys Senior Manager für Sicherheitsrisiken

    Die Lücke ermöglicht es Angreifern, die Funktion alloca() mit einer unkontrollierten Größe in der Funktion unit_name_path_escape ein Dateisystem auf einem sehr langen Pfad einzuhängen, sodass es zu einem Speicherfehler kommt, der Systemd und in der Folge das gesamte Betriebssystem zum Absturz bringt, da zu viel Speicherplatz im Systemd-Stack verwendet wird.

    Patches werden verteilt

    Die Patches werden bereits in den betroffenen Distributionen verteilt. Bei Debian Unstable etwa kam der Patch gestern in Form von systemd 247.3-6. Es ist dies nicht die erste Sicherheitslücke in Systemd und es wird vermutlich nicht die letzte sein. Kritiker werfen Systemd immer wieder vor, durch seine Komplexität solchen Lücken Vorschub zu leisten. Egal wie man dazu steht, wer Systemd verwendet, sollte das Update mit dem Patch möglichst zeitnah einspielen.

    Kernel-Lücke

    Zeitgleich hat Qualys eine weitere Lücke im Linux-Kernel entdeckt, die als CVE-2021-33909 katalogisiert wurde. Es handelt sich um einen Out-of-Bounds-Write-Fehler in der Funktion seq_file in der Dateisystemschicht des Kernels. Durch diesen Fehler kann ein lokaler Angreifer mit Nutzerprivilegien Zugriff auf Speicher erhalten, was zu einem Systemabsturz oder einem Leck in internen Kernel-Informationen führen kann. Das Problem resultiert daraus, dass die size_t-zu-int-Konvertierung vor der Ausführung von Operationen nicht validiert wird.

  • Systemd 247 stellt den Out-of-Memory Daemon vor

    Systemd 247
    Bild: Digital Ocean | Lizenz: CC BY-NC-SA 4.0

    Die Entwickler um Lennart Poettering haben die neue Hauptversion Systemd 247 des Linux-System- und Dienste-Managers freigegeben. Unter den vielen Neuerungen sticht die experimentelle Vorschau auf den Out-of-Memory Daemon (oomd) heraus. Das Kürzel OOM steht für Out-of-Memory und beschreibt eine Situation, in der dem System der Arbeitsspeicher ausgeht. Dann wird zunächst, soweit vorhanden, der viel langsamere Swap genutzt. Ist dieser nicht vorhanden oder bereits belegt, verlangsamt sich das System immer mehr, bis ein Arbeiten fast nicht mehr möglich ist.

    Kernel reagiert erst spät

    Schon lange kann der Kernel mit solchen Situationen durch den Einsatz des OOM-Killers umgehen. Diese Kernel-Komponente verrichtet den Job aber nicht optimal, da er zu langsam reagiert. Systemd-oomd überwacht den Speicherbedarf von Cgroups und greift bei Bedarf schneller mit dem Abschießen von Prozessen ein.

    Bei Facebook entwickelt

    Systemd 247 stellt jetzt die initiale Integration des von Facebook erstellten und als Open Source freigegebenen OOM-Daemon vor. Poettering hatte zusammen mit Facebook die Lösung für Systemd angepasst. Das Verhalten und die Schwellenwerte werden über die Konfigurationsdatei oomd.conf gesteuert.

    Btrfs für systemd-homed

    Die Systemd-Komponente systemd-homed nutzt nun standardmäßig das Dateisystem Btrfs beim Erstellen von Home-Verzeichnissen mit LUKS-Verschlüsselung. Dieses Verhalten kann in der homed.conf über den Parameter DefaultFileSystemType= angepasst werden.

    Neue Credentials-Logik

    Systemd unterstützt mit 247 eine neue Credentials-Logik als Mittel, um privilegierte Daten auf sichere Weise an Dienste weiterzugeben. Der beabsichtigte Anwendungsfall betrifft Passwörter, kryptografische Schlüssel, aber auch weniger privilegierte Daten wie Benutzernamen und Zertifikate. Systemd-nspawn gehört zu den ersten Benutzern der neuen Logik. Weitere Einzelheiten können den Release Notes entnommen werden. Der Quellcode liegt auf GitHub.

  • Die unendliche Geschichte: Debian und Systemd

    Die unendliche Geschichte: Debian und Systemd

    Debian Systemd
    Bild: Debian | Quelle Mohd Sohail | Lizenz: CC BY-SA-2.0

    Es vergeht kein Jahr, in dem es bei Debian nicht mindestens eine Diskussion über Systemd gibt, das bei der Distribution seit 2014 das Standard-Init-System ist. Die Entscheidung für Systemd traf damals nach langen und hitzigen Diskussionen Debians Technisches Komitee (CTTE).

    Seitdem gab es viele Diskussionen über die Unterstützung alternativer Init-Systeme, die letztes Jahr in einer Grundsatzentscheidung (General Resolution, GR) gipfelten. Gewonnen hat die Abstimmung damals Option 2 „B: Systemd but we support exploring alternatives“ des damaligen Debian-Projektleiters Sam Hartman:

    Das Debian-Projekt erkennt an, dass Systemd Service-Einheiten die bevorzugte Konfiguration sind, um zu beschreiben, wie man einen Daemon/Dienst startet. Dennoch bleibt Debian eine Umgebung, in der Entwickler und Benutzer alternative Init-Systeme und Alternativen zu Systemd erforschen und entwickeln können. Diejenigen, die daran interessiert sind, solche Alternativen zu erforschen, müssen die notwendigen Entwicklungs- und Paketierungs-Ressourcen zur Verfügung stellen, um diese Arbeit zu erledigen.

    General Resolution missachtet?

    Das scheinen nicht alle Entwickler so zu sehen, denn nun kommt ein Fall vor das CTTE, bei dem der Maintainer des Pakets NetworkManager nach Meinung anderer Entwickler diese Grundsatzentscheidung missachtet und damit den Zugang zu anderen Init-Systemen erschwert oder gar verhindert.

    Init-Script entfernt

    Es begann mit einem Bugreport aus dem Sommer, der moniert, dass Michael Biebl, der maßgeblich die Integration von Systemd in Debian vorangetrieben hat und immer noch betreut, ein Init-Script aus dem von ihm betreuten Paket NetworkManager entfernt hatte, dass die Nutzung alternativer Init-Systeme ermöglichte. Da NetworkManager ein essenzielles Paket für viele Anwender ist, versucht der Bugreport, die Entfernung rückgängig zu machen.

    network-manager (1.25.91-1) unstable; urgency=medium
    
      * New upstream version 1.25.91 (1.26 rc2)
      * Remove SysV init script
    
     -- Michael Biebl <[…]>  Thu, 02 Jul 2020 01:17:08 +0200

    Das Technische Komitee entscheidet

    Da Biebl aber über Monate nicht im Sinne der Befürworter des Init-Scripts reagierte, versuchte es ein Entwickler über das in dem Fall ungeeignete Mittel eines NonMaintainerUpload (NMU), die Änderung rückgängig zu machen. Dem widersprach Biebl. In letzter Konsequenz wendet sich Entwickler Matthew Vernon jetzt an das CTTE, Debians höchste technische Instanz, um den Fall klären zu lassen. Die Frage im entsprechenden Bugreport an das Komitee lautet: »Sollten Maintainer in der Lage sein, Änderungen der Init-Kompatibilität zu blockieren?«

    Vernon möchte damit nicht nur das Init-Script in NetworkManager zurück an seinen Platz, sondern generell eine Entscheidung, die verhindert, dass Maintainer Debians Init-Freiheit behindern, es sei denn, der Grund ist ein kaputtes Paket. Vernon wünscht sich eine Entscheidung, die sich bereits auf Debian 11 »Bullseye« auswirkt.

  • Plasma 5.21 erhält neue Startoption

    Plasma 5.21 erhält neue Startoption

    KDE Plasma 5.21

    Wie bereits im News-Rückblick von Montag kurz erwähnt, wird der Plasma Desktop von KDE eine alternative, systemd-basierte Startmethode erhalten. Das »Wie« und »Warum« erläutert KDE-Entwickler David Edmundson, der seit 2018 an diesem Projekt arbeitet, jetzt ausführlich in einem Blogeintrag.

    Plasma-Start per Boot-script

    Bisher wird der Start einer Plasma-Desktop-Sitzung von Boot-Scripten gesteuert. Dabei müssen viele Dienste in einer vorgegebenen Reihenfolge gestartet werden. Das funktioniert zwar ganz gut, aber trotzdem gibt es damit noch Probleme. Ein klassisches Problem sind dabei Dienste, die mit anderen Diensten sprechen, die sowohl aufgesetzt als auch vollständig initialisiert werden müssen, bevor der andere eine Nachricht senden kann. Die DBus-Aktivierung löst hierbei einige der Probleme, aber nicht alle.

    Unsauberes Herunterfahren

    Dabei ist der Start aber nur die halbe Miete. Derzeit gibt es ein großes Problem mit dem Abschalten der involvierten Dienste. Wer ist verantwortlich für das geordnete Herunterfahren der Dienste? Viele Dienste verschwinden einfach deshalb, weil ihre Wayland-Verbindung gekappt wird. Wenn es um Dienste geht, die während der Dauer der Sitzung möglicherweise wieder in Betrieb genommen werden, ist diese Lösung alles andere als trivial, und die derzeitige Situation ist grundlegend kaputt.

    Systemd to the Rescue

    Da die Lösung von Problemen dieser Art die angestammte Domäne von Systemd ist, setzte Edmundson den Start und Stop von Plasma alternativ auf der Basis von Systemd um. Mit Plasma 5.21 wird diese Möglichkeit verfügbar, bleibt aber vorerst standardmäßig abgeschaltet. Davon unbeeinflusst können Systeme, die ohne Systemd arbeiten, weiterhin die altbewährte Startmethode per Bootscript nutzen.

    Individuell konfigurierbar

    Der Nutzen geht aber über den einer reinen Alternative zum Start von Plasma hinaus. Der Kern der Plasma-aktivierung ist hart kodiert und lässt somit wenig Spielraum für individuelle Konfigurationen. Es verhindert bereits so einfache dinge wie den Ablauf eines Scripts bei jedem Neustart von Plasmashell. Systemd bietet diese und weitere Möglichkeiten, ohne dazu weiteren code zu benötigen.

    CGroups und besseres Logging

    Edmundson geht detailliert auf die Verwendung von CGroups zur Ressourcenkontrolle und dem verbesserten Logging unter Systemd ein. Die Grundlagen befinden sich laut Edmundson an einem Punkt, den er als stabil und funktionsfähig ansieht. Noch sind aber nicht alle potenziellen zusätzlichen Funktionen aktiviert, die zur Verfügung stehen. Deshalb würde er sich über Feedback aus der Community freuen.

    Zum Aktivieren wird der letzte aktuelle Master von Plasma benötigt, die Beta von 5.20 reicht hierzu nicht aus. Zusätzlich muss Systemd 246 installiert sein. Mit der Developer-Edition von KDE Neon sollte es klappen, wenn man Systemd 246 nachinstalliert. Zum Aktivieren dient der Befehl:

    Zur Kontrolle, ob der Start über Systemd lief, dient:

    Dabei sollte der Dienst als aktiv angezeigt werden.

  • Systemd-oomd räumt den Speicher auf

    Bild: Digital Ocean | Lizenz: CC BY-NC-SA 4.0

    Das Kürzel OOM steht für Out-of-Memory und beschreibt eine Situation, in der dem System der Arbeitsspeicher ausgeht. Dann wird zunächst, soweit vorhanden, der viel langsamere Swap belegt. Ist dieser nicht vorhanden oder bereits voll belegt, verlangsamt sich das System immer mehr, bis ein Arbeiten fast nicht mehr möglich ist.

    Kernel reagiert erst spät

    An diesem Punkt greift recht spät der im Kernel eingebaute OOM-Killer ein und beendet gewaltsam einen oder mehrere Prozesse, um Speicher freizugeben. Eine solche Situation ist nicht unbedingt die Folge von zu wenig RAM, sondern kann unter anderem auch durch Speicherlecks verursacht werden.

    OOMD als Open Source

    Facebook hat für seine Server ein Werkzeug entwickelt, um solche Situationen besser zu handhaben als dies der OOM-Killer im Kernel zu leisten vermag. Vor allem kritisierte Facebook das der Kernel oft zu spät reagiert. Vor zwei Jahren hat Facebook seinen OOM-Daemon als Open Source freigegeben.

    War dieser zunächst auf Server zugeschnitten, so hat Facebook den OOMD seither auch für Desktops angepasst. Distributionen wie etwa Fedora 32 oder Clear Linux haben zudem in letzter Zeit die User-Space-Variante EarlyOOM paketiert und aktiviert, um schneller Speicher freizugeben als dies der Kernel tut.

    Systemd-oomd angekündigt

    Zum Jahresbeginn erklärte dann Systemd-Entwickler Lennart Poettering, dass er mit Facebook zusammenarbeite, um deren Lösung in Systemd zu integrieren. Derzeit steht zwar erst Systemd 246 zur baldigen Veröffentlichung an, aber danach soll der Code zu systemd-oomd eingebracht werden, um genug Zeit zum Testen bis zur geplanten Veröffentlichung mit Systemd 247 zu haben. Derzeit fehlt noch die Möglichkeit für den Anwender, einen Schwellenwert zu definieren.

    Fedora zeigt bereits Interesse

    Das Verhalten soll künftig über die Konfigurationsdatei oomd.conf gesteuert werden. Systemd-oomd überwacht den Speicherbedarf von Cgroups und greift bei Bedarf mit dem Abschießen von Prozessen ein. Fedora hat bereits Interesse an der Verwendung von systemd-oomd geäußert, sobald es offiziell verfügbar ist.

  • NFS-Freigaben per Systemd einbinden

    Bild: share | By airpix | Lizenz: CC BY 2.0

    Ich habe gerade einen neuen Rechner in Betrieb genommen. Beim alten PC wurden die Freigaben per autofs automatisch eingebunden, da das Einbinden per fstab mit Nachteilen verbunden sein kann. Leider ist es mir nicht gelungen, die Konfiguration des alten Rechners auf die der neuen Box anzupassen.

    Systemd to the Rescue

    Nach Stunden des Probierens suchte ich nach Alternativen und entschloss mich, Systemd-Mounts zu testen. Und siehe da, nach 10 Minuten war der erste Share da und erschien auch im Dateimanager Dolphin. Um dahin zu kommen, mussten lediglich zwei einfache Systemd-Units erstellt werden. Als Vorgabe muss lediglich das Paket nfs-common installiert sein.

    Units erstellen

    Die Units bei Systemd unterscheiden sich nicht sehr von den Service-Files, die vermutlich jeder Linux-Nutzer schon mal gesehen hat. Die erste Unit endet auf .mount, die zweite auf .automount. Bei mir sehen diese wie folgt aus:

    [Unit]
    Description=Mount NFS Share

    [Mount]
    What=192.168.XXX.YY:/Music
    Where=/media/ft/nas
    Type=nfs
    Options=soft,async

    Eigentlich ist es selbsterklärend. Description ist lediglich beschreibend. Der Eintrag hinter What verweist auf die Adresse und die Freigabe, das Where legt fest, wohin gemounted wird. Der Typ ist bei mir NFS, könnte aber auch Cifs sein. Die benötigten Optionen kann man sich im NFS-Howto zusammenstellen.

    Die zweite Unit mit der Endung .automount macht genau was der Name besagt: Sie liest die soeben beschriebene .mount und hängt die dort benannte Freigabe ein:

    [Unit]
    Description=Automount NFS-Share
    Requires=NetworkManager.service
    After=network-online.target
    Wants=network-online.target

    [Automount]
    Where=/media/ft/nas
    TimeoutIdleSec=10min

    [Install]
    WantedBy=multi-user.target

    Auch hier wieder die Beschreibung an erster Stelle. Die zweite Zeile legt fest, dass die Datei NetworkManager.service benötigt wird. Der Automounter soll dann die Freigaben einhängen, nachdem das Netzwerk steht. TimeoutIdle legt fest, dass die Freigabe ohne Aktivität nach der angegebenen Zeit wieder ausgehängt wird. Die Install-Anweisung besagt, in welchem Runlevel die Unit gestartet werden soll. Ich habe hier das Multi-User-Runlevel gewählt.

    Nomen est Omen

    Was die Namen der beiden Units angeht, so werden sie aus dem Pfad des Einhängepunkts gebildet, indem / gegen ausgetauscht wird. Aus media/ft/nas wird media-ft-nas.mount bzw. media-ft-nas.automount. Bei längeren Namen kann man sich auch des Befehls sudo systemd escape [mountpoint] bedienen.

    Verschieben und aktivieren

    Die solchermaßen benannten Dateien werden nach /etc/systemd/system verschoben. Jetzt fehlen noch zwei Befehle um die Automount-Unit jetzt und künftig beim Booten zu starten:

    systemctl start media-ft-nas.automount

    systemctl enable media-ft-nas.automount

    Der Zustand kann mit systemctl status media-ft-nas.automount kontrolliert werden und liefert im Erfolgsfall beispielsweise zurück:

    ft@blue:/etc/systemd/system$ systemctl status media-ft-nas.automount
    media-ft-nas.automount - Automount /media/ft/nas
        Loaded: loaded (/etc/systemd/system/media-ft-nas.automount; enabled; vendor preset: enabled)
        Active: active (waiting) since Sun 2019-12-22 12:45:52 CET; 2h 57min ago
      Triggers: ● media-ft-nas.mount
         Where: /media/ft/nas

    Das wars auch schon. Sollte etwas nicht funktionieren, kann man als erstes testen, welche Freigaben überhaupt vorhanden sind. Das geht mittels:

    sudo showmount -e 192.168.XXX.YY

    Der einzige Nachteil, der ins Auge springt, ist, dass für jede Freigabe eigene Units angelegt werden müssen. Aber die müsste man in der fstab auch einzeln eintragen. Und man muss es ja nur einmal machen. Falls jemand hier eine Abkürzung kennt, ich bin ganz Ohr.

  • Debian vor Urabstimmung über Init-Systeme

    Debian vor Urabstimmung über Init-Systeme

    Im Debian-Projekt tritt keine Ruhe ein, wenn es um Init-Systeme geht. 2014 entschied der Technische Ausschuss als letzte Instanz nach andauernden heftigen Debatten, dass fortan Systemd als Standard-Init-System bei Debian verwendet wird. Jetzt sind nach wiederum anhaltenden Diskussionen die Debian-Entwickler zu einer Urabstimmung aufgerufen, die die Frage klären soll, wie sich Debian künftig zu alternativen Init-Systemen stellt. Bei Debian heißt eine solche Urabstimmung General Resolution (GR).

    Systemd und kein Ende

    Dazu hat der derzeitige Debian-Projektleiter (DPL) Sam Hartman aus den Diskussionen drei Vorschläge erarbeitet, die von anderen Entwicklern mittlerweile auf sieben Vorschläge erweitert wurden. Die darin vorgeschlagenen Richtlinien reichen von »strikt nur noch Systemd« über »auch andere Init-Systeme, wenn sie nicht ausbremsen« bis zu »zwingend auch andere Init-Systeme«.

    Urabstimmung über Init-Systeme

    Hartman möchte die Entscheidung hinter sich bringen, da solche Diskussionen dazu tendieren, das Projekt zu lähmen. Er hielt lediglich die Mindestdiskussionszeit ein, die Abstimmung beginnt am 7.12 und endet am 27.12. Wegen der Komplexität der Vorschläge wurde die Wahlperiode von den üblichen zwei auf drei Wochen verlängert.

    Verschiedene Positionen

    Die Vorschläge, die auf dem Stimmzettel auftauchen sind von 1–7 durchnummeriert, wobei DPL Hartman seinen dritten Vorschlag zurückgezogen hat, da die Aussage in anderen Vorschlägen bereits aufgeführt war. Sie stellen die verschiedenen Positionen dar, die sich in der Diskussion auf der Mailingliste herauskristallisiert haben.

    Die Vorschläge

    Vorschlag 1 stammt von Martin Michlmayr, der die Fokussierung auf Systemd festschreiben möchte und es damit Paketen ermöglicht, ausschließlich Systemd-Funktionen zu nutzen. Alternative Systeme sind willkommen, sollten aber die Entwicklung nicht aufhalten.

    Vorschlag 2 wurde von Hartman formuliert und ist mit »Systemd, aber wir unterstützen die Suche nach Alternativen« überschrieben. Debian würde damit anerkennen, dass Systemd-Service-Einheiten die bevorzugte Konfiguration sind, um zu beschreiben, wie man einen Daemon oder Dienst startet. Debian bleibt damit jedoch weiterhin eine Umgebung, in der Entwickler und Benutzer alternative Init-Systeme und Alternativen zu Systemfunktionen erforschen und entwickeln können. Zudem betont der Vorschlag das Bekenntnis Debians zur Zusammenarbeit mit Derivaten, die unterschiedliche Entscheidungen über Init-Systeme treffen.

    Vorschlag 3 ist mit »Unterstützung mehrerer Init-Systeme ist wichtig« überschrieben und besagt, alle Pakete müssen auch ohne Systemd funktionieren, sofern der Entwickler sie nicht ausdrücklich auf Systemd beschränkt hat. Steht ein Paket nicht für mehrere Init-System bereit, wäre das ein Fehler, der mit importantzu klassifizieren wäre.

    Vorschlag 4 stammt von Debian-Urgestein Ian Jackson und mit »Unterstützung von nicht Systemd-gebundenen Systemen, ohne den Fortschritt zu blockieren«. Der sehr ausführliche Vorschlag sieht vor, dass Pakete auf nicht Systemd-gebundenen Installationen funktionieren, aber ein Fehlverhalten gilt nicht als veröffentlichungskritischer Fehler – es sei denn, es gibt die notwendige Unterstützung, wurde aber vom Paketbetreuer nicht aktiviert. Die Verwendung von Systemd-spezifischen Funktionen ist nur zulässig, wenn diese Funktionen dokumentiert sind und alternative Implementierungen realisierbar sind.

    Vorschlag 5 von Dmitry Bogatov lässt bereits in der Überschrift erkennen, dass Bogatov unterschiedliche Init-Systeme als verbindlich festgeschrieben sehen möchte. Nach seiner Ansicht muss jedes Paket auch mit Init-Alternativen zu Systemd funktionieren.

    Vorschlag 6 stammt von Guillem Jover und ist mit »Unterstützt Portabilität und mehrere Implementierungen« überschrieben. Dieser Vorschlag bleibt vage und sagt lediglich, dass Hard- und Software wichtig sind, aber keine spezifischen Hinweise darauf gibt, was das für die Projektpolitik bedeuten würde. Option 7 steht bisher noch nicht auf der Webseite, stammt wiederum von Ian Jackson, der darin die Vorschläge 4 und 6 zusammenfasst und weiter ausarbeitet.

    Stimmberechtigt

    Alle rund 1.000 offiziellen Debian-Entwickler sind stimmberechtigt und können sich für einen der Vorschläge entscheiden oder dafür stimmen, das Problem zurück an den Diskussionstisch zu schicken. Da mittlerweile viele Entwickler von der anstrengenden Diskussion genervt sind, wird es aber vermutlich zu einer Entscheidung kommen, die dann in die Richtlinien der Debian Policy einfließen.

  • Gentoo: GNOME ohne Systemd

    Lizenz: GPL

    Das Gentoo-Projekt gab in dieser Woche bekannt, dass es gelungen sei, GNOME 3.30 für alle Init-Systeme anzubieten und nicht nur für Systemd. Die im Testing-Zweig der Distribution verfügbare Umsetzung booted standardmäßig mit OpenRC anstatt Systemd.

    Elogind

    Dies wird durch das elogind-Projekt erreicht, eine eigenständige Logind-Implementierung auf Basis von Systemd-Code, die derzeit von einem Gentoo-Nutzer gepflegt wird. Es stellt die fehlenden Logind-Schnittstellen zur Verfügung, die GNOME derzeit benötigt, ohne dabei mit Systemd zu booten.

    Per USE-Flags auswählen

    Für eine einfachere GNOME-Installation richten die GNOME-Profile nun standardmäßige USE-Flags (PDF) mit elogind für OpenRC-Systeme ein, während die GNOME/Systemd-Profile weiterhin zur Verfügung stehen. Nach der Profilauswahl sollte die Installation per emerge gnome mit dem gewünschten Init-System gelingen.

    Noch nicht stabil

    Es wird erwartet, dass GNOME 3.32 bald auch im Testing-Zweig verfügbar sein wird. Innerhalb von 6 – 8 Wochen soll die neue Option dann auch für Anwender des stabilen Zweigs verfügbar sein. Fehler können in Gentoos Bugzilla gemeldet werden.

    Offenes Gentoo

    Gentoo war seit der Einführung von Systemd bemüht, Alternativen bereitzustellen. Nachdem Udev an Systemd angebunden wurde, forkten Gentoo-Entwickler das Paket zu eudev, das wie elogind unter anderem auch beim Debian-Derivat Devuan verwendet wird.

    Viel Auswahl

    Systemd ist zwar von allen großen Distributionen übernommen worden, ist aber auch Jahre nach der Einführung nicht unumstritten. Allerdings ist die Diskussion darüber heute meist sachlicher als etwa bei der Einführung von Systemd bei Debian. Damals hatten militante Trolle jeglicher Sachlichkeit den Garaus gemacht. Anwender, die Systemd auf ihren Rechnern nicht haben möchten, können auf eine mittlerweile stattliche Zahl an Distributionen ohne Systemd ausweichen.