Найти в Дзене
Герман Геншин

Почему я не отказался от Linux с systemd — расскажу всю правду!

Прошло более десяти лет с момента появления systemd, а обсуждения вокруг него в сообществе Linux продолжаются. Лично мне он пришёлся по душе. Хотя я время от времени пробую дистрибутивы без systemd, всё равно чаще возвращаюсь к тем, где он установлен по умолчанию. Вот почему. В начале 2010-х многие задавались вопросом, зачем менять привычную систему инициализации — SysVInit, которая служила с 1980-х годов. Почему вокруг systemd всё ещё кипят страсти Спустя десять лет systemd по-прежнему вызывает горячие дискуссии. Есть ли на то причины? SysVInit — наследие 80-х, когда Unix-системы запускали главным образом большие миникомпьютеры и мощные рабочие станции. Он запускал службы последовательно, из-за чего загрузка занимала много времени. В те годы ноутбуков почти не было, USB не использовался, а периферия подключалась только при перезапуске. Конфигурация оставалась стабильной во время работы системы, а скорость загрузки не считалась проблемой — компьютеры работали долго и без перерыва. Апп
Оглавление

Прошло более десяти лет с момента появления systemd, а обсуждения вокруг него в сообществе Linux продолжаются. Лично мне он пришёлся по душе. Хотя я время от времени пробую дистрибутивы без systemd, всё равно чаще возвращаюсь к тем, где он установлен по умолчанию. Вот почему.

Раньше был SysVInit — но он устарел

-2

В начале 2010-х многие задавались вопросом, зачем менять привычную систему инициализации — SysVInit, которая служила с 1980-х годов.

Почему вокруг systemd всё ещё кипят страсти

Спустя десять лет systemd по-прежнему вызывает горячие дискуссии. Есть ли на то причины?

SysVInit — наследие 80-х, когда Unix-системы запускали главным образом большие миникомпьютеры и мощные рабочие станции. Он запускал службы последовательно, из-за чего загрузка занимала много времени. В те годы ноутбуков почти не было, USB не использовался, а периферия подключалась только при перезапуске. Конфигурация оставалась стабильной во время работы системы, а скорость загрузки не считалась проблемой — компьютеры работали долго и без перерыва. Аппаратные изменения на таких системах случались редко и почти всегда один раз.

Традиционно для подключения нового устройства, даже простого внешнего диска, требовалась перезагрузка. SysVInit был сложным и построен на сценариях шелла, связанных с разными runlevel — режимами работы. Но с ростом популярности Linux и распространением портативных устройств такой подход уже не выдерживает современности. Сегодня пользователи постоянно подключают USB-устройства, переключаются между Wi-Fi и проводным интернетом — и systemd позволяет быстро реагировать на такие события hotplug.

Это доказывает гибкость Unix-подобных систем: ядро можно менять и адаптировать под новые требования.

systemd — это надолго

Когда systemd только начинал внедряться, шли жаркие споры и поиски альтернатив. Некоторые разработчики покидали проекты из-за резкой критики пользователей.

Но факт остаётся фактом: если вы используете популярный Linux-дистрибутив, скорее всего, он построен на systemd. О нём всегда есть упоминания в документации, а при обращении за поддержкой вам почти всегда придётся работать с утилитой systemctl.

Поскольку systemd стал ключевым элементом современной Linux-экосистемы, его смена маловероятна без серьёзных оснований.

Это не удивительно. Раньше казалось, что SysVInit прослужит вечно — а не нравится? Тогда всегда были BSD-системы.

Возможно, со временем появится новая init-система, которая предложит лучшие решения. Я бы поставил на разработчиков BSD, которые, вероятно, создадут что-то похожее на launchd из macOS — кстати, systemd тоже вдохновлялся им.

Для многих разработчиков systemd — достойный и «достаточно хороший» вариант. В инженерии, включая разработку ПО, часто приходится идти на компромиссы, чтобы адаптироваться к реальной жизни, а не создавать идеальное в теории решение.

systemd меня полностью устраивает

-3

Почему я продолжаю использовать дистрибутивы с systemd? Потому что он ни разу меня не подвёл. Фраза «у меня всё работает» может раздражать в спорах, но у меня действительно не было никаких проблем с systemd.

Мне удобнее управлять службами через systemd, чем старыми методами SysVInit. Раньше я боялся копаться в тех сложных скриптах и runlevel — хоть и редко приходилось отключать или включать службы, это выглядело громоздко.

Теперь, чтобы включить, отключить или перезапустить службу, хватает одной команды systemctl.

Хотя systemd часто критикуют за чрезмерный функционал, команда systemctl для меня проста и понятна.

Недавно я ставил Arch Linux в виртуальную машину. Там пришлось самому настраивать сервисы, ведь Arch — дистрибутив для продвинутых пользователей. Все задачи легко решались парой команд systemctl.

Если systemd подошёл Arch Linux — стоит присмотреться и нам

-4

Что окончательно убедило меня в systemd — это переход на него Arch Linux. Этот дистрибутив славится тем, что даёт полный контроль пользователям, включая выбор загрузчика, разметки дисков и даже рабочего окружения.

Почему Arch — не мой основной дистрибутив, но я его очень ценю

Да, я пользуюсь Arch, просто не каждый день.

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

В Arch Wiki подчёркивается принцип прагматизма:

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

Arch всегда казался мне очень «униксоподобным» дистрибутивом с акцентом на текстовое конфигурирование и полный контроль. Если даже такие опытные разработчики считают systemd приемлемым, я решил тоже дать ему шанс. Все сомнения развеялись. Можно сказать, что я доверился экспертам — но команда Arch заслужила моё уважение качеством своей работы.

Управление процессами — лишь малая часть моего опыта с Linux

Init-система важна, но для меня она в основном работает на заднем плане. Я редко взаимодействую с ней напрямую, кроме случаев с командами systemctl.

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

-5

Иногда я заглядываю в логи — это полезная привычка. Хотя бинарные логи systemd вызвали споры, команда journalctl весьма проста в использовании. На Ubuntu часть логов дублируется в /var/log и доступна обычным текстовым редактором.

Дистрибутивы без systemd меня особо не впечатляют

Отсутствие systemd — вот почему дистрибутивы, позиционирующие себя как systemd-free, не вызывают у меня особого восторга. Недавно я пробовал EXE GNU/Linux и Obarun — разработчики имеют полное право выбирать, что ставить в свои сборки.

Оценивая дистрибутивы, я стараюсь смотреть глазами обычного пользователя, а не ярым сторонника или противника systemd. Главное — насколько удобно работать, а не что внутри.

У некоторых systemd-free дистрибутивов есть свои плюсы — например, оригинальный стиль EXE GNU/Linux.

Иногда перемены идут на пользу

SysVInit работал отлично долгие годы, но изменения в мире ПК сделали его несовместимым с мобильностью и постоянно подключаемыми устройствами современности.

Кого-то смущает размер systemd, кого-то — влияние Red Hat и IBM на развитие Linux.

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

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Вы также можете найти наши материалы в: