Сравнение систем инициализации systemd, upstart и SysVinit — различия между версиями
PastorDi (обсуждение | вклад) (Новая страница: «Приблизительно год назад Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавши...») |
PastorDi (обсуждение | вклад) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Приблизительно год назад Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавший в свое время звуковой сервер PulseAudio, начал разработку новой системы инициализации и управления сервисами под названием [http:// | + | Приблизительно год назад Леннарт Поттеринг (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=" | + | {| class="wikitable" |
!Действие | !Действие | ||
!sysvinit | !sysvinit | ||
Строка 12: | Строка 12: | ||
|- | |- | ||
|Управление через D-Bus | |Управление через D-Bus | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Запуск без использования bash/shell скриптов | + | |Запуск без использования {{Программа|bash}}/{{Программа|shell}} скриптов |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Включены сервисы ранней стадии загрузки, написанные на языке C | |Включены сервисы ранней стадии загрузки, написанные на языке C | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Возможность упреждающего чтения данных с диска | |Возможность упреждающего чтения данных с диска | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет* |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Активация сервисов на основе сокетов | |Активация сервисов на основе сокетов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет* |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Активация сервисов на основе сокетов: совместимость с inetd | + | |Активация сервисов на основе сокетов: совместимость с {{Программа|inetd}} |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет** |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Активация на основе шины (Bus-based Activation) | |Активация на основе шины (Bus-based Activation) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет*** |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Активация на основе аппаратуры компьютера | |Активация на основе аппаратуры компьютера | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет**** |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Конфигурирование зависимостей устройств, используя правила udev | + | |Конфигурирование зависимостей устройств, используя правила {{Программа|udev}} |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Активация по событиям файловой системы (inotify) | |Активация по событиям файловой системы (inotify) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Активация по времени | |Активация по времени | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление точками монтирования | |Управление точками монтирования | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет***** |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Управление запуском fsck | + | |Управление запуском {{Программа|fsck}} |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет***** |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление квотами | |Управление квотами | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление автомонтированием | |Управление автомонтированием | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление SWAP | |Управление SWAP | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Сохранение снимков состояния системы (snapshotting) | |Сохранение снимков состояния системы (snapshotting) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Поддержка | + | |Поддержка [http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG_RUNTIME_DIR] |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Опциональная остановка процессов пользователя после его выхода из системы | |Опциональная остановка процессов пользователя после его выхода из системы | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Интеграция с Linux Control Groups ( | + | |Интеграция с Linux Control Groups ([http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html cgroups]) |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Генерация событий аудита для запускаемых сервисов | |Генерация событий аудита для запускаемых сервисов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Интеграция с | + | |Интеграция с [http://ru.wikipedia.org/wiki/SELinux SELinux] |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Интеграция с | + | |Интеграция с [http://ru.wikipedia.org/wiki/Pluggable_Authentication_Modules PAM] |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Управление шифрованными разделами и дисками ( | + | |Управление шифрованными разделами и дисками ([http://ru.wikipedia.org/wiki/LUKS LUKS]) |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |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=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление сетевым петлевым устройством (loopback) | |Управление сетевым петлевым устройством (loopback) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление binfmt_misc (поддержка неродных исполняемых файлов) | |Управление binfmt_misc (поддержка неродных исполняемых файлов) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление системной локалью | |Управление системной локалью | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Настройка параметров консоли и клавиатуры | |Настройка параметров консоли и клавиатуры | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Инфраструктура для создания, удаления и чистки временных файлов | |Инфраструктура для создания, удаления и чистки временных файлов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Управление через | + | |Управление через {{Источник|/proc/sys sysctl}} |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Интеграция с plymouth (графическим запуском, используя KMS) | |Интеграция с plymouth (графическим запуском, используя KMS) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Сохранение и восстановление random seed (состояния генератора энтропии) | |Сохранение и восстановление random seed (состояния генератора энтропии) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Поддержка статической загрузки модулей ядра | |Поддержка статической загрузки модулей ядра | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Автоматическое управление консолью COM-порта | |Автоматическое управление консолью COM-порта | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление уникальным ID компьютера | |Управление уникальным ID компьютера | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Управление динамическим именем хоста и метаданными компьютера | |Управление динамическим именем хоста и метаданными компьютера | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Контролируемая остановка сервисов | |Контролируемая остановка сервисов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Поддержка раннего логгирования через /dev/log | + | |Поддержка раннего логгирования через {{Источник|/dev/log}} |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Включает минимальный демон логгирования на основе kmsg для встраиваемых систем | + | |Включает минимальный демон логгирования на основе {{Программа|kmsg}} для встраиваемых систем |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Перезаупуск сервисов в случае краха без потери соединения | |Перезаупуск сервисов в случае краха без потери соединения | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Бесшовное обновление сервисов | |Бесшовное обновление сервисов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Графический интерфейс пользователя (опциальнально) | |Графический интерфейс пользователя (опциальнально) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Встроена поддержка профилирования и расширенных инструментов | |Встроена поддержка профилирования и расширенных инструментов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Поддержка сервисов типа "instantiated" | |Поддержка сервисов типа "instantiated" | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Интеграция с PolicyKit | + | |Интеграция с {{Программа|PolicyKit}} |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Есть встроенные утилиты для удалённого доступа и управления кластером | |Есть встроенные утилиты для удалённого доступа и управления кластером | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Может показать все процессы, принадлежащие сервису | |Может показать все процессы, принадлежащие сервису | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Может идентифицировать процессы сервиса | |Может идентифицировать процессы сервиса | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Автоматически создаёт cgroups для сервисов для равномерного распределения времени CPU | + | |Автоматически создаёт {{Процесс|cgroups}} для сервисов для равномерного распределения времени CPU |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Аналогично для пользовательских процессов | |Аналогично для пользовательских процессов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Совместимость с SysV | |Совместимость с SysV | ||
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Сервисы SysV контролируются как родные сервисы | |Сервисы SysV контролируются как родные сервисы | ||
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
− | |Управление сервисами через /dev/initctl | + | |Управление сервисами через {{Источник|/dev/initctl}} |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Перезапуск сервисов с полной сериализацией (serialization) состояния | |Перезапуск сервисов с полной сериализацией (serialization) состояния | ||
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Поддержка интерактивного (управляемого) запуска системы | |Поддержка интерактивного (управляемого) запуска системы | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет****** |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет****** |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Поддержка контейнеров (как расширенная замена chroot()) | |Поддержка контейнеров (как расширенная замена chroot()) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Загрузка, построенная на основе зависимостей | |Загрузка, построенная на основе зависимостей | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет******* |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Отключение сервисов без редактирования файлов | |Отключение сервисов без редактирования файлов | ||
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Маскировка сервисов без редактирования файлов | |Маскировка сервисов без редактирования файлов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Надёжная остановка системы, используя только один процесс | |Надёжная остановка системы, используя только один процесс | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Встроенная поддержка перезапуска ядра на лету (kexec) | |Встроенная поддержка перезапуска ядра на лету (kexec) | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Динамическая генерация сервисов | |Динамическая генерация сервисов | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Поддержка в других компонентах ОС | |Поддержка в других компонентах ОС | ||
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Файлы запуска сервисов, совместимые с различными дистрибутивами | |Файлы запуска сервисов, совместимые с различными дистрибутивами | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Отправка сигналов сервисам | |Отправка сигналов сервисам | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Надёжная остановка пользовательских сессий перед остановом системы | |Надёжная остановка пользовательских сессий перед остановом системы | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Поддержка логгирования в utmp/wtmp | |Поддержка логгирования в utmp/wtmp | ||
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|- | |- | ||
|Легкие для написания, расширения и обработки файлы управления сервисами, подходящие для манипулирования инструментами управления предприятием | |Легкие для написания, расширения и обработки файлы управления сервисами, подходящие для манипулирования инструментами управления предприятием | ||
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#DDA09F|нет |
− | |bgcolor=# | + | |bgcolor=#BDDB88|да |
|} | |} | ||
+ | |||
+ | <pre> | ||
+ | *Реализация упреждающего чтения в Upstart доступна в виде отдельного пакета ureadahead и требует наложения патча на ядро. | ||
+ | **Активация через сокеты в upstart является экспериментальной возможностью, а также не поддерживает сериализацию, поэтому вообще не подходит для этого. | ||
+ | ***Активация через шину для upstart доступна пока только в виде патча, который в основную ветку разработки ещё не принят. | ||
+ | ****реализация в upstart не является практичной. | ||
+ | *****Данная возможность для upstart существует в виде отдельного пакета и работает только для монтирования во время загрузки, плохо поддерживая зависимости. | ||
+ | ******Некоторые дистрибутивы реализуют эту возможность с помощью shell скриптов. | ||
+ | *******Скрипты инициализации LSB поддерживают это, в случае если они используются. | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | Также 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, сброс параметров для форка процессов);
- и многое другое.
Оригинал
Оригинал находится здесь