The postmarketOS project introduced systemd-based assemblies

The developers of the postmarketOS project, which develops a Linux distribution for smartphones based on the Alpine Linux package base, the standard Musl C library and the BusyBox set of utilities, announced the possibility of using the systemd system manager. As a result of work on implementing systemd support, which was carried out for about a year, a prototype assembly has been prepared and is available for testing, in which systemd is used instead of the OpenRC initialization system.

Support for creating OpenRC-based builds will remain, at least as long as this system is used in Alpine Linux. When building postmarketOS images, the option to select OpenRC in pmbootstrap is left. Among other things, OpenRC plans to continue to be used by developers of assemblies with the Sxmo (Simple X Mobile) graphical shell, based on the Sway composite manager.

Builds with systemd will continue to be built on the Alpine Linux package base, despite the fact that this distribution does not support systemd and uses the Musl C library. Systemd officially supports only the Glibc C library and the postmarketOS developers have to use additional patches, which they plan to integrate into the main systemd over time (work is underway together with the systemd developers to simplify the integration).

The reason for implementing systemd support is the difficulty of maintaining an OpenRC-based initialization stack in the face of the ever-increasing dependence of GNOME and KDE on systemd components. To ensure the functionality of GNOME and KDE based on systemd, it was necessary to use various layers, and the cost of working without systemd was the need to maintain these layers in proper form and synchronize with the development of GNOME and KDE, in the absence of some necessary functions in the layers and the unpredictability of continued maintenance developers.

For example, for compatibility with the hostnamed, localed and timedated services, the openrc-settingsd layer was used, the eudev package was used instead of udev, elogind was used instead of logind, logbookd was used instead of journald, the superd package was used to provide the β€œsystemd -user” functionality, and as a replacement systemd.timer was used by waked.

The postmarketOS project introduced systemd-based assemblies

Of the layers used, proper maintenance and level of support for the required functionality is provided only in openrc-settingsd and eudev. The elogind, logbookd and superd projects continue to be maintained, but require improvements, since they lack some necessary features, and awakened remains unmaintained for about a year. In addition, the KDE Plasma Mobile developers would like to use the systemd-coredumpd service to simplify debugging, but its replacement corecollector remains unmaintained as of 2020.

As for the need to use these services, the D-Bus API provided by hostnamed, localed and timedated are used in GNOME to change locales, system settings and time zones; udev is required to manage connected devices; logind, "systemd --user" and journald are involved in managing user sessions in gnome-session; systemd.timer is used by GNOME Clock.

Among the new features that can be implemented in systemd-based assemblies, there is granular privilege management, the use of advanced features for ensuring security and managing dependencies between services, full integration with cgroups, the use of socket activation (for example, CUPS can be launched only when accessing network port), the presence of built-in tools for analyzing the boot process.

Source: opennet.ru

Add a comment