Группа разработчиков из проекта Ubuntu планирует (https://wiki.ubuntu.com/FoundationsTeam/Specs/RaringUpstartU...) добавить в систему инициализации и контроля за выполнение системных сервисов Upstart (https://launchpad.net/upstart/) механизм управления пользовательскими сеансами, полностью копирующий аналогичную функциональность systemd. Леннарт Поттеринг (Lennart Poettering), создатель systemd, написал (https://plus.google.com/115547683951727699051/posts/ZZWLtq6tYdn) по этому поводу заслуживающую внимание заметку, раскрывающую проблемы с переходом десктоп-окружений на новые подсистемы управления пользовательскими сеансами.
Уже на протяжении долгого времени, в systemd присутствует возможность использования не только в качестве общесистемного процесса init (работает от имени root), но и в качестве ведущего процесса пользовательского сеанса (запускается от имени пользователя). Учитывая определенное сходство процессов инициализации системы и пользовательского сеанса (которые сводятся, по сути, к запуску определенного набора фоновых процессов), эти задачи могут быть успешно решены одним и тем же кодом.
В настоящее время, практически все десктоп-окружения поддерживают свои собственные, несовместимые между собой системы инициализации пользовательских сеансов. Переход на стандартный механизм позволил бы значительно упростить и унифицировать соответствующие процедуры. Именно из этих соображений в systemd была добавлена данная функциональность. Однако разработчики systemd не планировали в обозримом будущем форсировать такой переход, чтобы не создавать трудностей разработчикам десктоп-окружений — в настоящее время многие дистрибутивы используют системы инициализации, отличные от systemd, и для них пришлось бы поддерживать старый код управления сеансами, что свело бы к нулю все выгоды и создало бы ряд проблем совместимости.
Однако, разработчиков Upstart такие проблемы не пугают. В их планы входит полное копирование функциональности systemd в пространстве пользователя, включая запуск ведущего процесса сеанса от имени соответствующего пользователя, и делегирование пользователю возможностей управления собственным сеансом (добавление собственных конфигурационных файлов для служб, запуск и остановка служб соответствующими командами). Также планируется реализовать некоторые побочные функции — например, встроенный в systemd механизм реагирования на события файловой системы (inotify).
Разумеется, для обеспечения требуемой функциональности, требуется модифицировать и код десктоп-окружений. Разработчики Upstart пока не уточняют, каким образом они планируют это делать — поддерживать патчи на уровне дистрибутива или продвигать их в апстрим. В любом случае, для запуска в Ubuntu во все десктоп-окружения будет необходимо интегрировать альтернативный механизм управления пользовательским сеансом, который будет совместим только с Ubuntu.
Леннарт Поттеринг, отмечает, что разработчики из Canonical сознательно идут на раскол, стремясь создать вокруг Ubuntu собственную экосистему, изолированную от мира GNU/Linux (хотя и основанную на его компонентах), как это уже сделали разработчики Google, создавая Android. Первым таким шагом стало создание Unity — десктоп-окружения, которое работает только и исключительно в Ubuntu. Следующим шагом, очевидно, будет жесткая привязка всех поддерживаемых пользовательских окружений к механизмам, специфичным для Upstart.
Стоит заметить, что это далеко не первый случай копирования в Upstart возможностей systemd. Например, большинство нововведений (https://www.opennet.ru/opennews/art.shtml?num=30394) ветки 0.9, включая возможность блокировки запуска службы, создание override-конфигов, поддержка inetd-style сокетов, были скопированы с systemd. В последующих версиях разработчики продолжили эту практику — в качестве примера можно привести поддержку (https://www.opennet.ru/opennews/art.shtml?num=35343) перезапуска процесса init на лету, с сохранением состояния всех служб. Любопытно, что именно эти разработчики, в частности, Steve Langasek, весной этого года блокировали (https://lists.ubuntu.com/archives/ubuntu-devel/2012-April/03...) инициативу перехода Ubuntu на systemd, мотивируя это исключительно тем, что дистрибутив еще не оправился от проблем после перехода с sysvinit на Upstart.
В то же время, на недавно прошедшем саммите разработчиков Ubuntu было объявлено (https://www.youtube.com/watch?feature=player_embedded&v=_WW0...) о начале работ по интеграции в Ubuntu ряда компонентов systemd, включая hostnamed, localed и timedated (демонов, осуществляющих авторизацию доступа к общесистемным настройкам, а также ответственных за информирование приложений об изменении этих настроек). Ранее эта работа выполнялась службой ubuntu-system-settings.
URL: https://plus.google.com/115547683951727699051/posts/ZZWLtq6tYdn
Новость: https://www.opennet.ru/opennews/art.shtml?num=35420