Александр Ларсон (Alexander Larsson), активный разработчик GNOME и сопровождающий таких проектов, как Nautilus, Gnome-vfs и Dia, рассказал об успехах в реализации самодостаточных контейнеров для запуска графических приложений, не привязанных к конкретному дистрибутиву Linux. На примере игры Neverball сформирована первая полноценная сборка приложения, демонстрирующего возможности поставки графических приложений в форме контейнеров.

Сформированное для приложения изолированное окружение полностью независимо от используемого дистрибутива, не имеет доступа к файлам и процессам пользователя или основной системы, не может напрямую обращаться к оборудованию, за исключением вывода через DRI, и сетевой подсистеме. Подготовленный контейнер пока пригоден для запуска в Fedora 21, так как требует наличия в системе таких ещё не получивших повсеместного распространения технологий как протокол Wayland и система обмена сообщениями kdbus, которые применяются для организации взаимодействия начинки контейнера с внешней средой. Вывод графики и организация ввода производится только через Wayland (X11 не поддерживается). Для вывода звука применяется PulseAudio. Обеспечение изоляции контейнера основывается на использовании cgroups, пространств имён (namespaces) и SELinux.

Для загрузки контейнера и общего для всех контейнеров runtime-окружения используется утилита xdg-app. Например, для установки runtime можно выполнить "xdg-app install-runtime --user repo org.freedesktop.Platform 0.1", а для загрузки приложения "xdg-app install-app --user repo org.neverball.Neverball". Запуск упакованной в контейнер программы осуществляется по аналогии обычными приложениями. Из ограничений, которые планируется устранить в будущем, отмечается отсутствие API для предоставления пользователем выборочного доступа к внешним файлам и устройствам, а также организация разделения между собой клиентов PulseAudio.



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