Релиз systemd 233

02.03.2017 12:09
После четырёх месяцев разработки сформирован выпуск системного менеджера systemd 233. Из новшеств можно отметить перенос правил DBus из /etc в /usr, добавление генератора переменных окружения, задействование гибридного режима настройки cgroup, новые опции монтирования в fstab, поддержка автоматической настройки для монтирования разделов LUKS и Verity, возможность сохранения backtrace при записи core-дампов. Основные изменения: Правила DBus теперь устанавливаются в иерархию /usr, а не в /etc. Для переопределения каталога следует использовать опцию "--with-dbuspolicydir="; Все поставляемые в составе systemd скрипты на языке Python (в основном это тестовые сценарии) теперь требуют для своей работы наличия Python 3; В .network-файлы systemd-networkd добавлены новые параметры: В секцию "[DHCP]" добавлен параметр "ListenPort=", позволяющий явно указать UDP-порт для приёма запросов DHCP-клиентом. Добавлен параметр "Unmanaged=" для вывода интерфейсов из управления systemd-networkd. Добавлен параметр
Гарретт Д'Аморе (Garrett D'Amore), лидер проекта Illumos, представил первый выпуск фреймворка Govisor, предоставляющего средства контроля за выполнением группы процессов в Unix-подобных системах. Основным отличием Govisor от механизмов управления процессами в Solaris SMF и systemd является клиент-серверная архитектура и ориентация на обособленную работу, не привязанную к системе инициализации и привилегиям root, что позволяет использовать Govisor для управления процессами на уровне обычного пользователя или проекта. Исходные тексты Govisor написаны на языке Go и распространяются под лицензией Apache 2.0. Фреймворк позволяет учитывать зависимости при запуске сервисов, обеспечивает их запуск, остановку и перезапуск при возникновения такой необходимости. Govisor также предоставляет расширенные средства для обработки сбоев в работе сервисов, консолидированного ведения логов, разбору конфликтов среди зависимостей. Для управления сервисами предлагается использовать REST API - управляющий демон содержит встроенный
В рамках проекта System XVI началось развитие нового системного менеджера, сочетающего функции системы инициализации с механизмом обеспечения работы сервисов. System XVI поддерживает совместимость с простейшими unit-файлами systemd, но не привязан к возможностям Linux, что позволяет использовать его не только для окружений GNU/Linux, но и для BSD-систем (FreeBSD), а также для Linux-окружений на базе библиотеки muslibc и утилит BusyBox. Особенностью System XVI также является модульная архитектура, соответствующая традиционной организации работы UNIX-систем. Для сборки System XVI применяется система kBuild, также используемая в VirtualBox. Из зависимостей требуется установка пакетов procps и libkqueue. Код проекта распространяется под лицензией BSD. Разработка находится на начальной стадии и пока ограничивается синтетическими тестами. Автором проекта является Дэвид Маккэй (David Mackay), принимающий участие в разработке проектов Illumos и Tox. Из проблем systemd, побудивших к созданию нового
Опубликованы результаты общего голосования разработчиков Debian по вопросу предоставления в Debian возможности использования нескольких систем инициализации, чтобы избежать появления зависимости пакетов только от одной системы инициализации без оставления возможности выбора. Наибольший вес набрал пункт, указывающий на отсутствие необходимости принятия решения по данному вопросу (General Resolution is not required), т.е. разработчики посчитали, что нет смысла вносить изменения в правила Debian. Предложение не привязывать пакеты к конкретной реализации системы инициализации не получило должной поддержки, как и предложение разрешить подобную привязку на усмотрение сопровождающих.
Анонсирован релиз системы инициализации Upstart 1.13, изначально разработанной компанией Canonical и ныне используемой в дистрибутивах Ubuntu и RedHat Enterprise Linux 6, а также в проектах Maemo, Chrome OS и webOS. В будущем проект Ubuntu намерен перейти на использование systemd, но развитие Upstart пока не прекращается. Например, кроме исправления ошибок в Upstart 1.13 добавлена поддержка параметра cgroup, позволяющего использовать cgroups в системе инициализации и менеджере сеансов. Поддержка chroot отключена по умолчанию, для изоляции через chroot теперь нужно использовать флаг '--chroot-sessions'. В опции '--confdir' теперь допускается определение системных конфигураций в нескольких местах, для упрощения добавления новых путей реализованы дополнительные опции '--append-confdir' и '--prepend-confdir'. В initctl-команды 'set-env' и 'unset-env' добавлена возможность работы с несколькими переменными окружения. В отличие от стандартной init-системы SysV, Upstart базируется на парадигме обработки
После выбора systemd в качестве системы инициализации по умолчанию для выпуска Debian Jessie на базе ядра Linux, Ян Джексон (Ian Jackson), один из активных сторонников upstart, инициировал новое голосование по вопросу о том, насколько пакеты из состава дистрибутива могут быть привязаны к определённой системе инициализации. Участникам комитета предлагается определить приоритет следующих утверждений: Приложения не могут зависеть от определённой системы инициализации (дистрибутив продолжит поддержку нескольких систем иницилизации в обозримом будущем, предоставляя возможность выбора. Выбор системы инициализации по умолчанию относится только к Debian Jessie и в дальнейшем может быть пересмотрен); Сохранение совместимости Debian Jessie с sysvinit и обеспечение поддержки в пакетах нескольких систем инициализации (меэйнтейнерам пакетов рекомендуется поддерживать несколько систем инициализации); Комитет не готов вынести решение по этому вопросу в настоящее время; Требуется дополнительное обсуждение. В
Доступен первый выпуск новой системы инициализации Epoch, позиционируемой в качестве легковесного решения для минималистичных дистрибутивов, которым необходимо обеспечить загрузку без нагромождения и лишних зависимостей. По сути, Epoch развивается в качестве альтернативы init-системы от проекта busybox, и отличается более широкими возможностями и отказом от использования shell-скриптов для запуска сервисов. Настройки процесса загрузки определяются через единый файл конфигурации. Система написана на языке Си и распространяется как общественное достояние. Из зависимостей для работы Epoch требуется только Glibc, pthreads, ядро Linux (привязка к /proc) и опционально /bin/sh. Основные возможности Epoch: Для контроля порядка запуска и остановки сервисов используется система приоритетов, выступающая в роли упрощённого аналога зависимостей. Запуск сервисов в параллельном режиме не поддерживается; Встроенная система ведения лога, способная обеспечить запись информации о событиях, в том числе на стадиях до
В недавно завершившемся обсуждении по выбору системы инициализации для дистрибутива Debian, довольно часто фигурировал аргумент «система инициализации должна быть переносимой» (то есть работать на платформах, отличных от Linux). При этом подразумевалось, что SysV init является переносимой системой инициализации. Однако Юстас Винтер, один из разработчиков порта Debian GNU/Hurd, пояснил, что такое представление является некорректным. Используемая в Debian реализация SysV init жестко завязана на особенности ядра Linux, и обеспечить ее корректное портирование на другие платформы весьма проблематично. Более того, для систем на основе микроядра, в силу архитектурных особенностей реализации, более оптимальным решением является systemd. Код SysV init, используемый в Debian, во многих аспектах жестко завязан на архитектуру платформы Linux. В качестве наиболее типичного примера такой привязки приводится использование procfs (в файлах src/{bootlog,hddown,killall5}.c). Структура procfs не стандартизирована,
Бидейл Гарби (Bdale Garbee), председатель Технического комитета Debian, подвёл итоги голосования по вопросу перехода следующего выпуска Debian на новую систему инициализации. В голосовании наибольший вес набрал пункт, указывающий на необходимость дополнительного обсуждения. Планируется переформулировать выставленные на голосование пункты, учтя возможность одновременного поддержания нескольких систем инициализации, целесообразность выделения системы по умолчанию и необходимость использования только одной системы инициализации в долгосрочной перспективе.
Леннарт Поттеринг, возглавляющий разработку системного менеджера systemd, прокомментировал ситуацию, сложившуюся вокруг ошибки 1073433 в Upstart, приводящей к повреждению корневой файловой системы в процессе выключения компьютера. При этом он рассказал о причинах и механизмах возникновения проблемы, указал на метод ее решения, и предупредил о вопросах, которые в обозримом будущем останутся нерешенными из-за ограничений архитектуры Upstart. Чтобы обеспечить корректное состояние корневой файловой системы на момент выключения компьютера, система инициализации должна предварительно смонтировать ее в режиме «только для чтения». Чтобы ядро позволило выполнить данную операцию, на корневом разделе не должно оставаться ни одного файла, открытого на запись. Традиционно, это требование обеспечивается путем предварительной остановки всех процессов, кроме самого init, который сам по себе не держит открытых для записи файлов. Однако в некоторых ситуациях такой подход оказывается неэффективен — несмотря на