systemd in postmarketOS
Recently developers of the postmarketOS project, announced through a blog post the news of the introduction of systemd to system builds. The primary reason to implement systemd support is the difficulty of maintaining an initialization stack based on OpenRC facing the growing dependence on GNOME and KDE of systemd components.
The availability of using systemd as a system administrator comes after a year of work and a prototype setup using systemd instead of the OpenRC initialization system has been prepared and made available for testing.
It is mentioned that Despite the addition of systemd, support will continue to be provided for creating builds based on OpenRC in postmarketOS, at least as long as this system continues to be used in Alpine Linux. The option to select OpenRC will be available when creating postmarketOS images using pmbootstrap. Additionally, OpenRC will continue to be used by assembly developers working with the Sxmo (Simple X Mobile) graphical shell, based on the Sway composite manager.
Furthermore, the builds with systemd will still be based on the base Alpine Linux package, despite the fact that this distribution does not have official support for systemd and uses the Musl C library instead of Glibc C, which is compatible with systemd. PostmarketOS developers are implementing additional patches to integrate systemd with Musl C and plan to collaborate with systemd developers to simplify this integration in the future.
Of course, this is not an easy task, one of the main obstacles we encounter as we collaborate more closely with KDE and GNOME developers is that they have difficulties with our OpenRC-based stack. To make KDE and GNOME work, we use many systemd polyfills in addition to OpenRC. So, although technically "we don't use systemd", in practice we already use a large part of its components to run KDE and GNOME, just different versions of those components
To ensure the functionality of GNOME and KDE based on systemd, several additional layers were required to be maintained, and working without systemd meant maintaining these layers properly and synchronizing them with GNOME and KDE development, which posed significant challenges and some uncertainty in ongoing maintenance by the developers.
In addition to this, the developers mention that Various layers and packages were implemented to ensure support for hostname, localized, and timestamp services in postmarketOS. Its Tor included the use of openrc-settingsd for support for hostname services, eudev instead of udev for device management, elogind instead of logind for user session management, and logbookd instead of journal for log management and the superd package was used to provide functionality similar to «systemd –user» and replace systemd.timer to waked.
However, proper maintenance and support is only guaranteed for openrc-settingsd and eudev. Projects like elogind, logbookd and superd still require improvements, as they lack some necessary features, and waked It hasn't been serviced for about a year. Additionally, KDE Plasma Mobile developers expressed interest in using systemd-coredumpd to simplify debugging, but replacing it, corecollector, It has not received maintenance since 2020.
These services are required for various functions in GNOME and other applications. For example, the D-Bus API provided by hostnamed, localed and timedated It is used in GNOME to change regional and time zone settings. Udev is required to manage connected devices, while logind, “systemd –user» and journald are used to manage user sessions in gnome-session. GNOME Clock uses systemd.timer for its functionalities.
En terms of new features that can be implemented with systemd-based builds, including granular privilege management, use of advanced features to ensure security and manage dependencies between services, full integration with cgroups, socket activation to start services as needed (e.g. example, CUPS can be started only by accessing the network port), and the availability of built-in tools to analyze the boot process.
finally if you are interested in knowing more about it, you can check the details in the following link.