Оценка плюсов и минусов при переходе Debian на systemd или upstart

Два участника Технического комитета Debian, которому делегировано принятие решения по выбору системы инициализации для будущего выпуска, представили отчёты с анализом целесообразности выбора systemd или upstart. Ян Джексон (Ian Jackson), автор dpkg, в прошлом работавший в компании Canonical, выступил в пользу перехода на upstart. Расс Олбери (Russ Allbery), отвечающий за сопровождение ряда подсистем Debian, попытался доказать необходимость перехода на systemd. Доводы в пользу upstart:

Upstart более прост для портирования на системы, отличные от Linux, в то время как systemd очень жестко завязан на возможностях ядра Linux. Адаптация Upstart для работы в Debian GNU/kFreeBSD и Debian GNU/Hurd выглядит вполне реальной задачей, что нельзя сказать о systemd; Upstart более привычен для разработчиков Debian, многие из которых по совместительству участвуют в разработке Ubuntu. Два члена Технического комитета Debian (Steve Langasek и Colin Watson) входят в состав группы разработчиков Upstart. Upstart проще и легковеснее systemd, как следствие, меньше кода — меньше ошибок; Upstart лучше подходит для интеграции c кодом системных демонов. Политика systemd сводится к тому, что авторы демонов должны подстраиваться под upstream (для замены компонента systemd следует предоставить аналог, совместимый на уровне внешнего интерфейса), вместо того чтобы upstream предоставлял комфортные средства для разработчиков демонов. Upstart проще в плане поддержания и сопровождения пакетов; Сообщество разработчиков Upstart более открыто для совместной работы. В случае systemd придётся принимать методы systemd как должное и следовать им, например, поддерживать отдельный раздел »/usr» или использовать только абсолютные пути для запуска. Недостатки Upstart относятся к категории поправимых проблем; В текущем состоянии Upstart уже полностью готов для использования в Debian 8.0 (Jessie); В Upstart более привычная модель определения конфигурации сервисов, в отличие от systemd, где настройки в /etc перекрывают базовые параметры настройки юнитов, определённые в иерархии /lib. Использование Upstart позволит поддержать здоровый дух конкуренции, который будет способствовать развитию различных подходов и будет держать разработчиков в тонусе. Systemd слишком монолитен и не предоставляет возможность выбора, поставляя изначально заданный набор базовых сервисов (например, замену cron, syslog, inetd), в то время как Upstart больше соответствует позиционированию системы инициализации как связующей прослойки между различными программными проектами. Доводы в пользу systemd:

Systemd опережает Upstart по возможностям и продуманности архитектуры. Без существенность переработки архитектуры Upstart не сможет догнать systemd по функциональности. Systemd содержит достаточно самодостаточный набор компонентов, что позволяет сосредоточить внимание на устранении проблем, а не доработке конфигурации с Upstart до возможностей, уже присутствующих в Systemd. Например, в Upstart отсутствуют: поддержка детального статуса и ведения лога работы демонов, множественная активация через сокеты, активация через сокеты для IPv6 и UDP, гибкие средства ограничения ресурсов. Использование systemd позволит сблизить между собой и унифицировать средства управления различными дистрибутивами. На systemd уже перешли Fedora, openSUSE, Sabayon, Mandriva, Arch Linux, кроме того systemd будет применён в будущих выпусках RHEL и SUSE Linux. У systemd более активное, крупное и разноплановое сообщество разработчиков, в которое входят инженеры компанией SUSE и Red Hat. При использовании upstart дистрибутив становится зависим от Canonical, без поддержки которой upstart останется без разработчиков и будет обречён на стагнацию (невозможно предугадать останется Ubuntu на upstart или нет). Компания Red Hat не без повода решилась на замену upstart на systemd. Существует опасение, что перейдя на upstart проект Debian через 2–3 года вынужден будет мигрировать на systemd. Для реализации некоторых возможностей загрузки в Upstart требуется использовать фрагментов shell-скриптов, что делает процесс инициализации менее надёжным и более трудоёмким для отладки. Поддержка systemd реализована в GNOME и KDE, которые все более активно используют возможности systemd (например, средства для управления пользовательскими сеансами и запуска каждого приложения в отдельном cgroup). GNOME продолжает позиционироваться в качестве основного окружения Debian, но отношения между проектами Ubuntu/Upstart и GNOME имеют явно напряжённый характер.

Полный текст статьи читайте на OpenNet