Главная » Хабрахабр » Debian и Devuan объединили усилия ради sysvinit

Debian и Devuan объединили усилия ради sysvinit

92. Несколько дней назад вышла в свет с опережением графика очередная версия классической Unix/Linux системы инициализации sysvinit 2. 91 вышел чуть больше месяца назад. Предыдущий выпуск 2.

devu

Что же примечательного в выходе минорной версии старинной системы инициализации (СИ), от которой отказались почти все современные дистрибутивы Linux, и какая от этого радость сообществу сторонников открытого кода и пользователям Debian Linux?

тому назад раскололись из-за ситуации вокруг systemd. Интересен же данный эпизод тем, что релиз состоялся совместными усилиями двух антагонистических групп разработчиков Debian и Devuan, которые 4 г. Но давайте по порядку.

Тройное голосование по systemd

В то время systemd уже набирал популярность и был одним из главных претендентов. За несколько месяцев до выхода Debian Jessie лидеры проекта встали перед необходимостью определиться с системой инициализации. Всего в забеге участвовали четыре СИ.

  • systemd;
  • upstart;
  • openrc;
  • sysvinit.

В голосовании также имелся выбор «требуется дальнейшее обсуждение».

Для принятия решения необходимо было соотношение голосов 2:1. Результаты первого тура показали равновесие между upstart и systemd, каждый из них получил по 4 голоса.

прошел второй тур, в котором ничего нового по сути не произошло. Через 2 недели после этого в начале февраля 2014 г. Голоса разделились в той же пропорции и было принято решение о дальнейших дебатах.

В пользу systemd проголосовали:

  • Bdale Garbee — председатель Технического Комитета;
  • Don Armstrong;
  • Keith Packard — гуру иксов, в данный момент работает в Valve;
  • Russ Albery.

За upstart проголосовали:

  • Colin Watson;
  • Steve Langasek;
  • Ian Jackson;
  • Andreas Barth.

Исключив из повестки все вторичные вопросы и снизив порог принятия решения до простого большинства, комитет с третьего захода проголосовал в пользу systemd И в третий раз проголосовал ТК, значительно упростив регламент и постановку вопроса.

Нет, никто из сторонников upstart не переметнулся в противоположный лагерь, итог голосования решил дополнительный голос председателя Технического Комитета Бидейла Гарби, и с перевесом всего в один голос вопрос СИ для Debian Linux был решен при прежнем балансе мнений 4:4.

Линус бреет Бидейла Гарби на LinuxConf 2009 г.

shave

В списках рассылки Debian страсти разыгрались не на шутку. Итог голосования вызвал резкое чувство горечи, разочарования и несправедливости у противников systemd.

Затем выпустив пар, решил на время отойти от участия в делах ТК. Ian Jackson призвал Бидейла Гарби подать в отставку с поста председателя ТК.

Через пару дней 11 февраля стало ясно, что решение для Debian Linux окончательно принято и в обозримым будущем основной системой инициализации дистрибутива будет systemd.

Devuan

Разработчики дистрибутива Debian Linux, несогласные с таким положением дел, недолго горевали и за полгода до выхода той самой 8-й версии уже на основе systvinit создали свой форк и назвали его Devuan, отталкиваясь от словосочетания Dev one.

Devuan Linux выбрал sysvinit в качестве СИ. Изюминкой дистрибутива и его главным отличие от материнской ОС стало то, из-за чего затеяли весь сыр-бор. В целом рождение развитие дистрибутива, было встречено с большим энтузиазмом в среде пользователей Linux, не исключая русскоязычной его части.

Помимо sysvinit в качестве СИ можно также выбрать openrc. В июне вышла уже вторая версия дистрибутива на пакетной базе последней версии своего предка — Debian Stretch.

Ведь и раньше бывали трудные решения и опасные повороты в истории развития GNU/Linux: GPLv3 или нет, UEFI SecureBoot и пр. Попробуем разобраться из-за чего произошел такой раскол в среде разработчиков Debian, да и в целом среди большого количества пользователей различных вариаций ОС Linux. Почему же в этот раз все слетели с катушек?

Споры вокруг systemd

Если свести суть всех споров к одному тезису, то можно сказать, что systemd подразумевает размен наиболее полноценного управления инициализацией системы и ее службами на тотальный отказ от философии Unix.

Не все согласны с тем, что systemd делает жизнь админа проще, но мало кто может оспорить то, что systemd и Unix Way это две крайности. Причем первое яростно оспаривают противники systemd, но второе никто не оспаривает.

systemd обеспечивает возможности агрессивной параллелизации, использует сокеты и активацию D-Bus для запускаемых служб, предлагает запуск демонов по необходимости, отслеживает процессы при помощи контрольных групп Linux, поддерживает мгновенные снимки и восстановление состояния системы, монтирование и точки монтирования, а также внедряет основанную на зависимостях логику контроля процессов сложных транзакций.

Я не верю в теории заговора и поэтому полагаю, что причины были в недостатках sysvinit и прочих СИ. Откуда возникла потребность в такой всеобъемлющей системе управления инициализацией ОС и ее процессами?

