Логотип

Systemd представляет экспериментальную поддержку musl

Systemd представляет экспериментальную поддержку musl

Systemd объединил экспериментальную поддержку musl libc (https://musl.libc.org/), реализации стандартной библиотеки C, построенной на основе API системных вызовов Linux, что знаменует собой заметный сдвиг в области совместимости в среде Linux. Если вам интересно, почему это так важно, позвольте мне объяснить.

В течение многих лет systemd и musl существовали отдельно друг от друга: для systemd требовалась glibc, а дистрибутивы на базе musl использовали альтернативные системы инициализации и менеджеры служб.

Другими словами, дистрибутивы, использующие musl libc, не могли работать с systemd без обширных доработок — или вообще не могли. Таким образом, все дистрибутивы на базе musl фактически не использовали systemd (они использовали OpenRC, s6, runit, dinit и т. д.).

Однако с этим изменением ситуация может измениться. Теперь Systemd успешно компилируется с musl в вышестоящем CI благодаря тому, что в проект включён необходимый код для обеспечения совместимости.

Ю Ватанабэ, старший инженер-программист Red Hat и разработчик systemd, прокомментировал:

«Я продолжу и объединю это. Всё это кажется довольно хрупким, поэтому я немного беспокоюсь, что возникнут проблемы с поддержкой. Но единственный способ проверить это — объединить и дать людям возможность поиграть с этим».

Я потратил некоторое время на локальную сборку с musl в Fedora, и эта часть работает достаточно хорошо. Но я не смог запустить тесты без контейнера. Это немного раздражает — нам действительно нужен простой локальный рабочий процесс для разработки. Но, по крайней мере, компиляция работает, так что, возможно, всё не так плохо.

Компиляция и модульные тесты проходят в CI, и на данный момент этого достаточно.

 

Читать  TC Debian отменяет правила, установленные разработчиками systemd для разрешений /var/lock.avif

Как мы уже упоминали ранее, эта разработка может иметь непосредственное влияние на дистрибутивы, созданные на базе musl. Alpine Linux, Chimera Linux, postmarketOS и другие облегчённые или встраиваемые системы могут (в конечном счёте) начать экспериментировать с компонентами systemd.

И хотя ни один из этих проектов не объявил о планах по внедрению этой технологии — и, скорее всего, не объявит, — поддержка со стороны разработчиков устраняет давний барьер, который ранее делал эти эксперименты нецелесообразными.

Это изменение также важно для разработчиков, ориентированных на мобильные устройства, интернет вещей или платформы, ориентированные на контейнеры. Musl предлагает небольшую и предсказуемую библиотеку C, а systemd — полный набор сервисов, ведение журналов, контрольные группы и сетевые компоненты. Возможность объединить эти два компонента расширяет спектр конфигураций, доступных для специализированных устройств и минимальных облачных образов.

На данном этапе разработчики systemd считают поддержку нестабильной и ожидают, что проблемы будут возникать по мере того, как всё больше пользователей будут тестировать эту функцию. Однако интеграция musl в систему непрерывной интеграции проекта гарантирует, что будущие регрессии будут заметны разработчикам, а не оставлены на усмотрение тех, кто занимается исправлениями. Таким образом, musl впервые становится важным элементом процесса сборки systemd.

Для получения дополнительной информации см. PR на GitHub.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала