The OpenNET Project / Index page

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

Выпуск xdg-app 0.5.0, изолированных контейнеров для графических приложений

19.03.2016 10:12

Представлен выпуск инструментария xdg-app, предназначенного для организации распространения графических приложений в самодостаточных контейнерах, не привязанных к конкретному дистрибутиву Linux и надёжно изолирующих приложение от остальной системы. Контейнеры позволяют упростить распространение сторонних программ, не входящих в штатные репозитории дистрибутивов, за счет подготовки одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива.

При создании проекта были поставлены две ключевые цели: предоставление разработчикам сторонних программ возможности создавать и распространять приложения, работающие в разных дистрибутивах, и обеспечение работы с минимальным доступом к системе (доступ только к сетевым функциям и файлам пользователя, связанным с приложением). Отмечается, что в выпуске xdg-app 0.5.0 полностью реализована вся функциональность, необходимая для достижения первой цели. В том числе доступны средства для сборки контейнеров приложений, поддержки различных графических фронтэндов, использования в различных дистрибутивах. В будущем внимание планируется сосредоточить на развитии средств для sandbox-изоляции и проброса данных в контейнер.

Особенности xdg-app 0.5.0:

  • Новая библиотека libxdg-app, предоставляющая API для создания графических интерфейсов, работающих поверх xdg-app. Например, библиотека задействована для поддержки контейнеров-приложений в gnome-software и Papyros software center.
  • Поддержка обработки метаданных AppData, определяющих такую видимую пользователю информацию о пакете, как имя программы, описание, пиктограммы, скриншоты и списки изменений. Интеграция AppData позволила обеспечить в gnome-software удобную навигацию по репозиториям xdg-app;
  • Упрощён интерфейс командной строки, доступный через утилиту xdg-app;
  • Добавлена новая утилита xdg-app-helper, упрощающая процесс сборки приложений в форме окружений xdg-app;
  • Реализована возможность формирования однофайловых образов приложений, которые можно использовать для поставки приложения на физическом носителе;
  • Готовые пакеты сформированы для дистрибутивов Fedora, Ubuntu, Debian, Arch Linux и Mageia.

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

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

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

  1. Главная ссылка к новости (https://blogs.gnome.org/alexl/...)
  2. OpenNews: Началось тестирование ОС Subgraph, использующей контейнерную изоляцию приложений на десктопе
  3. OpenNews: Первый выпуск инструментария для запуска приложений GNOME в изолированных контейнерах
  4. OpenNews: Представлено первое полностью изолированное приложение для GNOME
  5. OpenNews: Разработчики GNOME развивают систему контейнеров для запуска графических приложений
  6. OpenNews: Red Hat и Docker развивают систему изолированных контейнеров для десктоп-приложений
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/44075-xdg-app
Ключевые слова: xdg-app
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Admino (ok), 10:38, 19/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > не может напрямую обращаться к оборудованию, за исключением вывода через DRI, и сетевой подсистеме
    > (X11 не поддерживается).

    Типа сеть у приложения есть, а X11 пользоваться нельзя. А как они этого добились?

     
     
  • 2.5, XXasd (?), 11:52, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Очередной дурачёк который думает что сетевое взаимодействие программ (сервер<=>клиент) это якобы TCP_socket по 127.0.0.1 ?

    Обломись! У нас есть unix-сокеты и dbus (т.е. опять-таки unix-сокеты)

     
     
  • 3.28, Аноним (-), 11:36, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > дурачок
     
  • 2.6, Аноним (-), 11:53, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Элементарно: X-сервер запускется без поддрежки TCP (это и так по умолчанию в большинстве дистров) и в контейнер не просовывается сокет /tmp/.X11-unix/X0.
     
  • 2.19, Аноним (-), 22:18, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Over 9000 способов. Например, в контейнере может быть свой localhost и отдельный IP, которые могут вообще не иметь доступа к сети host.
     

  • 1.2, Штунц (?), 11:25, 19/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > возможности создавать и распространять приложения, работающие в разных дистрибутивах

    Если бы это возможность изначально присутствовала в Linux, то давно бы уже на половине десктопов стоял, т.к. у производителей софта пропала бы преграда, мешающая один раз скомпилированному приложению работать везде и всегда

     
     
  • 2.4, Аноним (-), 11:45, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Какой-то кукарек подобный гетзефакс.
     
  • 2.12, angra (ok), 12:36, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Прикинь, эта возможность давным давно присутсвует в линукс в той же мере что и в винде. То есть чем более специфические вещи ты используешь, тем ниже переносимость. Ну и само собой нет переносимости вниз и на другие архитектуры. В винде ровно такая же ситуация.
     
  • 2.20, Аноним (-), 22:19, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Если бы это возможность изначально присутствовала в Linux,

    Все системные компоненты давно присутствуют. Вопрос в запускалке и программах.

     
  • 2.29, Клыкастый (ok), 13:24, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > мешающая один раз скомпилированному приложению

    в этом месте впердоливатели проприетари испытывают попаболь и учащённое сердцебиение. граждане, чей опенсорсный продукт собирают в репах дистростроители дышат ровно и глубоко.

     

  • 1.3, Меломан1 (?), 11:35, 19/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Виндовый скайп запихали бы в контейнер пусть даже весил бы 2 гб, но что бы в репе была всегда актуальная версия.
    А так да вещь полезная, можно с убунты несколько программ в федору перетащить.
     
     
  • 2.7, Аноним (-), 12:08, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вот поэтому я не использую федору и дебиан....;) не проще юзать убунту и ничего никуда не таскать?
     
     
  • 3.8, Аноним (-), 12:18, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не проще юзать source-based дистрибутивы и ставить то что душе угодно?
     
     
  • 4.9, Константавр (ok), 12:27, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не проще. Когда начнёшь канпелять сам, поймёшь.
     
     
  • 5.16, Аноним (-), 18:22, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Компиляю на протяжении 5 лет трудностей не наблюдаю
    Через distcc на это делается без напряга
    Ну конечно школьникам не потянуть отдельную машинку предназначенную для компеляции, за то плакаться на форумах как все плохо в вашей убунточке намного проще
     
     
  • 6.18, Константавр (ok), 22:15, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Скомпиляй ка мне это:
    http://ccwu.me/vsfm/

    Только всё, с зависимостями. Как скомпиляешь, можешь Praat со товарищи собрать. Только не из ебилдов, ручками.

     
     
  • 7.24, Ordu (ok), 16:41, 20/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Если ебилд написан ручками -- это считается за компиляцию ручками? А если компилятор компилирует сам, не требуя от меня ручками переводить программыный код в машинные коды -- это не является нарушением идеи "ручками"? А использование make не портит картины? А вот ещё, я когда-то давно сидя на слаквари решил собрать gnome из сорцов, узрел там путаницу в кросс-депендансах, и написал скрипт, который собирая вывод ./configure из разных пакетов, выяснял граф зависимостей, вычислял порядок сборки этих пакетов, и таким образом компилировал: такой подход считается "ручками" или нет?

    Но я отвлёкся. Мне очень любопытно оценить, сложность того, что вы считаете невыносимо сложным, но пока я вижу лишь одну сложность: где сорцы той программы, на которую вы дали ссылку? Я вижу там ссылки на бинари, а ссылки на сорцы -- нет. Сложность в том, что это программа без сорцов, и поэтому непосвящённым невозможно её скомпилять? Мне почему-то кажется, что это настолько банальная сложность, что вы скорее имели в виду что-то иное. Но что именно?

     
     
  • 8.26, Константавр (ok), 18:52, 20/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ребёнок уж не знаю, кто ты, мальчик или девочка Ты не в состоянии найти сорцы... текст свёрнут, показать
     
     
  • 9.27, angra (ok), 09:51, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я тоже не вижу сорцов на той странице Архивы с готовыми бинарниками или бинарны... текст свёрнут, показать
     
  • 9.31, Аноним (-), 13:33, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    типичный ТЛД FAQ-7 Is VisualSFM open sourced Programmable control of VisualSF... текст свёрнут, показать
     
     
  • 10.32, Константавр (ok), 14:15, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Правильно, это проект института, который частично открыл код для некоммерческого... текст свёрнут, показать
     
     
  • 11.33, Аноним (-), 14:27, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    However, I have already open-sourced SiftGPU feature detection matching and ... текст свёрнут, показать
     
     
  • 12.34, Константавр (ok), 17:05, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Их можно сомпилить со своими опциями, например просто sift, не на gpu и пр испо... текст свёрнут, показать
     
  • 4.13, Меломан1 (?), 12:39, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Не проще юзать source-based дистрибутивы и ставить то что душе угодно?

    Нет желания и времени разбираться в ошибках компиляции.


     
  • 4.14, all_glory_to_the_hypnotoad (ok), 14:17, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Проще. Только кто же тебе сорцы даст проприетарного дерьма? Эти контейнеры делают для дистрибуции проприетарщины.
     
  • 3.11, Меломан1 (?), 12:35, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > вот поэтому я не использую федору и дебиан....;) не проще юзать убунту
    > и ничего никуда не таскать?

    1. В Убунте нет DNF.
    2. В Убунте нет нового Gnome 3
    3. В Убунте нет простого и стабильного обновления системы.

     
     
  • 4.15, Аноним (-), 16:26, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > 1. В Убунте нет DNF.

    В Федоре уже можно, без плясок с контейнерами, сhroot-ами или самосборкой поставить несколько версий шланга и гцц?

    > 3. В Убунте нет простого и стабильного обновления системы.

    В котором просто и стабильно то кеды сломают
    https://lists.fedoraproject.org/archives/list/kde@lists.fedoraproject.org
    http://linuxbsdos.com/2015/11/06/how-to-upgrade-fedora-22-to-fedora-23-using-
    то плагины для gstreamer
    https://fedoramagazine.org/upgrading-from-fedora-22-to-fedora-23/

     
  • 4.21, Аноним (-), 23:11, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > 1. В Убунте нет DNF.

    Там apt. Он лучше.

    > 2. В Убунте нет нового Gnome 3

    В 16.04 вроде 3.18 будет.

    > 3. В Убунте нет простого и стабильного обновления системы.

    По сравнению с федорой? Да ты жирный тролль.

     
     
  • 5.23, Аноним (-), 15:46, 20/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Во-первых в Fedora вот вот Gnome 3.20 завезут, во-вторых в целях производительности DNF полностью переписывают на C, в-третих Fedora давно превратилась из тестовой площадки RHEL в самодостаточный надежный стабильный дистрибутив у которого есть собственные ветки полировки rawhide/tested те Fedora по стабильности не хуже, чаще лучше Ubuntu, внутри Fedora гораздо слаженней и симпатичней той же Ubuntu. В Fedora всегда самые передовые разработки которые иногда кочуют в другие дистры годами, Red Hat очень много комитят в ядро, в репах Fedora уйма софта, ну а весь проприетарный мусор можно найти в репе RPM Fusion. Да и почитайте что завезут в Fedora 24, заглядение ведь :) особенно вынос языков в мягкие зависимости. Лично я ничего не имею против Ubuntu и других дистрибутивов, людям нравятся пусть пользуются, для каждого свой дистрибутив по своему удобен, выше я написал часть того чем меня переманила Fedora чем она мне нравится, написал бы больше да честно говоря лень...
     
  • 4.25, BrainFucker (ok), 18:00, 20/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > 3. В Убунте нет простого и стабильного обновления системы.

    Наглая ложь, всегда прекрасно обновлялась Убунта. Вот например скринкаст записал: http://videobin.org/+88w/b20.ogg (14.04 → 14.10)

    И ещё вот: https://www.linux.org.ru/gallery/screenshots/6124095 (чел ради эксперимента последовательно обновил Убунту от 4.10 до 11.04).

     

  • 1.10, Sunderland93 (ok), 12:32, 19/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ждём поддержки в KDE Discover (Muon)
     
  • 1.17, Аноним (-), 20:42, 19/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для изоляции используются традиционные для Linux технологии контейнерной виртуализации, основанные на использовании cgroups, пространств имён (namespaces) и SELinux.

    У меня почти ничего этого нет. Я нормален?

    Либо это нужно чтобы клепать GUI для админов, либо я чего-то не понимаю... За исключением network namespaces не вижу пользы на десктопе ни от одной из перечисленных технологий.

     
     
  • 2.30, Клыкастый (ok), 13:29, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> основанные на использовании cgroups, пространств имён (namespaces) и SELinux.
    > Либо это нужно чтобы клепать GUI для админов, либо я чего-то не понимаю...

    никто не заставляет использовать, но уж представлять юскейс SELinux уж как-то можно...

     
     
  • 3.35, Crazy Alex (ok), 02:39, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    На десктопе у него один юзкейс - защищать безгололового идиота, который не ведает, что творит, от самого себя. Во всяком случае, вменяемый пользователь даже на винде при аккуратности мог сидеть за файрволлом (не встроенным в винду, конечно) без антивируса и не иметь проблем. В линуксе - и подавно.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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