Найти тему
Борис Державец

Systemd 253: вы смотрите в будущее корпоративных процессов загрузки Linux

«Systemd 253: вы смотрите в будущее корпоративных процессов загрузки Linux» — Яндекс Кью

Леннарт Поттеринг из Microsoft предлагает ужесточить процесс загрузки Linux. Создание собственного начального RAM-диска? Это небезопасно!

«Леннарт Поттеринг из Microsoft предлагает ужесточить процесс загрузки Linux. Создание собственного начального RAM-диска? Это небезопасно!» — Яндекс Кью

SysVInit vs SystemD ( для справки )
Процесс инициализации Linux
При запуске Linux следует набору предварительно определенных последовательностей загрузки. На последнем этапе процесса загрузки запускается система инициализации. Система инициализации служит первым процессом в пространстве пользователя и отвечает за запуск других важных служб и процессов.
В Linux есть две наиболее важные системы инициализации, а именно System V init (SysVInit) и SystemD.
SysVInit — это классический процесс инициализации в Linux. В процессе инициализации отдельная служба устанавливает соответствующие сценарии в каталог /etc/init.d. Кроме того, сценарии должны поддерживать стандартные команды, такие как запуск, остановка и состояние. Одной из основных характеристик этой системы инициализации является то, что это процесс с однократным запуском, после которого отдельные службы не отслеживаются. Команда службы используется для запуска этих сценариев инициализации с терминала.
C другой стороны, SystemD — это недавняя система инициализации, призванная заменить SysVInit. Фактически, большинство дистрибутивов Linux, таких как Debian, Ubuntu, RHEL, Fedora уже используют SystemD в качестве своей системы инициализации. В отличие от SysVInit, SystemD продолжает работать как процесс-демон после завершения инициализации. Кроме того, они также активно отслеживают службы через свои контрольные группы. Команда systemctl — это точка входа для взаимодействия пользователей и настройки файла SystemD.

Systemd предоставляет стандартный процесс управления тем, какие программы запускаются при загрузке системы Linux. Хотя systemd совместим со сценариями инициализации SysV и Linux Standard Base (LSB), systemd предназначен для замены этих старых способов запуска системы Linux.
Systemd, созданный Леннартом Поттерингом и Кей Сиверс из Red Hat, делает больше, чем просто запускает основные программы. Он также запускает журнал системной активности, сетевой стек, планировщик заданий в стиле cron, входы пользователей в систему и многие другие задания. Это может звучать хорошо для вас, но некоторые разработчики ненавидят это.
На сайте Boycott Systemd авторы набрасываются на systemd, заявляя:
«Systemd идет вразрез с философией Unix: «делай что-то одно и делай это хорошо», представляя собой сложную коллекцию из десятков тесно связанных двоичных файлов. Его обязанности значительно превышают обязанности системы инициализации, поскольку он продолжает управлять питанием. , управление устройствами, точки монтирования, cron, шифрование диска, API сокетов/inetd, системный журнал, конфигурация сети, управление входом в систему/сеансами, упреждающее чтение, обнаружение разделов GPT, регистрация контейнеров, управление именем хоста/языком/временем и т. д.
С момента появления systemd Поттеринг много раз обращался к этим проблемам ( Poettering has addressed these concerns many times since systemd appeared but the criticisms keep coming) , но критика продолжает поступать. Что делает все эти споры о systemd особенно странными, так это то, что, несмотря на всю эту ненависть, он получил широкое распространение. Для рабочего стола GNOME 3.8 и новее теперь требуется systemd. Fedora, Linux сообщества Red Hat, была первым крупным дистрибутивом, который начал использовать его по умолчанию. С тех пор Debian Linux, openSUSE и Ubuntu используют systemd.

Systemd architecture
Systemd architecture

Детально смотри

Linus Torvalds and others on Linux's systemd

Systemd 253 on Fedora 38 Server

Runtime session captured
Runtime session captured
Runtime session captured
Runtime session captured