Сравнение систем инициализации systemd, upstart и SysVinit — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
Приблизительно год назад Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавший в свое время звуковой сервер PulseAudio, начал разработку новой системы инициализации и управления сервисами  под названием [http://www.freedesktop.org/wiki/Software/systemd systemd]. На создание замены SysVinit, существующей уже несколько десятков лет со времён первых Unix систем, Леннарта сподвигли недостатки традиционной системы и её несоответствие реалиям нашего времени - появлению SSD-накопителей, обладающих практически нулевым временем поиска нужных данных и огромной скоростью, посему способных обеспечить параллельную загрузку информации. Другой проблемой SysVinit является её зависимость от множества достаточно тяжёлых и не очень быстрых приложений - bash, awk, sed и других, которые не отличаются скорой работы на встраиваемых системах. Учитывая, что Linux стал использоваться на серверах, где требуется повышенная отказоустойчивость, от SysVinit потребовалась возможность слежения и перезапуска сервисов в случае их краха, которую она не обеспечивала.
+
Приблизительно год назад Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавший в свое время звуковой сервер PulseAudio, начал разработку новой системы инициализации и управления сервисами  под названием {{Программа|[[systemd]]}}. На создание замены [http://ru.wikipedia.org/wiki/UNIX_System_V SysVinit], существующей уже несколько десятков лет со времён первых Unix систем, Леннарта сподвигли недостатки традиционной системы и её несоответствие реалиям нашего времени - появлению SSD-накопителей, обладающих практически нулевым временем поиска нужных данных и огромной скоростью, посему способных обеспечить параллельную загрузку информации. Другой проблемой SysVinit является её зависимость от множества достаточно тяжёлых и не очень быстрых приложений - {{Программа|bash}}, {{Программа|awk}}, {{Программа|sed}} и других, которые не отличаются скорой работы на встраиваемых системах. Учитывая, что Linux стал использоваться на серверах, где требуется повышенная отказоустойчивость, от [http://ru.wikipedia.org/wiki/UNIX_System_V SysVinit] потребовалась возможность слежения и перезапуска сервисов в случае их краха, которую она не обеспечивала.
  
Первым дистрибутивом, где systemd будет использоваться по умолчанию станет Fedora 15, готовящаяся к выпуску в конце мая этого года. Разработчики OpenSUSE собираются использовать systemd в следующем стабильном релизе 12.1. Arch, Debian, [https://wiki.ubuntu.com/systemd Ubuntu], Gentoo включают поддержку systemd в экспериментальном режиме. Разработчики Mandriva также планируют использовать systemd. Следует учитывать, что при использовании ядра с собственной конфигурацией, systemd требует включения некоторых [http://en.gentoo-wiki.com/wiki/Systemd#Configuring_the_kernel параметров ядра].
+
Первым дистрибутивом, где {{Программа|[[systemd]]}} будет использоваться по умолчанию станет Fedora 15, готовящаяся к выпуску в конце мая этого года. Разработчики OpenSUSE собираются использовать {{Программа|[[systemd]]}} в следующем стабильном релизе 12.1. Arch, Debian, [https://wiki.ubuntu.com/systemd Ubuntu], Gentoo включают поддержку {{Программа|[[systemd]]}} в экспериментальном режиме. Разработчики Mandriva также планируют использовать systemd. Следует учитывать, что при использовании ядра с собственной конфигурацией, {{Программа|[[systemd]]}} требует включения некоторых [http://en.gentoo-wiki.com/wiki/Systemd#Configuring_the_kernel параметров ядра].
  
Леннарт Поттеринг [http://0pointer.de/blog/projects/why.html опубликовал] развёрнутое сравнение systemd, upstart и SysVinit, которое не оставляет никаких сомнений в том, что systemd станет стандартом де-факто в мире Linux.
+
Леннарт Поттеринг [http://0pointer.de/blog/projects/why.html опубликовал] развёрнутое сравнение {{Программа|[[systemd]]}}, upstart и [http://ru.wikipedia.org/wiki/UNIX_System_V SysVinit], которое не оставляет никаких сомнений в том, что {{Программа|[[systemd]]}} станет стандартом де-факто в мире Linux.
  
{| class="standard"; border=1
+
{| class="wikitable"
 
!Действие
 
!Действие
 
!sysvinit
 
!sysvinit
Строка 12: Строка 12:
 
|-
 
|-
 
|Управление через D-Bus
 
|Управление через D-Bus
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Запуск без использования bash/shell скриптов
+
|Запуск без использования {{Программа|bash}}/{{Программа|shell}} скриптов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Включены сервисы ранней стадии загрузки, написанные на языке C
 
|Включены сервисы ранней стадии загрузки, написанные на языке C
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Возможность упреждающего чтения данных с диска
 
|Возможность упреждающего чтения данных с диска
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет*
+
|bgcolor=#DDA09F|нет*
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Активация сервисов на основе сокетов
 
|Активация сервисов на основе сокетов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет*
+
|bgcolor=#DDA09F|нет*
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Активация сервисов на основе сокетов: совместимость с inetd
+
|Активация сервисов на основе сокетов: совместимость с {{Программа|inetd}}
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет**
+
|bgcolor=#DDA09F|нет**
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Активация на основе шины (Bus-based Activation)
 
|Активация на основе шины (Bus-based Activation)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет***
+
|bgcolor=#DDA09F|нет***
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Активация на основе аппаратуры компьютера
 
|Активация на основе аппаратуры компьютера
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет****
+
|bgcolor=#DDA09F|нет****
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Конфигурирование зависимостей устройств, используя правила udev
+
|Конфигурирование зависимостей устройств, используя правила {{Программа|udev}}
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Активация по событиям файловой системы (inotify)
 
|Активация по событиям файловой системы (inotify)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Активация по времени
 
|Активация по времени
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление точками монтирования
 
|Управление точками монтирования
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет*****
+
|bgcolor=#DDA09F|нет*****
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Управление запуском fsck
+
|Управление запуском {{Программа|fsck}}
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет*****
+
|bgcolor=#DDA09F|нет*****
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление квотами
 
|Управление квотами
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление автомонтированием
 
|Управление автомонтированием
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление SWAP
 
|Управление SWAP
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Сохранение снимков состояния системы (snapshotting)
 
|Сохранение снимков состояния системы (snapshotting)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Поддержка [href="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG_RUNTIME_DIR]
+
|Поддержка [http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG_RUNTIME_DIR]
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Опциональная остановка процессов пользователя после его выхода из системы
 
|Опциональная остановка процессов пользователя после его выхода из системы
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Интеграция с Linux Control Groups ([href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html cgroups])
+
|Интеграция с Linux Control Groups ([http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html cgroups])
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Генерация событий аудита для запускаемых сервисов
 
|Генерация событий аудита для запускаемых сервисов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Интеграция с <a href="http://ru.wikipedia.org/wiki/SELinux">SELinux</a>
+
|Интеграция с [http://ru.wikipedia.org/wiki/SELinux SELinux]
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Интеграция с <a href="http://ru.wikipedia.org/wiki/Pluggable_Authentication_Modules">PAM</a>
+
|Интеграция с [http://ru.wikipedia.org/wiki/Pluggable_Authentication_Modules PAM]
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Управление шифрованными разделами и дисками (<a href="http://ru.wikipedia.org/wiki/LUKS">LUKS</a>)
+
|Управление шифрованными разделами и дисками ([http://ru.wikipedia.org/wiki/LUKS LUKS])
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Поддержка обработки паролей к LUKS и SSL-сертификатам, с запросом пароля через такие агенты, как Plymouth, консоли, wall, tty терминалов и GNOME SSL Certificate/LUKS Password handling, including Plymouth, Console, wall(1), TTY and GNOME agents
 
|Поддержка обработки паролей к LUKS и SSL-сертификатам, с запросом пароля через такие агенты, как Plymouth, консоли, wall, tty терминалов и GNOME SSL Certificate/LUKS Password handling, including Plymouth, Console, wall(1), TTY and GNOME agents
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление сетевым петлевым устройством (loopback)
 
|Управление сетевым петлевым устройством (loopback)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление binfmt_misc (поддержка неродных исполняемых файлов)
 
|Управление binfmt_misc (поддержка неродных исполняемых файлов)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление системной локалью
 
|Управление системной локалью
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Настройка параметров консоли и клавиатуры
 
|Настройка параметров консоли и клавиатуры
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Инфраструктура для создания, удаления и чистки временных файлов
 
|Инфраструктура для создания, удаления и чистки временных файлов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Управление через <tt>/proc/sys</tt> sysctl
+
|Управление через {{Источник|/proc/sys sysctl}}
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Интеграция с plymouth (графическим запуском, используя KMS)
 
|Интеграция с plymouth (графическим запуском, используя KMS)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Сохранение и восстановление random seed (состояния генератора энтропии)
 
|Сохранение и восстановление random seed (состояния генератора энтропии)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Поддержка статической загрузки модулей ядра
 
|Поддержка статической загрузки модулей ядра
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Автоматическое управление консолью COM-порта
 
|Автоматическое управление консолью COM-порта
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление уникальным ID компьютера
 
|Управление уникальным ID компьютера
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Управление динамическим именем хоста и метаданными компьютера
 
|Управление динамическим именем хоста и метаданными компьютера
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Контролируемая остановка сервисов
 
|Контролируемая остановка сервисов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Поддержка раннего логгирования через /dev/log
+
|Поддержка раннего логгирования через {{Источник|/dev/log}}
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Включает минимальный демон логгирования на основе kmsg для встраиваемых систем
+
|Включает минимальный демон логгирования на основе {{Программа|kmsg}} для встраиваемых систем
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Перезаупуск сервисов в случае краха без потери соединения
 
|Перезаупуск сервисов в случае краха без потери соединения
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Бесшовное обновление сервисов
 
|Бесшовное обновление сервисов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Графический интерфейс пользователя (опциальнально)
 
|Графический интерфейс пользователя (опциальнально)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Встроена поддержка профилирования и расширенных инструментов
 
|Встроена поддержка профилирования и расширенных инструментов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Поддержка сервисов типа "instantiated"
 
|Поддержка сервисов типа "instantiated"
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Интеграция с PolicyKit
+
|Интеграция с {{Программа|PolicyKit}}
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Есть встроенные утилиты для удалённого доступа и управления кластером
 
|Есть встроенные утилиты для удалённого доступа и управления кластером
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Может показать все процессы, принадлежащие сервису
 
|Может показать все процессы, принадлежащие сервису
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Может идентифицировать процессы сервиса
 
|Может идентифицировать процессы сервиса
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Автоматически создаёт cgroups для сервисов для равномерного распределения времени CPU
+
|Автоматически создаёт {{Процесс|cgroups}} для сервисов для равномерного распределения времени CPU
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Аналогично для пользовательских процессов
 
|Аналогично для пользовательских процессов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Совместимость с SysV
 
|Совместимость с SysV
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Сервисы SysV контролируются как родные сервисы
 
|Сервисы SysV контролируются как родные сервисы
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
|Управление сервисами через /dev/initctl
+
|Управление сервисами через {{Источник|/dev/initctl}}
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Перезапуск сервисов с полной сериализацией (serialization) состояния
 
|Перезапуск сервисов с полной сериализацией (serialization) состояния
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Поддержка интерактивного (управляемого) запуска системы
 
|Поддержка интерактивного (управляемого) запуска системы
|bgcolor=#FF7F7F|нет******
+
|bgcolor=#DDA09F|нет******
|bgcolor=#FF7F7F|нет******
+
|bgcolor=#DDA09F|нет******
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Поддержка контейнеров (как расширенная замена chroot())
 
|Поддержка контейнеров (как расширенная замена chroot())
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Загрузка, построенная на основе зависимостей
 
|Загрузка, построенная на основе зависимостей
|bgcolor=#FF7F7F|нет*******
+
|bgcolor=#DDA09F|нет*******
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Отключение сервисов без редактирования файлов
 
|Отключение сервисов без редактирования файлов
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Маскировка сервисов без редактирования файлов
 
|Маскировка сервисов без редактирования файлов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Надёжная остановка системы, используя только один процесс
 
|Надёжная остановка системы, используя только один процесс
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Встроенная поддержка перезапуска ядра на лету (kexec)
 
|Встроенная поддержка перезапуска ядра на лету (kexec)
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Динамическая генерация сервисов
 
|Динамическая генерация сервисов
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Поддержка в других компонентах ОС
 
|Поддержка в других компонентах ОС
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Файлы запуска сервисов, совместимые с различными дистрибутивами
 
|Файлы запуска сервисов, совместимые с различными дистрибутивами
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Отправка сигналов сервисам
 
|Отправка сигналов сервисам
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Надёжная остановка пользовательских сессий перед остановом системы
 
|Надёжная остановка пользовательских сессий перед остановом системы
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Поддержка логгирования в utmp/wtmp
 
|Поддержка логгирования в utmp/wtmp
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|-
 
|-
 
|Легкие для написания, расширения и обработки файлы управления сервисами, подходящие для манипулирования инструментами управления предприятием
 
|Легкие для написания, расширения и обработки файлы управления сервисами, подходящие для манипулирования инструментами управления предприятием
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#FF7F7F|нет
+
|bgcolor=#DDA09F|нет
|bgcolor=#7FFF7F|да
+
|bgcolor=#BDDB88|да
 
|}
 
|}
  
<nowiki>
+
<pre>
*Реализация упреждающего чтения в Upstart доступна в виде отдельного пакета ureadahead и требует наложения патча на ядро<br />
+
*Реализация упреждающего чтения в Upstart доступна в виде отдельного пакета ureadahead и требует наложения патча на ядро.
**Активация через сокеты в upstart является экспериментальной возможностью, а также не поддерживает сериализацию, поэтому вообще не подходит для этого.<br />
+
**Активация через сокеты в upstart является экспериментальной возможностью, а также не поддерживает сериализацию, поэтому вообще не подходит для этого.
***Активация через шину для upstart доступна пока только в виде патча, который в основную ветку разработки ещё не принят.<br />
+
***Активация через шину для upstart доступна пока только в виде патча, который в основную ветку разработки ещё не принят.
****реализация в upstart не является практичной.<br />
+
****реализация в upstart не является практичной.
*****Данная возможность для upstart существует в виде отдельного пакета и работает только для монтирования во время загрузки, плохо поддерживая зависимости.<br />
+
*****Данная возможность для upstart существует в виде отдельного пакета и работает только для монтирования во время загрузки, плохо поддерживая зависимости.
******Некоторые дистрибутивы реализуют эту возможность с помощью shell скриптов.<br />
+
******Некоторые дистрибутивы реализуют эту возможность с помощью shell скриптов.
*******Скрипты инициализации LSB поддерживают это, в случае если они используются.<br />
+
*******Скрипты инициализации LSB поддерживают это, в случае если они используются.
</nowiki>
+
</pre>
  
  
 
Также systemd предлагает огромные возможности по установке параметров запускаемых сервисов:
 
Также systemd предлагает огромные возможности по установке параметров запускаемых сервисов:
 +
* параметры OOM;
 +
* рабочая директория;
 +
* root-директория (аналог chroot);
 +
* переменные среды;
 +
* переменные среды из внешнего файла;
 +
* ограничения по ресурсам;
 +
* umask;
 +
* user/group ID;
 +
* приоритет и класс ввода/вывода;
 +
* Настройки CPU (привязка к ядрам, приоритет, значение nice, сброс параметров для форка процессов);
 +
* и многое другое.
 +
 +
== Оригинал ==
 +
 +
Оригинал находится [http://www.opennet.ru/opennews/art.shtml?num=30412 здесь]
 +
 +
[[Категория:Документация]]

Текущая версия на 00:24, 19 июля 2012

Приблизительно год назад Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавший в свое время звуковой сервер PulseAudio, начал разработку новой системы инициализации и управления сервисами под названием systemd. На создание замены SysVinit, существующей уже несколько десятков лет со времён первых Unix систем, Леннарта сподвигли недостатки традиционной системы и её несоответствие реалиям нашего времени - появлению SSD-накопителей, обладающих практически нулевым временем поиска нужных данных и огромной скоростью, посему способных обеспечить параллельную загрузку информации. Другой проблемой SysVinit является её зависимость от множества достаточно тяжёлых и не очень быстрых приложений - bash, awk, sed и других, которые не отличаются скорой работы на встраиваемых системах. Учитывая, что Linux стал использоваться на серверах, где требуется повышенная отказоустойчивость, от SysVinit потребовалась возможность слежения и перезапуска сервисов в случае их краха, которую она не обеспечивала.

Первым дистрибутивом, где systemd будет использоваться по умолчанию станет Fedora 15, готовящаяся к выпуску в конце мая этого года. Разработчики OpenSUSE собираются использовать systemd в следующем стабильном релизе 12.1. Arch, Debian, Ubuntu, Gentoo включают поддержку systemd в экспериментальном режиме. Разработчики Mandriva также планируют использовать systemd. Следует учитывать, что при использовании ядра с собственной конфигурацией, systemd требует включения некоторых параметров ядра.

Леннарт Поттеринг опубликовал развёрнутое сравнение systemd, upstart и SysVinit, которое не оставляет никаких сомнений в том, что systemd станет стандартом де-факто в мире Linux.

Действие sysvinit Upstart systemd
Управление через D-Bus нет да да
Запуск без использования bash/shell скриптов нет нет да
Включены сервисы ранней стадии загрузки, написанные на языке C нет нет да
Возможность упреждающего чтения данных с диска нет нет* да
Активация сервисов на основе сокетов нет нет* да
Активация сервисов на основе сокетов: совместимость с inetd нет нет** да
Активация на основе шины (Bus-based Activation) нет нет*** да
Активация на основе аппаратуры компьютера нет нет**** да
Конфигурирование зависимостей устройств, используя правила udev нет нет да
Активация по событиям файловой системы (inotify) нет нет да
Активация по времени нет нет да
Управление точками монтирования нет нет***** да
Управление запуском fsck нет нет***** да
Управление квотами нет нет да
Управление автомонтированием нет нет да
Управление SWAP нет нет да
Сохранение снимков состояния системы (snapshotting) нет нет да
Поддержка XDG_RUNTIME_DIR нет нет да
Опциональная остановка процессов пользователя после его выхода из системы нет нет да
Интеграция с Linux Control Groups (cgroups) нет нет да
Генерация событий аудита для запускаемых сервисов нет нет да
Интеграция с SELinux нет нет да
Интеграция с PAM нет нет да
Управление шифрованными разделами и дисками (LUKS) нет нет да
Поддержка обработки паролей к LUKS и SSL-сертификатам, с запросом пароля через такие агенты, как Plymouth, консоли, wall, tty терминалов и GNOME SSL Certificate/LUKS Password handling, including Plymouth, Console, wall(1), TTY and GNOME agents нет нет да
Управление сетевым петлевым устройством (loopback) нет нет да
Управление binfmt_misc (поддержка неродных исполняемых файлов) нет нет да
Управление системной локалью нет нет да
Настройка параметров консоли и клавиатуры нет нет да
Инфраструктура для создания, удаления и чистки временных файлов нет нет да
Управление через /proc/sys sysctl нет нет да
Интеграция с plymouth (графическим запуском, используя KMS) нет нет да
Сохранение и восстановление random seed (состояния генератора энтропии) нет нет да
Поддержка статической загрузки модулей ядра нет нет да
Автоматическое управление консолью COM-порта нет нет да
Управление уникальным ID компьютера нет нет да
Управление динамическим именем хоста и метаданными компьютера нет нет да
Контролируемая остановка сервисов нет нет да
Поддержка раннего логгирования через /dev/log нет нет да
Включает минимальный демон логгирования на основе kmsg для встраиваемых систем нет нет да
Перезаупуск сервисов в случае краха без потери соединения нет нет да
Бесшовное обновление сервисов нет нет да
Графический интерфейс пользователя (опциальнально) нет нет да
Встроена поддержка профилирования и расширенных инструментов нет нет да
Поддержка сервисов типа "instantiated" нет да да
Интеграция с PolicyKit нет нет да
Есть встроенные утилиты для удалённого доступа и управления кластером нет нет да
Может показать все процессы, принадлежащие сервису нет нет да
Может идентифицировать процессы сервиса нет нет да
Автоматически создаёт cgroups для сервисов для равномерного распределения времени CPU нет нет да
Аналогично для пользовательских процессов нет нет да
Совместимость с SysV да да да
Сервисы SysV контролируются как родные сервисы да нет да
Управление сервисами через /dev/initctl да нет да
Перезапуск сервисов с полной сериализацией (serialization) состояния да нет да
Поддержка интерактивного (управляемого) запуска системы нет****** нет****** да
Поддержка контейнеров (как расширенная замена chroot()) нет нет да
Загрузка, построенная на основе зависимостей нет******* нет да
Отключение сервисов без редактирования файлов да нет да
Маскировка сервисов без редактирования файлов нет нет да
Надёжная остановка системы, используя только один процесс нет нет да
Встроенная поддержка перезапуска ядра на лету (kexec) нет нет да
Динамическая генерация сервисов нет нет да
Поддержка в других компонентах ОС да нет да
Файлы запуска сервисов, совместимые с различными дистрибутивами нет нет да
Отправка сигналов сервисам нет нет да
Надёжная остановка пользовательских сессий перед остановом системы нет нет да
Поддержка логгирования в utmp/wtmp да да да
Легкие для написания, расширения и обработки файлы управления сервисами, подходящие для манипулирования инструментами управления предприятием нет нет да
*Реализация упреждающего чтения в Upstart доступна в виде отдельного пакета ureadahead и требует наложения патча на ядро.
**Активация через сокеты в upstart является экспериментальной возможностью, а также не поддерживает сериализацию, поэтому вообще не подходит для этого.
***Активация через шину для upstart доступна пока только в виде патча, который в основную ветку разработки ещё не принят.
****реализация в upstart не является практичной.
*****Данная возможность для upstart существует в виде отдельного пакета и работает только для монтирования во время загрузки, плохо поддерживая зависимости.
******Некоторые дистрибутивы реализуют эту возможность с помощью shell скриптов.
*******Скрипты инициализации LSB поддерживают это, в случае если они используются.


Также systemd предлагает огромные возможности по установке параметров запускаемых сервисов:

  • параметры OOM;
  • рабочая директория;
  • root-директория (аналог chroot);
  • переменные среды;
  • переменные среды из внешнего файла;
  • ограничения по ресурсам;
  • umask;
  • user/group ID;
  • приоритет и класс ввода/вывода;
  • Настройки CPU (привязка к ядрам, приоритет, значение nice, сброс параметров для форка процессов);
  • и многое другое.

Оригинал

Оригинал находится здесь