systemd in postmarketOS
Vor kurzem die Entwickler des PostmarketOS-Projekts, angekündigt durch einen Blogpost die Neuigkeiten von die Einführung von systemd zu System-Builds. Der Hauptgrund um systemd-Unterstützung zu implementieren ist die Schwierigkeit der Aufrechterhaltung ein Initialisierungsstapel basierend auf OpenRC steht vor der wachsenden Abhängigkeit von GNOME und KDE von Systemd-Komponenten.
Die Möglichkeit, systemd als Systemadministrator zu verwenden, ist nach einem Jahr Arbeit verfügbar und ein Prototyp-Setup mit systemd anstelle des OpenRC-Initialisierungssystems wurde vorbereitet und zum Testen zur Verfügung gestellt.
Es wird das erwähnt Trotz der Hinzufügung von systemd wird weiterhin Support bereitgestellt Erstellen von Builds basierend auf : jh_HLXNUMXlwd_chickenwingboundorgasms_hd.mpXNUMX in postmarketOS, zumindest solange dieses System weiterhin in Alpine Linux verwendet wird. Die Option zur Auswahl von OpenRC ist verfügbar, wenn PostmarketOS-Images mit pmbootstrap erstellt werden. Darüber hinaus wird OpenRC weiterhin von Assembly-Entwicklern verwendet, die mit der grafischen Shell Sxmo (Simple X Mobile) arbeiten, die auf dem Sway Composite Manager basiert.
Ferner die Builds mit systemd basieren weiterhin auf dem Basispaket von Alpine Linux, obwohl diese Distribution keine offizielle Unterstützung für systemd bietet und die Musl-C-Bibliothek anstelle von Glibc C verwendet, das mit systemd kompatibel ist. Die postmarketOS-Entwickler implementieren zusätzliche Patches, um systemd mit Musl C zu integrieren, und planen, mit systemd-Entwicklern zusammenzuarbeiten, um diese Integration in Zukunft zu vereinfachen.
Natürlich ist dies keine leichte Aufgabe. Eines der Haupthindernisse, auf die wir bei unserer engeren Zusammenarbeit mit KDE- und GNOME-Entwicklern stoßen, besteht darin, dass sie Schwierigkeiten mit unserem OpenRC-basierten Stack haben. Damit KDE und GNOME funktionieren, verwenden wir zusätzlich zu OpenRC viele systemd-Polyfills. Obwohl wir also technisch gesehen „systemd nicht verwenden“, verwenden wir in der Praxis bereits einen großen Teil seiner Komponenten, um KDE und GNOME auszuführen, nur unterschiedliche Versionen dieser Komponenten
Um die Funktionalität von GNOME und KDE sicherzustellen Basierend auf systemd mussten mehrere zusätzliche Schichten verwaltet werden, und ohne systemd zu arbeiten bedeutete, diese Schichten ordnungsgemäß zu verwalten und mit der GNOME- und KDE-Entwicklung zu synchronisieren, was erhebliche Herausforderungen und einige Unsicherheiten bei der laufenden Wartung durch die Entwickler mit sich brachte.
Darüber hinaus erwähnen die Entwickler dies Es wurden verschiedene Schichten und Pakete implementiert um die Unterstützung für Hostnamen-, Lokalisierungs- und Zeitstempeldienste in postmarketOS sicherzustellen. Es ist Toder die Verwendung von openrc-settingsd enthalten für die Unterstützung von Hostnamendiensten, eudev statt udev für die Geräteverwaltung, elogind statt logind für die Benutzersitzungsverwaltung und Logbuch statt Journald für die Protokollverwaltung und das superd-Paket wurde verwendet, um ähnliche Funktionen bereitzustellen wie „systemd –user» und ersetzen systemd.timer mit aufgewacht.
JedochEine ordnungsgemäße Wartung und Unterstützung ist nur für openrc-settingsd und eudev gewährleistet. Projekte wie elogind, logbookd und superd noch Verbesserungen erforderlich, da ihnen einige notwendige Funktionen fehlen, und aufgewacht Es wurde seit etwa einem Jahr nicht mehr gewartet. Darüber hinaus bekundeten die Entwickler von KDE Plasma Mobile Interesse an der Nutzung systemd-coredumpd um das Debuggen zu vereinfachen, aber es zu ersetzen, Kernkollektor, Es wurde seit 2020 nicht mehr gewartet.
Diese Dienste werden für verschiedene Funktionen in GNOME und anderen Anwendungen benötigt. Zum Beispiel die D-Bus-API von mit Hostnamen, Lokalisierung und Zeitangabe Es wird in GNOME verwendet, um regionale und Zeitzoneneinstellungen zu ändern. Udev ist erforderlich, um verbundene Geräte zu verwalten, während logind: „systemd –user» und Journald werden zum Verwalten von Benutzersitzungen in Gnome-Sitzung verwendet. GNOME Clock verwendet systemd.timer für seine Funktionalitäten.
En hinsichtlich neuer Funktionen Dies kann mit systemd-basierten Builds implementiert werden, einschließlich granularer Berechtigungsverwaltung, Verwendung erweiterter Funktionen zur Gewährleistung der Sicherheit und Verwaltung von Abhängigkeiten zwischen Diensten, vollständiger Integration mit cgroups, Socket-Aktivierung zum Starten von Diensten nach Bedarf (z. B. kann CUPS nur von gestartet werden). Zugriff auf den Netzwerkport) und die Verfügbarkeit integrierter Tools zur Analyse des Startvorgangs.
schließlich, wenn Sie sind daran interessiert, mehr darüber zu erfahrenkönnen Sie die Details einchecken den folgenden Link.