Проект postmarketOS представил сборки на базе systemd

Разработчики проекта postmarketOS, развивающего дистрибутив Linux для смартфонов, базирующийся на пакетной базе Alpine Linux, стандартной Си-библиотеке Musl и наборе утилит BusyBox, объявили о предоставлении возможности использования системного менеджера systemd. В результате работы по реализации поддержки systemd, которая велась около года, подготовлен и доступен для тестирования прототип сборки, в которой вместо системы инициализации OpenRC задействован systemd.

Поддержка создания сборок на базе OpenRC будет сохранена, по крайней мере до тех пор, пока данная система используется в Alpine Linux — при сборке образов postmarketOS оставлена возможность выбора OpenRC в pmbootstrap. Среди прочего, OpenRC планируют продолжить использовать разработчики сборок с графической оболочкой Sxmo (Simple X Mobile), основанная на композитном менеджере Sway.

Cборки с systemd как и раньше будут формироваться на пакетной базе Alpine Linux, несмотря на то, что данный дистрибутив не поддерживает systemd и использует Си-библиотеку Musl. Systemd официально поддерживает только Си-библиотеку Glibc и разработчикам postmarketOS приходится использовать дополнительные патчи, которые со временем планируют интегрировать в основной состав systemd (совместно с разработчиками systemd ведётся работа по упрощению интеграции).

В качестве причины реализации поддержки systemd называется сложность сопровождения стека инициализации на базе OpenRC в условиях постоянно растущей зависимости GNOME и KDE от компонентов systemd. Для обеспечения работы возможностей GNOME и KDE, завязанных на systemd, приходилось использовать различные прослойки, и ценой работы без systemd была необходимость поддержания в должном виде данных прослоек и синхронизации с разработкой GNOME и KDE, в условиях отсутствия в прослойках некоторых необходимых функций и непредсказуемости продолжения сопровождения разработчиками.

Например, для совместимости с сервисами hostnamed, localed и timedated применялась прослойка openrc-settingsd, вместо udev был задействован пакет eudev, вместо logind — elogind, вместо journald — logbookd, для обеспечения функциональности «systemd —user» применялся пакет superd, а в качестве замены systemd.timer использовался waked.

Из используемых прослоек должное сопровождение и уровень поддержки необходимой функциональности обеспечен только в openrc-settingsd и eudev. Проекты elogind, logbookd и superd продолжают сопровождаться, но требуют доработки, так как в них отсутствуют некоторые необходимые возможности, а waked около года остаётся без сопровождения. Кроме того, разработчики KDE Plasma Mobile хотели бы использовать для упрощения отладки сервис systemd-coredumpd, но его замена corecollector остаётся без сопровождения с 2020 года.

Что касается, необходимости использования данных сервисов, то D-Bus API, предоставляемые hostnamed, localed и timedated, применяются в GNOME для изменения локалей, параметров системы и часовых поясов; udev необходим для управления подключаемыми устройствами; logind, «systemd —user» и journald задействованы при управлении сеансами пользователей в gnome-session; systemd.timer используется в GNOME Clock.

Из новых возможностей, которые можно будет реализовать в сборках на базе systemd, отмечается гранулированное управление привилегиями, задействование расширенных возможностей для обеспечения безопасности и управления зависимостями между сервисами, полноценная интеграция с cgroups, использование активации по сокету (например, CUPS можно запускать только при обращении к сетевому порту), наличие встроенных инструментов для анализа процесса загрузки.

Источник: http://www.opennet.ru/opennews/art.shtml?num=60737