The OpenNET Project / Index page

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

Разработчики GNOME развивают систему контейнеров для запуска графических приложений

23.01.2015 20:50

Маттиас Класен (Matthias Clasen), лидер Fedora Desktop Team и участник GNOME Release Team, рассказал о состоянии разработки механизма поставки программ для GNOME в форме изолированных контейнеров, включающих все необходимые для работы приложения зависимости и не привязанных к конкретному дистрибутиву Linux. Подобные контейнеры позволят упростить распространение сторонних программ, не входящих в штатные репозитории дистрибутивов, за счет подготовки одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива. Конечному пользователю установка подобных контейнеров даст гарантию, что приложение будет надёжно отделено от основной системы, а также позволит не нагромождать систему дополнительными зависимостями и пакетами.

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

Окружение в котором работает приложение формируется из типового системного runtime-окружения и связанных с приложением дополнительных зависимостей (bundle). В сумме runtime и bundle образуют начинку контейнера. Для использования в одной системе может быть установлено несколько разных runtime (GNOME 3.14, KDE 5.6) или несколько версий одного runtime (GNOME 3.14, GNOME 3.16), в зависимости от требований используемых программ. При этом bundle c программой в качестве зависимости использует только привязку к определённому runtime, без учета отдельных пакетов, из которых состоит runtime. Все недостающие элементы упаковываются непосредственно вместе с приложением в bundle.

При формировании контейнера содержимое runtime монтируется как раздел /usr, а bundle монтируется в директорию /self. Для разработчиков приложений предлагается расширенный sdk runtime, который выступает в роли аналога SDK и включает помимо файлов, используемых для запуска программы, компоненты, требуемые для сборки приложения. Командой "xdg-app run" осуществляется формирование контейнера и запуск программы, а командой "xdg-app build" выполняется создание контейнера для сборки программы.

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

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


