Как вы знаете, Марк Шаттлворт одобрил переход Ubuntu на систему инициализации systemd (pid 1) вслед за своим прародителем Debian. Но работы предстоит очень много. Система инициализации Upstart используется довольно таки давно и многое было завязано на неё.
Разработчик Мартин Питт (Martin Pitt) после UDS и одобрения Марка создал свой репозиторий для обкатки первых возможностей и устранения появившихся проблем. Но теперь первая ласточка systemd 204-10ubuntu1 появилась в родных репозиториях Utopic Unicorn в секции proposed. Правда Мартин честно предупреждает, что хоть после недавнего хакфеста с его коллегами из проектов Debian и Gnome они многое исправили в поддержке bluez, resolvconf и lightdm, но ранняя нестабильность присутствует.
Переход с одной системы инициализации ой как не прост и баги в этом вопросе - это не загруженные системы. Думаю, что осмотрительность и тестирование в виртуальных машинах, прежде чем обновлять свой компьютер, будет востребовано и оправдано. Разработчики никуда не торопятся, так как не протестирована ещё связь systemd + LXC, который активно используется в мобильной Ubuntu Phone.
Разработчики успокаивают тем, что никто в рамках релиза Ubuntu 14.10 Утопичный Единорог форсировать переход на systemd не будет! Вполне возможно переход затронет несколько релизов, ибо работы предстоит много.
Чтобы попробовать новую систему инициализации systemd и отписать о багах, можно во время загрузки системы Ubuntu попасть в меню и отредактировать строку запуска, добавить в linux line - init=/lib/systemd/systemd и продолжить загрузку клавишей F10.
Если вы чувствуете свои силы в управлении этой сложной ситуацией с переходом на ещё не стабильную новую систему инициализации, то можно сделать systemd системой по умолчанию в /etc/default/grub .
На данный момент выявлены проблемы со стартом сетевого моста LXCbr0, nvidia-prime, не поднимаются сетевые интерфейсы из /etc/network/interfaces, невозможно установить nfs-utils. Итого 9 открытых багов.
В своё время автор systemd Леннарт Поттеринг - личность, к которой у линуксоидов полярное мнение - от любви до ненависти. Но стоит признать, что возможности systemd впечатляют и поддержка от основных дистрибутивов делает systemd стандартом де-факто в мире linux систем.
sysvinit | Upstart | systemd | |
---|---|---|---|
Управление через D-Bus | нет | да | да |
Запуск без использования bash/shell скриптов | нет | нет | да |
Включены сервисы ранней стадии загрузки, написанные на языке C | нет | нет | да |
Возможность упреждающего чтения данных с диска | нет | нет[1] | да |
Активация сервисов на основе сокетов | нет | нет[1] | да |
Активация сервисов на основе сокетов: совместимость с inetd | нет | нет[2] | да |
Активация на основе шины (Bus-based Activation) | нет | нет[3] | да |
Активация на основе аппаратуры компьютера | нет | нет[4] | да |
Конфигурирование зависимостей устройств, используя правила udev | нет | нет | да |
Активация по событиям файловой системы (inotify) | нет | нет | да |
Активация по времени | нет | нет | да |
Управление точками монтирования | нет | нет[5] | да |
Управление запуском fsck | нет | нет[5] | да |
Управление квотами | нет | нет | да |
Управление автомонтированием | нет | нет | да |
Управление SWAP | нет | нет | да |
Сохранение снимков состояния системы (snapshotting) | нет | нет | да |
Поддержка XDG_RUNTIME_DIR | нет | нет | да |
Опциональная остановка процессов пользователя после его выхода из системы | нет | нет | да |
Интеграция с Linux Control Groups (cgroups) | нет | нет | да |
Генерация событий аудита для запускаемых сервисов | нет | нет | да |
Интеграция с SELinux | нет | нет | да |
Интеграция с PAM | нет | нет | да |
Управление шифрованными разделами и дисками (LUKS) | нет | нет | да |
Поддержка обработки паролей к LUKS и SSL-сертификатам, с запросом пароля через такие агенты, как Plymouth, консоли, wall, tty терминалов и GNOME | нет | нет | да |
Управление сетевым петлевым устройством (loopback) | нет | нет | да |
Управление binfmt_misc (поддержка неродных исполняемых файлов) | нет | нет | да |
Управление системной локалью | нет | нет | да |
Настройка параметров консоли и клавиатуры | нет | нет | да |
Инфраструктура для создания, удаления и чистки временных файлов | нет | нет | да |
Управление через /proc/sys sysctl | нет | нет | да |
Интеграция с plymouth (графическим запуском, используя KMS) | нет | нет | да |
Сохранение и восстановление random seed (состояния генератора энтропии) | нет | нет | да |
Поддержка статической загрузки модулей ядра | нет | нет | да |
Автоматическое управление консолью COM-порта | нет | нет | да |
Управление уникальным ID компьютера | нет | нет | да |
Управление динамическим именем хоста и метаданными компьютера | нет | нет | да |
Контролируемая остановка сервисов | нет | нет | да |
Поддержка раннего логирования через /dev/log | нет | нет | да |
Включает минимальный демон логирования на основе kmsg для встраиваемых систем | нет | нет | да |
Перезапуск сервисов в случае краха без потери соединения | нет | нет | да |
Бесшовное обновление сервисов | нет | нет | да |
Графический интерфейс пользователя (опциальнально) | нет | нет | да |
Встроена поддержка профилирования и расширенных инструментов | нет | нет | да |
Поддержка сервисов типа "instantiated" | нет | да | да |
Интеграция с PolicyKit | нет | нет | да |
Есть встроенные утилиты для удалённого доступа и управления кластером | нет | нет | да |
Может показать все процессы, принадлежащие сервису | нет | нет | да |
Может идентифицировать процессы сервиса | нет | нет | да |
Автоматически создаёт cgroups для сервисов для равномерного распределения времени CPU | нет | нет | да |
Аналогично для пользовательских процессов | нет | нет | да |
Совместимость с SysV | да | да | да |
Сервисы SysV контролируются как родные сервисы | да | нет | да |
Управление сервисами через /dev/initctl | да | нет | да |
Перезапуск сервисов с полной сериализацией (serialization) состояния | да | нет | да |
Поддержка интерактивного (управляемого) запуска системы | нет[6] | нет[6] | да |
Поддержка контейнеров (как расширенная замена chroot()) | нет | нет | да |
Загрузка, построенная на основе зависимостей | нет[7] | нет | да |
Отключение сервисов без редактирования файлов | да | нет | да |
Маскировка сервисов без редактирования файлов | нет | нет | да |
Надёжная остановка системы, используя только один процесс | нет | нет | да |
Встроенная поддержка перезапуска ядра на лету (kexec) | нет | нет | да |
Динамическая генерация сервисов | нет | нет | да |
Поддержка в других компонентах ОС | да | нет | да |
Файлы запуска сервисов, совместимые с различными дистрибутивами | нет | нет | да |
Отправка сигналов сервисам | нет | нет | да |
Надёжная остановка пользовательских сессий перед остановом системы | нет | нет | да |
Поддержка логирования в utmp/wtmp | да | да | да |
Легкие для написания, расширения и обработки файлы управления сервисами, подходящие для манипулирования инструментами управления предприятием | нет | нет | да |
[1] Реализация упреждающего чтения в Upstart доступна в виде отдельного пакета ureadahead и требует наложения патча на ядро
[2] Активация через сокеты в upstart является экспериментальной возможностью, а также не поддерживает сериализацию, поэтому вообще не подходит для этого.
[3] Активация через шину для upstart доступна пока только в виде патча, который в основную ветку разработки ещё не принят.
[4] реализация в upstart не является практичной.
[5] Данная возможность для upstart существует в виде отдельного пакета и работает только для монтирования во время загрузки, плохо поддерживая зависимости.
[6] Некоторые дистрибутивы реализуют эту возможность с помощью shell скриптов.
[7] Скрипты инициализации LSB поддерживают это, в случае если они используются.
Дополнительные материалы:
Метания разработчиков. Ubuntu и Debian. Systemd и Upstart.
Анонсирование Ubuntu 14.10 Utopic Unicorn. Планы на будущее.
Немає коментарів:
Дописати коментар