В рамках проекта 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, побудивших к созданию нового системного менеджера, отмечается монолитная архитектура, основанная на использовании компонентов, методы интеграции которых затрудняют разработку сторонних альтернативных реализаций. Несмотря на то, что реализация PID 1 в systemd является достаточно компактной, а функциональность systemd обеспечивается 69 исполняемыми файлами, systemd остаётся завязанным на достаточно сложную логику разбора файлов конфигурации, обработку вызовов DBus и транзакционную систему разрешения зависимостей.

Основные концепции разработки System XVI:

  • Ориентация на предоставление стабильных, простых и не меняющихся интерфейсов взаимодействия;
  • Разделение функциональности - каждый компонент реализует минимальный набор возможностей, позволяя строить сложные системы на основе сочетания простых элементов в соответствии с традиционным подходом Unix-систем;
  • Заменяемость компонентов - любой компонент может быть легко заменён на стороннюю реализацию;
  • Живучесть - крах компонентов не должен негативно влиять на систему и после перезапуска компоненты должны полностью восстановить прежнее состояние.

Организация управления сервисами в System XVI напоминает Solaris SMF с заимствованием некоторых идей из daemontools и BSD rc.d. Для контроля за сервисами применяется репозиторий сервисов (хэш-таблица с информацией об экземплярах запущенных сервисов и их свойствах) и используются модули перезапуска сервисов. Взаимодействие компонентов System XVI осуществляется при помощи классического TI-RPC/SunRPC, без применения DBus. Для обработки зависимостей и расчёта порядка запуска сервисов применяется отдельный процесс svcorder, похожий на rcorder из BSD-систем. Для установки, настройки и активации сервисов предлагается утилита svccfg.

Источник: http://www.opennet.ru/opennews/art.shtml?num=42958