The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Первый выпуск GNOME SDK для запуска приложений в изолированн..."
Отправлено opennews, 01-Апр-15 11:55 
Александр Ларсон (Alexander Larsson), активный разработчик GNOME и сопровождающий таких проектов, как Nautilus, Gnome-vfs и Dia, представил (https://blogs.gnome.org/alexl/2015/03/31/official-gnome-sdk-.../) первый выпуск GNOME SDK runtime и инструментария xdg-app (https://github.com/alexlarsson/xdg-app), предназначенных для организации распространения графических приложений в самодостаточных контейнерах, не привязанных к конкретному дистрибутиву Linux и надёжно изолирующих приложение от остальной системы. Контейнеры позволяют упростить распространение сторонних программ, не входящих в штатные репозитории дистрибутивов, за счет подготовки одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива.


Изолированное окружение формируется из двух компонентов: типового системного окружения (runtime), устанавливаемого через специальный репозиторий (http://sdk.gnome.org/repo/), и дополнительных зависимостей (bundle), связанных с приложением. В сумме runtime и bundle образуют начинку контейнера, при том, что runtime устанавливается отдельно и привязывается сразу к нескольким контейнерам, что позволяет обойтись без дублирования общих для контейнеров системных файлов. В одной системе может быть установлено несколько разных runtime (GNOME, KDE) или несколько версий одного runtime (GNOME 3.14, GNOME 3.16), в зависимости от требований используемых программ. Контейнер с приложением в качестве зависимости использует привязку только к определённому runtime, без учета отдельных пакетов, из которых состоит runtime. Все недостающие  элементы упаковываются непосредственно вместе с приложением. При формировании контейнера содержимое runtime монтируется как раздел /usr, а bundle монтируется в директорию /self.


GNOME SDK runtime  выступает в роли аналога SDK для разработчиков контейнеров и включает помимо файлов, используемых для запуска программы, компоненты, требуемые для сборки приложения. Для формирования контейнера, запуска  и управления его выполнением предоставляется специальная утилита xdg-app (https://github.com/alexlarsson/xdg-app). Runtime сформированы для GNOME 3.16 и библиотек FreeDesktop. Утилита xdg-app  уже помещена в corp-репозиторий (https://copr.fedoraproject.org/coprs/amigadave/xdg-app) Fedora 21 и 22.


В качестве примеров, сформированы (https://people.gnome.org/~alexl/test-apps/repo/) контейнеры для gedit, GNOME Builder и glxgears. Для установки runtime достаточно выполнить "<font color="#461b7e">xdg-app install-runtime --user gnome-sdk org.gnome.Platform 3.16</font>", а для загрузки приложения "<font color="#461b7e">xdg-app install-app --user test-apps org.gnome.gedit</font>", предварительно подключив репозитории командой "<font color="#461b7e">xdg-app add-remote --user gnome-sdk http://sdk.gnome.org/repo/</font>" и "<font color="#461b7e">xdg-app add-remote --user --no-gpg-verify test-apps https://people.gnome.org/~alexl/test-apps/repo/</font>.... Для запуска упакованной в контейнер программы можно использовать команду "<font color="#461b7e">xdg-app run org.gnome.gedit</font>".


Начинка runtime и контейнеров приложений формируется с использованием технологии OSTree (https://www.opennet.ru/opennews/art.shtml?num=37750), при которой образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива (например, можно быстро откатить систему к прошлому состоянию). RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree (http://rpm-ostree.cloud.fedoraproject.org/). Отдельная установка и обновление пакетов внутри рабочего окружения не поддерживается, система обновляется не на уровне отдельных компонентов, а целиком, атомарно меняя своё состояние. Предоставляются средства для инкрементального применения обновлений, избавляющие от необходимости полной замены образа при каждом обновлении.

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

URL: https://blogs.gnome.org/alexl/2015/03/31/official-gnome-sdk-.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=41949

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру