Кристиан Шаллер (Christian Schaller), возглавляющий группу по развитию десктоп-систем в компании Red Hat, рассказал (http://blogs.gnome.org/uraeus/2014/07/10/desktop-containers-.../) о работе над технологией изолированного выполнения десктоп-приложений для GNOME, которая развивается для Fedora Workstation совместными усилиями разработчиков из Red Hat и проекта Docker.
Суть проекта в подготовке средств, которые бы позволили использовать Docker для создания контейнеров для десктоп-приложений, по аналогии с существующими средствами создания контейнеров для серверных и web-приложений. При этом в случае десктоп-приложений возникает необходимость организации взаимодействия из контейнера с API графической подсистемы и обеспечение доступа к данным пользователя. В настоящее время уже подготовлен прототип контейнера для запуска приложения Cheese, в котором используется концепция "порталов", предоставляющих доступ к ресурсам вне контейнера через API DBus. Например, для Cheese таким способом обеспечен доступ к web-камере и микрофону.
Одновременно, Алан Дей (Allan Day), сотрудник компании Red Hat и член команды дизайнеров GNOME, рассказал (http://afaikblog.wordpress.com/2014/07/10/sandboxed-applicat.../) о мотивах использования дополнительной изоляции и некоторых идеях по распространению, установке и обновлению десктоп-приложений, оформленных в виде самодостаточных контейнеров. Выполняемые в контейнере приложения смогут получить доступ только к ограниченному набору системных интерфейсов. При необходимости работы с дополнительными API (например, работа камерой, GPS, микрофоном) или обращения к данным пользователя предлагается запрашивать у пользователя подтверждение полномочий.
Кроме повышения уровня безопасности и приватности контейнеры позволят задействовать для приложения зависимости, которые не предоставляются текущей операционной системой, а также отделить установку и обновление контейнеров от основной операционной системы. Например, если программа требует более новый выпуск библиотеки, то её поставка в контейнере избавит от необходимости перехода всей системы на новую библиотеку с обновлением всех зависимостей. Поставка в контейнерах также даст возможность не нагромождать систему лишними зависимостями, так как вместо доустановки в систему зависимостей, необходимых только одному приложению, проще использовать данное приложение в форме контейнера.
Разработчики приложений, особенно тех, что не включены в штатные репозитории дистрибутивов, смогут распространять программы в виде контейнеров, включающих все зависимости, что избавит от необходимости формирования отдельных сборок для каждого дистрибутива. Пользователь же получит дополнительные гарантии, что оформленное в виде контейнера приложение не выйдет за границы дозволенного и будет полностью подконтрольно при выполнении операций с его данными.URL: http://blogs.gnome.org/uraeus/2014/07/10/desktop-containers-.../
Новость: http://www.opennet.me/opennews/art.shtml?num=40176
всё к этому и ишло, если попрёт то через пару лет больше половины дистрибутивов просто вымрет
Например Redhat
по правде говоря у Ubuntu намного больше шансов утонуть чем у Redhat, возьмем к примеру последние тенденции:
Ubuntu:Upstart, Mir, Unity
Redhat:systemd, Wayland, GNOME Shell
а Docker может оказаться последним гвоздём в гроб Убунту и ей подобных.
> по правде говоря у Ubuntu намного больше шансов утонуть чем у RedhatЭто в федора-тим такое поверие что ли?
Даже если в убунту будет системд, вяленый и гном, всё-равно будут её использовать.
Как и дебиан.
Почему? Потому что федора — это вечно эксперементальный дистр. И между ним и сервером (рхел, центос,..) — пропасть.
Собрать себе то, что хочется можно только в альтернативах — дебиан, убунта, генту,..Тем более что валеного так и нет, г3 — полный трэш, а системд (хоть его и пропихнули везде) решает те проблемы, которых до него и не было, и не решает те, которые были решены уже лет дцать в альтернативах (например журналирование, мониторинг,..).
Блин, да из эн-цати виртуалок у меня нет в продакшене ни одной с системд.
И что характерно, постепенно устаревающие дистры на инит меняю на шаблоны, собранные из генту. Рассматривать дистры с системд пока даже не собираюсь. Вот такой мой личный "например".
у меня crux с LAMP взлетает быстрее, нежели arch с тем же набором... к чему бы это? =)
> у меня crux с LAMP взлетает быстрее, нежели arch с тем же
> набором... к чему бы это? =)подсказка: arch на systemd, у cruxa свой bsd-like init
Ну дык. Каждому своё.А у меня шаблоны на генту с опенрк (тот же init в основе, но можно и runit использовать).
Эксперементы с системд прекратил месяцев 9 назад. Поначалу действительно было быстрее, но с ростом функционала стал заметно медленнее, плюс не решённые "насущьные" прблемы (пример выше был), плюс новые траблы, которых раньше и не было (например — не могу размонтировать /tmp. И висит. Вечно висит).Всё-равно намёк на "какчество ын-тыр-прайса" тут не работает.
Кому он был нужен, тот уже там.
> Ну дык. Каждому своё.
> А у меня шаблоны на генту с опенрк (тот же init в
> основе, но можно и runit использовать).на опенрц я уже много лет и проблем не испытываю, когда-то был еще init-ng, помнится, но я за ним давно не слежу =)
> Эксперементы с системд прекратил месяцев 9 назад.я поглядываю раз в пятилетку чисто из академического интереса =) дальше лаборатории я его никуда не пущу
> Поначалу действительно было быстрее,
> но с ростом функционала стал заметно медленнее, плюс не решённые "насущьные"
> прблемы (пример выше был), плюс новые траблы, которых раньше и не
> было (например — не могу размонтировать /tmp. И висит. Вечно висит).ага, может вам бы еще /usr отмаунтить? =)
> Всё-равно намёк на "какчество ын-тыр-прайса" тут не работает.
> Кому он был нужен, тот уже там.
> ага, может вам бы еще /usr отмаунтить? =)Да /usr то ладно. Тут хоть думку думать надо! :D
А /tmp?
Вообще ж нафиг не нужна. В случае с tmpfs (а оно так и есть) вообще забить на неё можно. Но для системд почему-то /tmp стал критически важным.
одминоватники итт, не способные в документацию и саморазвитие мусолят свои субъективные оценки, мифы багтраков двухгодичной давности, созданные такими же дегенератами, не способными в документацию, и что характерно, судя по продолжительности и цитированию, находят подобное "общение" продуктивным. воистину, ватники
Говсподин Кличко, залогинтесь
> не могу размонтировать /tmpА отмонтировать /tmp в дистре с systemd не все могут. Вернее, могут не только лишь все, мало кто сможет это сделать.
> Это в федора-тим такое поверие что ли?по правде говоря ни федора ни редхат никогда на железе у меня не стояли, предпочитаю Арч и Дебиан.
> Даже если в убунту будет системд, вяленый и гном, всё-равно будут её использовать.
да, ты прав, ведь останутся по сути нескучные обои от Убунту, как же без них будут начинающие пользователи. Даже сейчас многие предпочитают Мяту, а Убунта всё дальше отходит на второй план. И если в ближайшие пару лет не втянутся китайцы то Убунту ждёт незавидная участь.
Да и вообще спор сейчас бессмысленный, всё будет более менее ясно через год-два, кто на коне а кто на щите.
>> Даже если в убунту будет системд, вяленый и гном, всё-равно будут её использовать.
> да, ты прав, ведь останутся по сути нескучные обои от Убунту, как же без них будут начинающие пользователи.А ещё деб-срц с кучей софта различных версий и вариантов.
И можешь дальше ёрничать.
> Даже сейчас многие предпочитают МятуА мята — это от слова "федора"? Не?
> И если в ближайшие пару лет не втянутся китайцы то Убунту ждёт незавидная участь.Если в ближайшие годы рх не наведёт порядок со своими "управленцами нового типа", то весело будет всем.
И что характерно — в любом варианте альтернативы останутся. Даже если ядро на бсдишное сменят. Более того, новые появятся. Как при любой перестройке. Собсно из-за вот этого "разброда и шатания" каждый вменяемый админ по сути делает свою сборку.
А вот федора так и останется тестовым полигоном. И как шаблон она не пригодна (намёк на мяту, кстати. Таже бубунта, вид в профиль)
>> Даже сейчас многие предпочитают Мяту
> А мята — это от слова "федора"? Не?строго говоря, это ubuntu-based Linux Mint
Ну дык и я о чём.
В свою очередь убунту — дебиан-бэйзед.
И никакие системды это не изменят.
(Более того, как вставили, так и убрать могут. Не говоря уже про кфрибсд)
Про вяленый и г3 — так вообще ни о чём. Первого вообще ещё нет, второй нафиг никому не нужен. И даже в рхел7 он чисто номинально — серверный дистр по ДЕ не выбирают.
>а системд решает те проблемы, которых до него и не было
>...
> и не решает те, которые были решены уже лет дцатьВот так и рождаются инновационные продукты. Хочу заметить. ;)
с лора заглянул дурачок?
Да это только гемор лишний, нужный для проприетарщины. А проприетарщины нам тут извините, не надо)
проприетарщина может и без контейнеров спокойно себя чувствовать.
Docker это всего лишь удобный инструмент который может приблизить вендекапец.
На кой мне вендекапец с виндовыми проблемами, перелезшими в линукс?
Цель любой более-менее распостранённой ОС быть удобной для массового пользователя.
В Линукс, как по мне, как раз и не хватает некоторых возможностей которые предоставляет винда из коробки, а именно простоту установки и запуска любых приложений. Каждый дистрибутив это видит по разному, но всё в итоге упирается в свою экосистему. Докер предоставит всего лишь удобную возможность программам выйти за рамки конкретной экосистемы.
Согласитесь что будет очень удобно, например, запустить в пару кликов программу в Убунте которая собранная на Арче, да и ещё иметь несколько версий в придачу(на всяких случай). Или, к примеру, я с большой радостью запихну Skype в такой контейнер и выставлю необходимые ограничения.
В общем, как по мне, от такого подхода Linux только выиграет, ведь кроме традиционного подхода появится не просто ещё один, а подход объединяющий большинство дистрибутивов, и пользоваться им или нет будет решать только сам юзер.
> Цель любой более-менее распостранённой ОС быть удобной для массового пользователя.И в чём удобство то?
Чиз в контейнере гонять?Вот скайп (проприетарь) в контейнер загнать — это да, это нужно.
Да так, чтобы и гео-позицию определял в районе южного полюса, и контакты из адресной книги местных пингвинов, и тд.А опенсорс-проги загнать в рамки никогда не было проблемой.
Для этого есть и селинух, и нэймспейсес, и сигроуп, и ещё 100500 способов. "выбирай, нихачу".
Зыж
добавлю
> Вот скайп (проприетарь) в контейнер загнать — это да, это нужно.дело за малым — заставить мс со своим скайпом (да и всех остальны. включая Линуса с kdbus) использовать эти "порталы", предоставляющие доступ к ресурсам вне контейнера через API DBus.
В общем просто писать качественные программы сейчас для федорастов — это слишком мелко.
Вот решать глобальные проблемы, это да.
И чтоб ни один опенсорс-разработчик в стороне не остался и не остался безнаказанным.
> Цель любой более-менее распостранённой ОС быть удобной для массового пользователя.
> В Линукс, как по мне, как раз и не хватает некоторых возможностей
> которые предоставляет винда из коробки, а именно простоту установки и запуска
> любых приложений.и превращения системы в адскую помойку
> Каждый дистрибутив это видит по разному, но всё в
> итоге упирается в свою экосистему.но shared libs никто не отменял. давайте, латайте дыры в каждом приложении
>Докер предоставит всего лишь удобную возможность
> программам выйти за рамки конкретной экосистемы.
> Согласитесь что будет очень удобно, например, запустить в пару кликов программу в
> Убунте которая собранная на Арче, да и ещё иметь несколько версий
> в придачу(на всяких случай).ага, есть слоты, есть репозитарии, нафейхоа запускать в убунте софт, собраный для арча? виндовое оставьте винде
> Или, к примеру, я с большой радостью
> запихну Skype в такой контейнер и выставлю необходимые ограничения.ограничения и без этого можно выставить, инструментов море
> В общем, как по мне, от такого подхода Linux только выиграет, ведь
> кроме традиционного подхода появится не просто ещё один, а подход объединяющий
> большинство дистрибутивов, и пользоваться им или нет будет решать только сам
> юзер.юзер, если он юзер, а не клинический вантузятник, и сейчас решает
>Цель любой более-менее распостранённой ОС быть удобной для массового пользователя.Ну, тогда я предпочитаю не шибко распространенyю Gentoo, ибо для меня Linux - это ось удобная для грамотного инженера, а вовсе не для массового пользователя. А РедХат может брать своего "массвового" и гулять с ним в сад, где много-много бамбука для раскурки....
Потому что можно будет запаковать свою софтину в контейнер, и она будет работать на любом дистре, который умеет в контейнеры?
Ага, только судя по тому, что эти технологии с контейнерами выдумывает каждый кому не лень - будет ещё 10 разных конкурирующих видов контейнеров.
Вы вообще в курсе, что такое docker - или так, лишь бы написать что-то?Это штука вроде libvirt в мире управления виртуализацией: прослойка для единообразного управления теми самыми "10 разными конкурирующими видами контейнеров" так, чтобы не особо заморачиваться, что там внутри - lxc или systemd-nspawn, например. И никто не заставляет ей пользоваться - она ничего *принципиально* нового не несет, можно и напрямую управлять контейнерами через специфические для каждого интерфейсы. Но дает возможность использовать ее для функциональности вроде описанной выше - автоматический запуск гномовских приложений в контейнерах - не заморачиваясь, какая в этом конкретном дистрибутиве и у этого пользователя любимая технология контейнеров.
> Вы вообще в курсе, что такое docker - или так, лишь бы
> написать что-то?
> Это штука вроде libvirt в мире управления виртуализацией: прослойка для единообразного
> управления теми самыми "10 разными конкурирующими видами контейнеров" так, чтобы не
> особо заморачиваться, что там внутри - lxc или systemd-nspawn, например. И
> никто не заставляет ей пользоваться - она ничего *принципиально* нового не
> несет, можно и напрямую управлять контейнерами через специфические для каждого интерфейсы.
> Но дает возможность использовать ее для функциональности вроде описанной выше -
> автоматический запуск гномовских приложений в контейнерах - не заморачиваясь, какая в
> этом конкретном дистрибутиве и у этого пользователя любимая технология контейнеров.коллега, вы бисер мечите - тяжёло ожидать от одминоватников прочтения более трёх слов в предложении/абзаце. а чтение документации для них схоже с сеансом экзорцизма. пара ознакомлений с комментариями к новостям о systemd отрезвляет раз и навсегда
Docker - это Docker. По сути еще один API (еще один велосипед) для работы с виртуализируемыми средами, наряду с lxc (тоже использует cgroups), xenapi, vmware и прочим (а libvirt, да, попытка все это объединить).
Причем не для чего кроме как поиграться он сейчас не готов (в продакшене в лучшем случае для деплоя тестового окружения при разработке), и у меня стойкое ощущение что в ближайшие годы не будет.
Использование его для десктопа действительно сделает linux очень похожим на винду, где к каждому приложению надо свой набор библиотек, а система всеми силами пытается эмулировать всю кучу abi, которые когда-то были нативными для приложений.
> Потому что можно будет запаковать свою софтину в контейнер, и она будет
> работать на любом дистре, который умеет в контейнеры?а еще можно гвозди забивать микроскопом
Давно пора. Линукс становится действительно тортом для десктопа. Скоро разрабам можно будет спокойненько паковать свои прожекты в контейнер и не парится где он там будет запущен с какой конфигурацией чего и какими либами. Выстрелил и забыл. Если конечно счастье наступит.
> Давно пора. Линукс становится действительно тортом для десктопа. Скоро разрабам можно будет
> спокойненько паковать свои прожекты в контейнер и не парится где он
> там будет запущен с какой конфигурацией чего и какими либами. Выстрелил
> и забыл. Если конечно счастье наступит.Нене. Нормальный софт распространяется в исходниках и пересобирается под новые версии либ. Контейнеры = винда.
>пересобирается под новые версии либили не собирается с новыми версиями и тихонько гниет
Альтернатива - таскать старые дырявые и бажные либы - нравится больше?
Совершенно верно, пересобирается под новые версии либ и помещается в контейнер.
я бы сказал что не винда а osx budles
*bundles
> доступ только к ограниченному набору системных интерфейсов. При необходимости работы с дополнительными API (например, работа камерой, GPS, микрофоном) или обращения к данным пользователя предлагается запрашивать у пользователя подтверждение полномочий.В Андроиде и, частично, в Windows > Vista (UAC) эта модель уже показала свою несостоятельность для массового пользователя.
Как в виде подтверждения доступа при установке программы, так и в виде подтверждения конкретного действия.
Причем оно умудряется совмещать оба типа неудобств - паршивую защиту и раздражение пользователя.
Кто о чем.. Кто о контейнерах, а кто о контроле учетных записей пользователей совершенно другой ОС.
UAC это винда, и этим все сказано. В андроиде сделано топорно. Лучшая реализация контроля доступа, как бы это прискорбно не звучало, сейчас в iphone. Там привилегии запрашиваются по мере надобности и запоминаются для каждой программы отдельно. При этом есть нормальная админка в которой можно запретить/разрешить.
> UAC это винда, и этим все сказано.(В порядке бреда)
UAC это United Aerospace Corporation, к чему её опыты доводят, тоже хорошо известно.
> Там привилегии запрашиваются по мере надобности и запоминаются для каждой
> программы отдельно. При этом есть нормальная админка в которой можно запретить/разрешить.Вы описали работу SuperSU в Андроид. Должен заметить, в сравнении с настройками прав доступа в нормальных системах — жуткая жуть. Вообще весь этот UAC-подобный цирк и Ubuntu/OpenSolaris-стайл дурости вроде всемогущего беспарольного sudo/pfexec к безопасности не относятся никаким боком, лишь вызывают сомнения во вменяемости разработчиков таких решений.
Простая тема - программы для людей, и люди полюбят Вас с Вашим результатом труда.Ещё бывают программы для себя лично, в кругу единомышленников. Но они мало кому нужны. Сколько там процентов Linux десктопов. 1-5% ? Вот им они и нужны в том виде, как есть.
Кто-то пытается приспособить накопленное для людей. Таких довольно много и много пользы от их труда.
Т.е., в общем, оно всё полезное, во всех видах. :)
Господа комментаторы, причём тут Windows? Это же чистой воды яблочный App Sandbox.
///---
Кроме повышения уровня безопасности и приватности контейнеры позволят задействовать для приложения зависимости, которые не предоставляются текущей операционной системой, а также отделить установку и обновление контейнеров от основной операционной системы. Например, если программа требует более новый выпуск библиотеки, то её поставка в контейнере избавит от необходимости перехода всей системы на новую библиотеку с обновлением всех зависимостей. Поставка в контейнерах также даст возможность не нагромождать систему лишними зависимостями, так как вместо доустановки в систему зависимостей, необходимых только одному приложению, проще использовать данное приложение в форме контейнера.
---///Что и было реализовано в PBI. Но линуксоиды подняли такой вой и срач, что BSDшникам стало стыдно, и они вынуждены были притушить идейку.
Да когда тебе стыдно то было?
Не шмагла ты, вот и усё.
Ну ты за всех то не отвечай. Как минимум один BSD-шник делает ту же самую идейку: http://www.bsdstore.ru/ru/xorg_in_jail.html
> Ну ты за всех то не отвечай. Как минимум один BSD-шник делает
> ту же самую идейку: http://www.bsdstore.ru/ru/xorg_in_jail.htmlНеплохо.
То есть, с использованием Докера можно будет держать несколько разных версий одной программы на компьютере? Даже если совсем старая версия будет ссылаться на совсем старые библиотеки?
Это можно и сейчас без всяких докеров.
chroot сто лет в обед.
docker - это chroot на стероидах. Тоесть проблемы и решения теже что и при использовании chroot, только в новой, экологически-чистой упаковке.
А разве SELinux и AppArmor не тем-же самым занимаются? Ну за исключением подтягивания старых либ? А вообще все идет то-ли к винде, то-ли к йафоне, разработчики забыли, что linux не является ни первым, ни вторым и у него свой путь.
Я тоже не понял почему решили отказаться от SELinux и пр., если основная задача состоит в изоляции
>разработчики забыли, что linux не является ни первым, ни
> вторым и у него свой путь.Вся суть Линукса в ядре. Все остальное к Линуксу не относится. Сколько раз уже можно об этом писать?!
Только меня пугают перспективы security апдейтов контейнеров?
Скажем нашли heartbleed и redhat пропатчил базовую систему, а провайдер контейнера месяц пытается патчит свою поделку, оставляя дыру незакрытой
> Только меня пугают перспективы security апдейтов контейнеров?
> Скажем нашли heartbleed и redhat пропатчил базовую систему, а провайдер контейнера месяц
> пытается патчит свою поделку, оставляя дыру незакрытойФиг знает, если только все не проектоспецифичные либы будут (хард)линками на базовые? Иначе в гробу я такие контейнеры видал.
Нет там линков.
Это буратины (разработчики докера) придумали сделать базовый образ не персистентным (надо явно комитить все нужные изменения запущенной базовой системы, для этого они использую различные COW бэкэнды, с соответствующей производительностью). Как при этом следить безопасностью контейнеров совершенно не понятно.
Сами он говорят что докер не должен применяться как средство обеспечения безопасности (было в недавней новости про уязвимость в docker). Каково же назначение сей системы, они по ходу и сами не очень понимают.
Мне кажется, это решение подойдет для защиты массового хостинга, админы которых настолько тупы, что до сих пор не смогли освоить неймспейсы и цгруппы =)В остальном будет дикий оверхед от одновременно подгруженных в память 100500 одинаковых либ, для каждого ПО своим инитом и прочим хламом, который сейчас разделяемый.
В Андроиде тоже своего рода контейнеры — там каждое приложение от своего пользователя запускается, без рута может писать только свой каталог, куча разрешений и т.д. Но считать эту систему безопасной я лично не могу, а вот уровень безопасности прочих никс-подобных меня более-менее устраивает.
Как через D-bus можно выйти из контейнера? И как этот выход отражается в хост-системе (именованные каналы или что)?
Что такое "Fedora Workstation"?Этим ребятам на заметку. Если в lxc гостя поставить xorg, и логиниться туда ssh -X, это почти что готовый контейнер для "десктоп приложений". С весны с выходом 14.04LTS c LXC1.0 он еще и "продакшин-реди" (а вообще это все работало и в 12шке )
lxc конечно не так понтово звучит, как ДОКЕР. И репозитария готовой +100500 ботвы в сети я не припомню... Но все-же, все же, мне представляется данная конкретная затея очередным велосипедостроительством by fedora&gnome team.
Ну так, ведь для redhat важен и wayland. Поэтому приходится переизобретать сетевую прозрачность :)
Идея с контейнерами вроде как передовая, но по сути это "избавление от зависимостей" есть путь к инсталляторам-блобам, то что используется уже в макоси и виндовс, когда вместо разбиения программы на зависимости, которые реюзаются разным по, каждая программа тащит это всё в себе. Да, конечно это передовая реализация на новом технологическом уровне и всё такое, но сути это не меняет — регресс, шаг назад от идей пакетных систем дистрибуции.
Ну как же вы не понимаете? Никто у Вас не отнимает пакетный менеджер. Я согласен - у контейнеров есть свои минусы, но и плюсов тоже дофига. Вот и используйте их в зависимости от ситуации. Например мне всё равно какой версии у меня обычные программы(плеер, браузер и т.д.) мне главное использовать последнюю версию например графического редактора. Так вот благодаря контейнерам можно не трогая свою стабильную настроенную систему установить только редактор, зная что ты получишь новые плюшки но при этом скажем другие программы не полетят к черту или не изменят своё поведение(да-да, на каком-нибудь стабильном Centos'e или Debian'e поставить Krita 2.9 и не париться с компиляцией, чрутом и всякой фигнёй).
Ubuntu со своим SDK и рядом не валялась, да.