sysvinit не умела решать ряд важных задач, таких как: Созданная в 1983 г.

  • параллельный запуск процессов;
  • обнаружение съемных носителей;
  • активизация сервисов на основе сокетов;
  • надежно контролировать зависимости между различными процессами и службами;
  • раннее логирование событий через /dev/log.

Стандартизация файлов конфигурации, унификация синтаксиса и управление зависимостями служб на основе cgroups предположительно позволили вендорам коммерческих дистрибутивов Linux облегчить жизнь админам и снизить затраты управление серверным парком. Все эти и многие другие неудобства были наконец-то решены в systemd.

По какому-то странному дизайну детище Леннарта Поттеринга прошло путь от обычной СИ до «набора строительных блоков для Линукс системы». Но какова была цена? Эдакое государство в государстве, управляющее подключением устройств, точек входа файловых систем, сетевыми соединениями, системной службой времени, пользовательскими сеансами, системным журналами и пр. Цитата с главной страницы проекта.

Одновременно с этим многие разработчики DE, в особенности Gnome, стали привязывать элементы графического окружения к systemd:

  • управление питанием;
  • управление пользовательскими сеансами;
  • просмотр журнала;
  • если захлопнуть экран ноутбука, то события не будут обработаны;
  • Wayland.

Все это не взлетит в Gnome без специальных патчей, если выбрать иную СИ кроме systemd.

В результате создается такая ситуация, когда в дистрибутиве Linux нет возможности выбрать другую СИ. Причина же такого положения дел в том, что слишком сложно поддерживать два варианта для множества наборов программ: один с systemd, а другой — без.

Облако тэгов ключевых слов вокруг systemd в Твиттере.

systemd

Не думаю, что меня сильно огорчит, если не будет возможности выбора загрузчика ОС, или клиента DHCP. Ну хорошо, нет возможности выбора СИ, так ли это важно на самом деле?

Раннее и полное логирование системных событий с самого момента запуска это конечно хорошо, но как можно себе представить Linux систему с бинарными лог-файлами? Как оказывается многих пользователей systemd раздражает уйма вещей.

Вот его реакция на дефект 5644. Леннарт Поттеринг может быть хорошим программистом, но стиль его общения и реакция на обнаруженные дефекты, на критику — ниже всякой критики.

Сам дефект.

# mkdir -p /foo/dir
# touch /foo/.bar{1,2}
# cat /etc/tmpfiles.d/test.conf
R! /foo/.* - - - - -
Reboot.

Комментарий Леннарта Поттеринга.

Yeah, it's a UNIX pitfall, but "rm -rf /foo/.*" will work the exact same way, no?. I am not sure I'd consider this much of a problem.

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

Почему обычные админы localhost-а не имеют возможности выбрать для Debian Linux и других дистрибутивов, более простую в эксплуатации и отладке СИ? Пусть так, systemd превосходит все основные СИ по своим возможностям, однако все равно остается вопрос. Ведь далеко не каждому нужен параллельный запуск процессов и управление квотами.

Многим пользователям Linux это не понравилось и они стали сетовать на то, что теперь Linux стал как Windows, но только с открытым исходным кодом. Мое понимание ситуации с systemd в том, что более совершенную, но вместе с тем для многих неоправданно сложную и непрозрачную СИ навязали тем, кому это было нужно и тем кому нет.

DnD совместно работают над sysvinit

В последнее время наметились подвижки между группами разработчиков СИ Debian и Devuan. И теперь наконец-то хорошие новости! Решено объединить усилия по нескольким направлениям.

  • Поддерживать на плаву sysvinit для тех, кто готов использовать Debian Linux со всеми ограничениями, в т. ч. без графического окружения. Требуется помощь Devuan-цев в подготовке 10-й версии Debian, получившей название Buster.
  • В результате подобного «перекрестного опыления» Debian-щики помогли коллегам из Devuan в подготовке выпуска sysvinit 2.92. Благодаря этому сроки сократились и выпуск состоялся до НГ, как было сказано в начале поста.

д. Если здравый смысл возобладает то обе группы разработчиков смогут поставить и реализовать более актуальные для всех пользователей Debian/Devuan цели — добиться полноценной поддержки нескольких СИ для Devuan Linux: openrc, s6, runit, nosh и т. Так же и Debian Linux полноценная поддержка хотя бы одной отличной от systemd СИ несомненно пошла бы на пользу.

S. P. пройдет первая конференция Devuan Linux. В Амсдердаме 5-7 апреля 2019 г.

Дополнительное чтение


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Перевод] Учебный курс по React, часть 1: обзор курса, причины популярности React, ReactDOM и JSX

Представляем вашему вниманию первые 5 занятий учебного курса по React для начинающих. Оригинал курса на английском, состоящий из 48 уроков, опубликован на платформе Scrimba.com. Возможности этой платформы позволяют, слушая ведущего, иногда ставить воспроизведение на паузу и самостоятельно, в том же ...

[Перевод] Разбираем лямбда-выражения в Java

Мы открыли его для себя совсем недавно, но уже по достоинству оценили его возможности. От переводчика: LambdaMetafactory, пожалуй, один из самых недооценённых механизмов Java 8. 0 фреймворка CUBA улучшена производительность за счет отказа от рефлективных вызовов в пользу генерации лямбда ...