The OpenNET Project / Index page

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

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

Представлен выпуск инструментария 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
Тип: Программы
Ключевые слова: xdg-app
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | 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 +/
    Я тоже не вижу сорцов на той странице. Архивы с готовыми бинарниками или бинарными либами, из которых можно собрать бинарь, вижу, а вот сорцов - нет. Если у тебя фантастический скилл поиска по вебу, то я рад за тебя, только какое отношение это имеет к сборке из исходников?

    Из ответа Ordu явно следует, что его знания отнюдь не ограничиваются командами emerge. Если ты этого не понял, то приходится усомниться в твоем умении читать и понимать прочитанное.
     
  • 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 +/
    В Федоре уже можно, без плясок с контейнерами, сhroot-ами или самосборкой постав... весь текст скрыт [показать]
     
  • 4.21, Аноним (-), 23:11, 19/03/2016 [^] [ответить]     [к модератору]  
  • +/
    Там apt Он лучше В 16 04 вроде 3 18 будет По сравнению с федорой Да ты жирны... весь текст скрыт [показать]
     
     
  • 5.23, Аноним (-), 15:46, 20/03/2016 [^] [ответить]     [к модератору]  
  • +5 +/
    Во-первых в Fedora вот вот Gnome 3 20 завезут, во-вторых в целях производительно... весь текст скрыт [показать]
     
  • 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 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    У меня почти ничего этого нет Я нормален Либо это нужно чтобы клепать GUI для ... весь текст скрыт [показать]
     
     
  • 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:
    Заголовок:
    Текст:


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