Die Entwickler des Projekts postmarketOS, das eine Linux-Distribution fĂŒr Smartphones entwickelt, die auf der Paketbasis von Alpine Linux, der standardmĂ€Ăigen C-Bibliothek Musl und einer Reihe von BusyBox-Dienstprogrammen basiert, haben die Möglichkeit bekannt gegeben, den Systemmanager systemd zu verwenden. Nach etwa einjĂ€hriger Arbeit an der Implementierung der UnterstĂŒtzung fĂŒr systemd steht nun ein Prototyp der Build-Version zum Testen zur VerfĂŒgung, bei der anstelle des Init-Systems OpenRC systemd eingesetzt wird.
Die UnterstĂŒtzung fĂŒr die Erstellung von Builds auf der Basis von OpenRC bleibt erhalten, zumindest solange dieses System in Alpine Linux verwendet wird. Bei der Erstellung von postmarketOS-Images besteht weiterhin die Möglichkeit, OpenRC in pmbootstrap auszuwĂ€hlen. Unter anderem werden die Entwickler von Builds mit der grafischen BenutzeroberflĂ€che Sxmo (Simple X Mobile), die auf dem Kompositionsmanager Sway basiert, OpenRC weiterhin nutzen.
Die Systemd-Bauten werden wie gehabt auf der Paketbasis von Alpine Linux erstellt, obwohl diese Distribution Systemd nicht unterstĂŒtzt und die C-Bibliothek Musl verwendet. Systemd unterstĂŒtzt offiziell nur die C-Bibliothek Glibc, und die Entwickler von postmarketOS mĂŒssen zusĂ€tzliche Patches verwenden, die sie im Laufe der Zeit in den Hauptteil von Systemd integrieren möchten (in Zusammenarbeit mit den Entwicklern von Systemd wird an der Vereinfachung der Integration gearbeitet).
Als Grund fĂŒr die Implementierung der UnterstĂŒtzung von Systemd wird die KomplexitĂ€t der Wartung des Init-Stacks auf Basis von OpenRC inmitten der stĂ€ndig wachsenden AbhĂ€ngigkeit von GNOME und KDE von Komponenten von Systemd genannt. Um die FunktionalitĂ€t von GNOME und KDE, die auf Systemd angewiesen ist, sicherzustellen, mussten verschiedene Trennschichten verwendet werden, und der Preis fĂŒr die Arbeit ohne Systemd war die Notwendigkeit, diese Trennschichten in gutem Zustand zu halten und mit der Entwicklung von GNOME und KDE in Einklang zu bringen, obwohl in den Trennschichten einige erforderliche Funktionen fehlten und die Fortsetzung der UnterstĂŒtzung durch die Entwickler unvorhersehbar war.
Zum Beispiel wurde fĂŒr die KompatibilitĂ€t mit den Diensten hostnamed, localed und timedated die Schicht openrc-settingsd verwendet, anstelle von udev kam das Paket eudev zum Einsatz, anstelle von logind wurde elogind verwendet, und fĂŒr journald wurde logbookd eingesetzt. Um die FunktionalitĂ€t von «systemd --user» zu gewĂ€hrleisten, wurde das Paket superd verwendet, wĂ€hrend waked als Ersatz fĂŒr systemd.timer diente.

Von den verwendeten Schichten wird die notwendige Begleitung und der unterstĂŒtzte Funktionsumfang nur in openrc-settingsd und eudev sichergestellt. Die Projekte elogind, logbookd und superd erhalten weiterhin UnterstĂŒtzung, benötigen jedoch ErgĂ€nzungen, da ihnen einige notwendige Funktionen fehlen, wĂ€hrend waked seit etwa einem Jahr ohne UnterstĂŒtzung bleibt. DarĂŒber hinaus möchten die Entwickler von KDE Plasma Mobile den Dienst systemd-coredumpd zur Vereinfachung des Debuggens verwenden, doch seine Alternative corecollector wird seit 2020 nicht mehr betreut.
Was die Notwendigkeit der Nutzung dieser Dienste betrifft, so werden die D-Bus-APIs, die von hostnamed, localed und timedated bereitgestellt werden, in GNOME verwendet, um Locale, Systemeinstellungen und Zeitzonen zu Ă€ndern; udev ist notwendig, um angeschlossene GerĂ€te zu verwalten; logind, âsystemd --userâ und journald werden verwendet, um Benutzersitzungen in gnome-session zu verwalten; systemd.timer wird in GNOME Clock verwendet.
Zu den neuen Funktionen, die in den Systemd-basierten Builds implementiert werden können, gehören granular gesteuertes Privilegienmanagement, die Nutzung erweiterter Funktionen zur SicherheitsgewÀhrleistung und AbhÀngigkeitsverwaltung zwischen Diensten, vollstÀndige Integration mit cgroups, Verwendung von socket-basierter Aktivierung (zum Beispiel kann CUPS nur bei Zugriff auf den Netzwerkport gestartet werden) und integrierte Werkzeuge zur Analyse des Boot-Prozesses.
Quelle: opennet.ru
