6 лучших современных систем инициализации Linux (1992–2023 гг.)
В Linux и других Unix-подобных операционных системах процесс init (инициализация) — это первый процесс, выполняемый ядром во время загрузки, который имеет ID (PID) со значением 1, который выполняется в фоновом режиме до тех пор, пока система не выключится.
Процесс init запускает все остальные процессы Linux, то есть демоны, службы и другие фоновые процессы, поэтому он является родительским для всех остальных процессов в системе.
Процесс может запускать множество других дочерних процессов в системе, но если родительский процесс умирает, init становится родительским для потерянного процесса.
За прошедшие годы в основных дистрибутивах Linux появилось множество систем init, и в этом руководстве мы рассмотрим некоторые из лучших систем инициализации, с которыми вы можете работать в операционной системе Linux.
1. Инициализация системы V
System V (SysV) — это развитая и популярная схема init в Unix-подобных операционных системах. Она является родительским элементом всех процессов в системе Unix/Linux. SysV — первая коммерческая операционная система Unix.
Почти все дистрибутивы Linux сначала использовали схему инициализации SysV, за исключением Gentoo, который имеет собственную инициализацию, и Slackware, который использует схему инициализации в стиле BSD.
Прошли годы, из-за некоторых недостатков было разработано несколько замен SysV init с целью создания более эффективных и совершенных систем инициализации для Linux.
Хотя эти альтернативы направлены на улучшение SysV и, возможно, предлагают новые функции, они по-прежнему совместимы с исходными сценариями SysV.
2. СистемаД
SystemD — относительно новая схема инициализации на платформе Linux. Этот набор инструментов, представленный в Fedora 15, упрощает управление системой. Основная цель — инициализировать, управлять и отслеживать все системные процессы в процессе загрузки и во время работы системы.
Systemd init полностью отличается от других традиционных систем инициализации Unix своим практическим подходом к управлению системами и службами. Он также совместим со сценариями инициализации SysV и LBS.
Он имеет некоторые из следующих выдающихся особенностей:
- Чистый, простой и эффективный дизайн
- Одновременная и параллельная обработка при загрузке
- Улучшенный APIv
- Позволяет удалить необязательные процессы
- Поддерживает ведение журнала событий с помощью Journald.
- Поддерживает планирование заданий с использованием таймеров календаря systemd.
- Хранение логов в двоичных файлах
- Сохранение состояния systemd для дальнейшего использования.
- Улучшенная интеграция с GNOME и многое другое.
3. Выскочка
Upstart — это система инициализации на основе событий, разработанная создателями Ubuntu в качестве замены системы инициализации SysV. Он запускает различные системные задачи и процессы, проверяет их во время работы системы и останавливает их при завершении работы системы.
Это гибридная система инициализации, в которой используются как сценарии запуска SysV, так и сценарии Systemd. Некоторые из примечательных особенностей системы инициализации Upstart включают в себя:
- Первоначально разработан для Ubuntu Linux, но может работать во всех других дистрибутивах.
- Запуск и остановка задач и служб на основе событий.
- События генерируются во время запуска и остановки задач и служб.
- События могут отправляться другими системными процессами
- Связь с процессом инициализации через D-Bus
- Пользователи могут запускать и останавливать свои процессы
- Возрождение сервисов, которые внезапно умирают, и многое другое.
4. ОпенРК
OpenRC — это основанная на зависимостях схема init для Unix-подобных операционных систем. Она совместима с SysV init. Несмотря на то, что он вносит некоторые улучшения в Sys V, вы должны иметь в виду, что OpenRC не является полной заменой файла /sbin/init.
Он предлагает некоторые выдающиеся функции, в том числе:
- Он может работать во многих других дистрибутивах Linux, включая Gentoo, а также в BSD.
- Поддерживает аппаратно-инициируемые сценарии инициализации.
- Поддерживает один файл конфигурации
- Конфигурации для каждой службы не поддерживаются.
- Работает как демон
- Запуск параллельных сервисов и многое другое
5. запустить
runit также является кросс-платформенной системой инициализации, которая может работать в GNU/Linux, Solaris, *BSD и Mac OS X, и является альтернативой SysV init, которая обеспечивает контроль обслуживания.
Он имеет некоторые преимущества и замечательные компоненты, которых нет в системе инициализации SysV и, возможно, в других системах инициализации Linux, а именно:
- Надзор за службами, где каждая служба связана с каталогом служб.
- Чистое состояние процесса гарантирует чистое состояние каждого процесса.
- Он имеет надежную систему регистрации
- Быстрая загрузка и завершение работы системы
- Это также портативный
- Удобная упаковка
- Маленький размер кода и многое другое
6. с6
s6 предлагает компактный набор инструментов для UNIX, предназначенный для контроля процессов, аналогичный daemontools и runit. Это облегчает операции с процессами и демонами.
Разработанный как набор инструментов низкоуровневого администрирования сервисов, s6 предоставляет разнообразные инструменты, которые могут работать независимо или в его рамках. В сочетании эти инструменты обеспечивают надежную функциональность с минимальным количеством кода.
Как я уже упоминал ранее, система init запускает и управляет всеми остальными процессами в системе Linux. Кроме того, SysV является основной схемой инициализации в операционных системах Linux, но из-за некоторых недостатков производительности системные программисты разработали для нее несколько замен.
Здесь мы рассмотрели некоторые из этих замен, но могут быть и другие системы инициализации, которые, по вашему мнению, стоит упомянуть в этом списке. Вы можете сообщить нам о них через раздел комментариев ниже.