Леннарт Поттеринг из 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 253 on Fedora 38 Server