The OpenNET Project / Index page

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

Первый выпуск инструментария для запуска приложений GNOME в изолированных контейнерах

01.04.2015 11:34

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

Изолированное окружение формируется из двух компонентов: типового системного окружения (runtime), устанавливаемого через специальный репозиторий, и дополнительных зависимостей (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. Runtime сформированы для GNOME 3.16 и библиотек FreeDesktop. Утилита xdg-app уже помещена в corp-репозиторий Fedora 21 и 22.

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

Начинка runtime и контейнеров приложений формируется с использованием технологии OSTree, при которой образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива (например, можно быстро откатить систему к прошлому состоянию). RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree. Отдельная установка и обновление пакетов внутри рабочего окружения не поддерживается, система обновляется не на уровне отдельных компонентов, а целиком, атомарно меняя своё состояние. Предоставляются средства для инкрементального применения обновлений, избавляющие от необходимости полной замены образа при каждом обновлении.

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

  1. Главная ссылка к новости (https://blogs.gnome.org/alexl/...)
  2. OpenNews: Представлено первое полностью изолированное приложение для GNOME
  3. OpenNews: Разработчики GNOME развивают систему контейнеров для запуска графических приложений
  4. OpenNews: Red Hat и Docker развивают систему изолированных контейнеров для десктоп-приложений
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41949-sandbox
Ключевые слова: sandbox, gnome
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (31) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 11:55, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Выглядит оно все конечно интересно, но что-то есть сильные сомнения что это будет работать.
     
  • 1.2, 1337 (?), 12:20, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже работает. А если вспомнить докер...
     
  • 1.3, Аноним (-), 12:21, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > активный разработчик GNOME

    ...ну совсем не палятся.

     
  • 1.4, Crazy Alex (ok), 12:23, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Отвратительная идея. Причём в ней плохо практически всё. И установка софта пользователем, и желание запускать на машине недоверенный софт, и оторванность от пакетной системы дистрибутива, и таскание библиотек с собой, и простота распростанения бинарного софта - прямая дорога для проприетарщины.
     
     
  • 2.6, Онотоле (?), 12:33, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А вы не задумывались, почему на линуксе так мало игр? Потому что они все будут все равно проприетарными. Вариант сделать пакеты для установки бинарщины, как в макосях, без колдовства с консолью - вполне норм. Пакетный менеджер то из системы не вырезают... На маках две системы вполне удачно сосуществуют.
     
     
  • 3.8, Mihail Zenkov (ok), 12:49, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    С таким подходом, linux как игровую платформу можно даже не рассматривать - будет глючить и тормозить. Static linking прекрасно позволяет тягать все свое с собой, да и производительность от него только в выигрыше.
     
  • 3.12, Crazy Alex (ok), 14:18, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Последнее, что меня интересует в линуксе (и вне его) - это игры.
     
     
  • 4.16, Аноним (-), 17:32, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вы же хотели больше юзеров на линукс. А мечты могут и сбыться :(
     
     
  • 5.17, Sluggard (ok), 19:32, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ты опознал в Алексе Шаттлворта?
     
  • 5.19, Аноним (-), 21:33, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А как же тогда налёт маргинальщины, некро- и зоофилии, декаданс и желание странного? Будет больше юзеров, вы весь свой иномирный налёт растеряете. Непорядочек будет.
     
  • 5.26, Crazy Alex (ok), 21:10, 02/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вы меня с кем-то путаете. Мне абсолютно наплевать, сколько людей пользуется линуксом. Лишь бы он моим задачам удовлетворял. Если уж на то пошло, это скорее во вред - ради простоты для "чайника" сильно усложнили архитектура и система стала менее понятной и управляемой. Тот же NM - хороший пример.
     
  • 3.13, ананим.orig (?), 14:52, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А вы не задумывались, почему на линуксе так мало игр?

    Уже давно не мало.
    Меньше, чем в вантузе, но точно уже не мало.

    И для них уже есть стим-сдк, свободный и бесплатный. Тоже не зависит от дистра. При этом есть плюшки для стимовских разработок, но можно использовать и абсолютно автономно, вкючая плагин к блендеру.

     
  • 3.14, Клыкастый (ok), 16:24, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Задумывались. А ты задумывался, ну вот в Стиме уже есть и средство доставки проприетарщины и уголок хранения яростного булшита для тех, кому лень разбираться, как делать правильно. А игр всё одно меньше. Задумывался почему?
     
     
  • 4.20, Аноним (-), 21:38, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему? Разрабы игр наконец всосали, что никакая стимось не взлетит, что это просто игрушка Гейба и тогда накуй оно надо дополнительно корячиться ради 1% маргинальщины, у которой к тому же, в большинстве своём, та же винда в дуал-буте стоит? Я правильно ловлю суть?


     
     
  • 5.23, Клыкастый (ok), 10:30, 02/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Спрашивать надо у разрабов, но имхо - суть ты словил совершенно неправильно.

     
  • 2.29, Аноним (-), 08:00, 11/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >в ней плохо практически всё
    >и простота распростанения бинарного софта

    Непредвзятый комментарий такой непредвзятый

     

  • 1.5, Аноним (-), 12:27, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Setup.exe?
     
     
  • 2.11, Меломан (ok), 13:46, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Setup.exe?

    Да, только уже кроссплатформенный.
    Некоторые проприетарщики создают бинарники только для юбунты, а я остаюсь с федориным-горем ни с чем. А теперь всем будет доступно все! Ура, товарищи!

     
  • 2.24, Aceler (ok), 11:55, 02/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сравнил контейнер с пальцем.
     

  • 1.7, Mihail Zenkov (ok), 12:41, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Похоже на первоапрельскую шутку, но очень страшную.
     
  • 1.9, anonimous (?), 13:09, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Смешно.
     
  • 1.10, anonymous (??), 13:24, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как вы будете совмещать контейнер и direct rendering? Нормальные проги, конечно, могут и без 3D, но вот про браузеры этого не скажешь - начинают жутко тормозить по поводу и без.
     
     
  • 2.15, Аноним (-), 16:33, 01/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    это специальный способ выкинуть из гнома ещё остающуюся в нём пользу.
     
  • 2.25, XXasd (?), 16:47, 02/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Контейнер -- это не виртуальная машина, а всего лишь легковестное unshare .

    И вообще -- графика, работающая через Wayland -- какие имеет проблемы с 3D?

     
     
  • 3.27, Аноним (-), 23:04, 02/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    только одну — она не существует
     

  • 1.18, 0eviy (ok), 21:04, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    мне нра
     
  • 1.21, Аноним (-), 22:46, 01/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Сделал pacman -Rsn gnome. Пишу из коншольки и попукиваю от счастья! От блин! Обосррр..
     
  • 1.22, Xasd (ok), 06:08, 02/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    почему и установка "runtime" и установка "application" -- идёт через подключение репозитория?

    что если злоумышленник подсунит мне "runtime" вместо "application" ? или подсунит завирусованное "application" вместо ранее установленного другого "application" другого автора ?

    какой мне смысл от изолированного "безопасного" запуска, если злоумышленник может сотворить своё зло -- ещё в момент ДО этого запуска? :-D

    короче... подключение репозиториев (которые в итоге всё своё говно сваливают -- в *одну* сраную кучу) -- это огромный минус этой системы.

    в остальном -- молоднцы. хорошая работа.

     
     
  • 2.28, Аноним (-), 00:50, 04/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >подсунит

    подсунет

     
  • 2.30, Аноним (-), 08:03, 11/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Коммиты в ostree подписываются через gpg
     

  • 1.31, Аноним (-), 11:14, 05/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поясните пожалуйста если приложение работает не взаимодействуя с ОС, то каковы будут её размеры. Ведь все библиотеки придётся запихивать внутрь этого контейнера.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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