Найти тему
Другой мир

Systemd чем плох? Поговорим о инициализации и управлении службами в Linux.

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

Обойдемся без сложностей, но у вас будет еще копейка в копилку знаний о анатомии Линукс.

Что делает подсистема инициализации и запуска служб? Она запускает все остальные процессы, после старта ядра системы, которые как бы необходимы для работы самой системы, уж простите за тавтологию.

Это как бы родительский процесс для всех остальных процессов. Процесс инициализации запускает специальные службы - демоны.

Демоны это фоновые процессы, через которые работают другие программы в системе и работают эти демоны в виде службы, пока работает сама система. (Службы виндоувс знаете? Ну вот примерно похоже).

Резюмируя - процесс инициализации это запуск всех необходимых процессов и служб.

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

System V init или SysV . Долгие годы была основной системой инициализации у преобладающего количества дистрибутивов, пока не появился ненавстный тру линуксоидами systemd. Но про это будет ниже.

Так вот, эта подсистема инициализации работает последовательно, то есть запуская службу за службой, подключает файловые системы, подключает сеть, загружает графическую оболочку. Ядро запускает файл /sbin/init который начинает выполнять директивы для запуска всей системы, которые содержатся в файле /etc/inittab.

Но последовательная загрузка может сильно замедлять старт системы, вот зависла на обнаружении сети, и сидим в позе Ждуна. Так же SysV не обнаруживает съемные носители. Сейчас как вспомню ручное монтирование дисков, так вздрогну.

Но не буду вас нагружать сильно теорией. Пойдем дальше.

И вот учитывая все недостатки пришел на смену великий и могучий systemd. Который уже умел запускать процессы параллельно, можно управлять и завершать дополнительные процессы, можно ставить таймеры и планировать здания. Так же она управляет включением всех устройств, файлом подкачки, точками монтирования и тд. По сути это большая навороченная система(группа утилит), а не просто "читалка" сценария запуска. Все директивы лежат в unit-файлах, по синтаксису похожих на ini файлы в Виндоувс, да и по сути тоже.

Так почему тру линуксоиды делают "козью" морду при упоминании СистемДэ? А авторы дистрибутива Devuan отказ от этой systemd преподносят как плюс и фишку?

-2

Ну потому что в школе другие такие же тру засмеют. Но объяснить не смогут.

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

А так, они предъявляют следующие претензии:

  • Слишком наворочен, имеет много файлов
  • Он во всех дистрибутивах, и не оставляет выбор пользователю, чем инициализировать систему, что идет в разрез с философией свободного программного обеспечения.
  • Говорят местами содержит баги.

В общем для вас, как просто пользователей это все неважно. Важно будет, если вы реальный разработчик под Линукс, или продвинутый администратор серверов. При том вы эти серверы собираете из исходников сами, с нуля.

Вот вам такое краткое пояснение, про термин, который вы не могли не встречать, если изучали работу в Линукс.

Смотрите оглавление раздела, посвященного Линукс