Red Hat и Docker развивают систему изолированных контейнеров для десктоп-приложений

Кристиан Шаллер (Christian Schaller), возглавляющий группу по развитию десктоп-систем в компании Red Hat, рассказал о работе над технологией изолированного выполнения десктоп-приложений для GNOME, которая развивается для Fedora Workstation совместными усилиями разработчиков из Red Hat и проекта Docker. Суть проекта в подготовке средств, которые бы позволили использовать Docker для создания контейнеров для десктоп-приложений, по аналогии с существующими средствами создания контейнеров для серверных и web-приложений. При этом в случае десктоп-приложений возникает необходимость организации взаимодействия из контейнера с API графической подсистемы и обеспечение доступа к данным пользователя. В настоящее время уже подготовлен прототип контейнера для запуска приложения Cheese, в котором используется концепция «порталов», предоставляющих доступ к ресурсам вне контейнера через API DBus. Например, для Cheese таким способом обеспечен доступ к web-камере и микрофону.

Одновременно, Алан Дей (Allan Day), сотрудник компании Red Hat и член команды дизайнеров GNOME, рассказал о мотивах использования дополнительной изоляции и некоторых идеях по распространению, установке и обновлению десктоп-приложений, оформленных в виде самодостаточных контейнеров. Выполняемые в контейнере приложения смогут получить доступ только к ограниченному набору системных интерфейсов. При необходимости работы с дополнительными API (например, работа камерой, GPS, микрофоном) или обращения к данным пользователя предлагается запрашивать у пользователя подтверждение полномочий.

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

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

©  OpenNet