Обсуждение (52) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 21:00, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Ах вот что оно зачем kdbus в ядро пихали, оказывается оно не только Поттеру нужно у него своя секта
     
     
  • 2.5, Аноним (-), 21:15, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > оказывается оно не только Поттеру нужно

    Да и идея объединить все базовые программы системы в один проект - тоже не только ему нужно.
    BSDшники так уже много лет жили, а теперь удобство такой схемы начало доходить и до линуксоидов.

     
     
  • 3.13, Аноним (-), 22:41, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > BSDшники так уже много лет жили,

    BSDшники сделали из этого какой-то полурелигиозный культ, "потому что тут так принятно". А в этой конструкции просматривается какая-то заточенность на практические сценарии использования. Ну там всякие стимы и прочая так отпиливать, напрмер.

     
     
  • 4.32, klx (?), 09:11, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да все нормально, это наши заморочки из джерси
     
     
  • 5.55, Аноним (-), 12:32, 27/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    )))))
     
  • 3.15, Аноним (-), 22:46, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ты, похоже, не понимаешь ничего ни в системде, ни в BSD.
     
  • 3.16, asdasd (?), 22:59, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Да и идея объединить все базовые программы системы в один проект

    FBSD это не один проект, это набор проектов (утилит), равно как и тот-же проект GNU это тоже набор проектов. А systemd это один большой кусок.

     
  • 3.17, Аноним (-), 23:07, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Да и идея объединить все базовые программы системы в один проект -
    > тоже не только ему нужно.
    > BSDшники так уже много лет жили, а теперь удобство такой схемы начало
    > доходить и до линуксоидов.

    Объединить в одной директории и завязать код на друг друге это разное. systemd с udev сделал именно второе, тем самым подтолкнул разработчиков к переходу на его. Модульность и свалка кода это разные понятия. От тесной интеграции всех программ я пользы не вижу, что нужно одному Васе, второму Васе может никогда не понадобится. Представьте себе ядро Linux в котором все драйвера скомпилированы статично а не динамично. Драйвера же это базовая часть

     
     
  • 4.35, Аноним (-), 11:40, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть 80% Вась нужно именно то, что собрано в кучу, то остальные 20% Вась либо терпят наличие чего-то лишнего либо делают свой набор либо берут набор от другого Васи из 20%. Все довольны.
     
  • 3.27, all_glory_to_the_hypnotoad (ok), 01:09, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > BSDшники так уже много лет жили

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

     
  • 2.9, Аноним (-), 21:34, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ага зовется Red Hat
     
     
  • 3.10, Аноним (-), 21:43, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А как же интел?
     

  • 1.2, Anonimus (??), 21:00, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Кто смеялся над pbi в PC-BSD? Они обогнали время!
     
     
  • 2.11, Аноним (-), 21:45, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Кто смеялся над pbi в PC-BSD? Они обогнали время!

    Да такие идеи постоянно всплывают https://www.opennet.ru/opennews/art.shtml?num=40278
    Только вот пока не особо взлетают на десктопах.

    А вот на серваках уже вполне вольготно устроились, будучи важной деталью облачных технологий.

     

  • 1.4, Аноним (-), 21:14, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Если еще и дедупликацию файлов между bundle сделают, будет вообще шикарно.
     
     
  • 2.31, Fracta1L (ok), 07:56, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно для этого использовать Btrfs.
     

  • 1.6, Baz (?), 21:17, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    никогда не думал, что увижу эту фразу для графических приложений - (X11 не поддерживается)
     
     
  • 2.14, Аноним (-), 22:43, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > (X11 не поддерживается)

    По мнению разработчиков, секурити X11 настолько фиговая что нивелирует весь смысл контейнеров.

     
  • 2.21, KinderSurprise (?), 23:46, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > никогда не думал, что увижу эту фразу для графических приложений - (X11
    > не поддерживается)

    Это не для приложений. Это данное дермо под которое предлагают делать приложения. Для любителей ... >:-)

     
     
  • 3.25, KinderSurprise (?), 00:32, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это не для приложений. Это данное дермо под которое предлагают делать приложения.
    > Для любителей ... >:-)

    (даже сам задумался. Как у них не поддерживается X11, если оно работает через сеть. И без всяких dbus...)

     

  • 1.8, 3 (?), 21:24, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Прощай GNU/Linux!
    Привет SystemD/Linux!
    Вот и формат пакетов для новой оси вырисовывается...
     
     
  • 2.12, Аноним (-), 21:49, 23/01/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Казалось бы, при чем тут systemd/Linux? Это ж GNOME OS!
     
     
  • 3.40, Evolve32 (ok), 19:27, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Казалось бы, при чем тут systemd/Linux? Это ж GNOME OS!

    https://www.opennet.ru/opennews/art.shtml?num=40494

     

  • 1.18, iZEN (ok), 23:13, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да, проблема в среде гноморазработчиков: PBI и Jail не для них — слишком сложно.
     
  • 1.19, Алоним (?), 23:28, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Реинкарнация «жирных» бинарников со всеми ихними проблемами. Как в такой блоб впихнуть драйвера? Как проапдейтить зависимости когда там будет найден баг?
     
     
  • 2.30, Аноним (-), 05:05, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > впихнуть драйвера?

    Никак, разумеется: в кернелмоде никто не ждет код который в юзермоде надо песочницой отгораживать.

     
     
  • 3.38, Аноним (-), 17:53, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> впихнуть драйвера?
    > Никак, разумеется: в кернелмоде никто не ждет код который в юзермоде надо
    > песочницой отгораживать.

    Абажи, ещё не вечер. Будет юзерспейсный код через kdbus ядро патчить.

     

  • 1.20, Аноним (-), 23:33, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    >позволит не нагромождать систему дополнительными зависимостями и пакетами

    Только вот каждая такая программа будет нести с собой свой отдельный вагон библиотек, которые уже есть в системе, т.е. многократное дублирование получается.

     
     
  • 2.23, iZEN (ok), 00:26, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>позволит не нагромождать систему дополнительными зависимостями и пакетами
    > Только вот каждая такая программа будет нести с собой свой отдельный вагон
    > библиотек, которые уже есть в системе, т.е. многократное дублирование получается.

    Там рекурсия: каждая программа тащит только нужные ей библиотеки, а библиотеки тащат только нужные им зависимые библиотеки. В итоге умозрительный "вагон" в классическом представлении превращается по сути в тележку реально востребованного кода.

     
     
  • 3.34, Xaionaro (ok), 09:52, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > в тележку реально востребованного кода.

    На самом деле нет. Если используются shared object-ы, то тогда не проведено выкидывание неиспользуемого кода (LTO)... Да и вообще все плюсы динамической линковки исчезают (остаются лишь одни минусы [1]) в данной пакетно-контейнерной схеме.

    [1] http://sta.li/faq

     
  • 2.43, Аноним (-), 11:04, 25/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для систем, в которых браузер жрёт гигабайты, это очень важная проблема.
     
  • 2.49, Vladjmir (ok), 21:03, 26/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Большинство нужных программе библиотек будет в среде исполнения runtime, а в контейнере с приложением bundle будут только те библиотеки, которых нет в runtime. Поэтому контейнер не должен содержать большого количества библиотек и уж, тем более, не должно быть избыточного дублирования одинаковых библиотек.
     

  • 1.22, ананим.orig (?), 00:18, 24/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Меня интересует только один админский вопрос применительно к сабжу — предусмотрен ли штатный механизм надёжного запрета всего этого барахла?
     
     
  • 2.24, iZEN (ok), 00:28, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Меня интересует только один админский вопрос применительно к сабжу — предусмотрен
    > ли штатный механизм надёжного запрета всего этого барахла?

    Да — отсутствие места на дисках, отсутствие механизма дедупликации на уровне файлов, отсутствие nullfs в Linux, в конце-концов. Всё нужно изобретать заново для этой замечательной операционной системы — есть чем занять людей в ближайшее десятилетие. :)


     
     
  • 3.45, ананим.orig (?), 14:52, 25/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не сцы, г3 в бзде тоже есть (ну или будет).
    Как и аналоги системды, дбас и тд, и тп.
    Так что ты тоже будешь изобретать "отсутствие свободного места".
     
  • 2.28, all_glory_to_the_hypnotoad (ok), 01:18, 24/01/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Меня интересует только один админский вопрос применительно к сабжу — предусмотрен ли штатный механизм надёжного запрета всего этого барахла?

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

     
     
  • 3.51, Vladjmir (ok), 21:24, 26/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не только покупать, но и брать бесплатно. Для проприетарщиков такой подход тоже открывает кучу возможностей, но без этого Линукс не выйдет за пределы 3%. Линукс уже готов для корпоративного использования, но единственное, что его сдерживает -- это отсутствие универсального способа доставки приложений для всех дистрибутивов и слишком сильная привязка софта к конкретным пакетным менеджерам и дистрибутивам, коих вагон и маленькая тележка. Контейнеры Gnome ликвидируют эту проблему. И ведь они решают проблему поставки не только гномовских приложений, но вообще для любых графических тулкитов.
     
     
  • 4.54, Mihail Zenkov (ok), 23:33, 26/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Как valve без гномовских контейнеров и виртуализаций игры распространяет?

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

    Не такая там проблема, что бы такой огород городить. У меня очень переработанный lfs - нет udev/dbus/pulseaudio/systemd, busybox вместо *nix utils, не придерживаюсь строго FHS, glibc тоже существенно подрезана.

    Opera ставилась без проблем. Лень было собирать LO4 - взял сборку для дебиана - ругнулась, что у меня libdbus нет. Взял libdbus с дебиана - и все заработало (без демона dbus!). Pianoteq, Unreal, ET:QW - тоже работали.

     
     
  • 5.57, Vladjmir (ok), 23:07, 27/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Как valve без гномовских контейнеров и виртуализаций игры распространяет?

    Клиент Steam и игровой дивжок у них под все дистрибутивы?

     
  • 2.50, Vladjmir (ok), 21:16, 26/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Меня интересует только один админский вопрос применительно к сабжу — предусмотрен ли штатный механизм надёжного запрета всего этого барахла?

    Запретов не будет -- не хочешь не ставь. Реально независимые от дистрибутива контейнеры приложений будут лежать в магазинах типа Google play, Yandex store, дистрибутивных центрах приложений или на сайтах разработчиков софта, которые предпочтут собрать 1 пакет для всех дистрибутивов и выложить его на FTP.

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

     

  • 1.36, Аноним (-), 11:41, 24/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Только зачем привязывать это все к гному? Запуск программ не должен быть связан с оболочкой.
     
  • 1.37, Mihail Zenkov (ok), 16:39, 24/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Маразм крепчал ...
    Давайте уж сразу образы под qemu/virtualbox для каждой программы сделаем. Так мы решим проблему не только безопасности и зависимостей, но кроссплатформенности и даже кроссархитектурности!
     
     
  • 2.42, Аноним (-), 11:02, 25/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > но каждый думал а давай
     
  • 2.48, Crazy Alex (ok), 17:16, 26/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше даже вслух такое не говори. Неровен час...
     
  • 2.53, Vladjmir (ok), 21:30, 26/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Слишком большие накладные расходы. Сейчас нет недостатка в технологиях виртуализации, но что-то не слышно, чтобы они были дико популярными для распространения софта.
     
  • 2.58, Anonimus (??), 13:44, 01/02/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да еще лучше зашить гипервизор прямо в биос и все дела.  
     

  • 1.44, robux (ok), 11:20, 25/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    GNOME таки укатился в ср@ную ж*пу...
    Беда в том, что и Gtk и с Gstreamer за собой уволок.

    И это нихрена не смешно.

     
  • 1.46, Куяврег (?), 15:26, 25/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Подобные контейнеры позволят упростить распространение сторонних программ, не входящих в штатные репозитории дистрибутивов

    Непонятно зачем упрощать то, что нужно запретить.

     
  • 1.47, rachok (ok), 00:45, 26/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >поставки программ для GNOME в форме изолированных контейнеров, включающих все необходимые для работы приложения зависимости и не привязанных к конкретному дистрибутиву Linux

    А зачем делать из линукса форточку?

     
     
  • 2.52, Vladjmir (ok), 21:27, 26/01/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Чтобы сделать линукс полноценной корпоративной платформой.
     
     
  • 3.59, Аноним (-), 13:02, 22/02/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Чтобы сделать линукс полноценной корпоративной платформой.

    Скока стоит?

     

  • 1.56, Аноним (-), 17:40, 27/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    jvm?
     

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



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

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