Benjamin Berg (), ein Ingenieur bei Red Hat, der an der Entwicklung von GNOME arbeitet, die Ergebnisse der Arbeit zur Übersetzung von GNOME in ein reines systemd-Session-Management ohne den Einsatz des Prozesses gnome-session.
Für das Management der Anmeldung in GNOME wird bereits seit langer Zeit , das die Sitzungszustände benutzerspezifisch verfolgt, die Sitzungs-IDs verwaltet, den Wechsel zwischen aktiven Sitzungen steuert, Mehrbenutzerumgebungen (Multi-seat) koordiniert, Zugriffsrichtlinien für Geräte konfiguriert, Mittel zum Herunterfahren und in den Standby-Modus bereitstellt usw.
Ein Teil der mit Sitzungen verbundenen Funktionalität blieb jedoch auf den Schultern des Prozesses gnome-session, der für das Management über D-Bus, den Start des Display Managers und der GNOME-Komponenten sowie die Organisation des Autostarts durch den Benutzer angelegt war. Im Verlauf der Entwicklung von GNOME 3.34 wurden spezifische gnome-session Funktionen in Form von Unit-Dateien für systemd implementiert, die im Modus „systemd --user“ ausgeführt werden, d.h. im Kontext der Umgebung eines bestimmten Benutzers und nicht des gesamten Systems. Die Änderungen sind bereits in der Distribution Fedora 31 angewendet worden, deren Veröffentlichung Ende Oktober erwartet wird.
Die Verwendung von systemd ermöglicht es, Handler on-demand oder bei bestimmten Ereignissen zu starten und präziser auf vorzeitige Prozessabschlüsse aufgrund von Fehlern zu reagieren und Abhängigkeiten beim Start von GNOME-Komponenten ausgiebig zu handhaben. Infolgedessen kann die Anzahl der ständig laufenden Prozesse reduziert und der Speicherverbrauch gesenkt werden. Beispielsweise kann XWayland nun nur dann gestartet werden, wenn eine Anwendung auf Basis des X11-Protokolls ausgeführt wird, und komponentenspezifische Routinen nur bei Vorhandensein entsprechender Hardware (z.B. werden Treiber für Smartcards beim Einstecken der Karte gestartet und beim Herausziehen beendet).
Für Benutzer stehen nun flexiblere Werkzeuge zur Verfügung, um den Start von Diensten zu verwalten. Zum Beispiel reicht es aus, «systemctl —user stop gsd-media-keys.target» auszuführen, um den Multimedia-Tastenhandler zu deaktivieren. Bei Problemen können die Protokolle jedes Handlers mit dem Befehl journalctl (zum Beispiel «journalctl —user -u gsd-media-keys.service») angesehen werden, nachdem das Protokollieren im Dienst aktiviert wurde («Environment=G_MESSAGES_DEBUG=all»). Außerdem gibt es die Möglichkeit, alle GNOME-Komponenten in isolierten Sandbox-Umgebungen zu starten, die hohe Sicherheitsanforderungen stellen.
Um den Übergang zu erleichtern, wird die Unterstützung der alten Methode zum Starten von Prozessen über mehrere Entwicklungszyklen von GNOME hinweg beibehalten. Die Entwickler werden anschließend den Zustand von gnome-session überprüfen und höchstwahrscheinlich (als «likely» markiert) die Mittel zum Starten von Prozessen sowie die Unterstützung des D-Bus-APIs entfernen. Dann wird die Anwendung von «systemd —user» zu einer verpflichtenden Funktion erhoben, was Schwierigkeiten für Systeme ohne systemd schaffen könnte und eine Vorbereitung alternativer Lösungen erfordert, ähnlich wie es zuvor der Fall war. . Dennoch erwähnte Benjamin Berg bei seinem Vortrag auf der GUADEC 2019 die Absicht, die Unterstützung der alten Methode für Systeme ohne systemd beizubehalten, jedoch steht diese Information im Widerspruch zu den Plänen für .

Quelle: opennet.ru
