Intel опубликовал редакцию дистрибутива Clear Linux Developer Edition для разработчиков приложений
Intel сообщил о расширении области применения дистрибутива Clear Linux, ранее позиционируемого как специализированное решение для контейнерной изоляции. Новая редакция Clear Linux Developer Edition позволяет использовать дистрибутив на системах разработчиков в качестве пользовательского окружения. По умолчанию предлагается рабочий стол GNOME, но опционально доступны KDE Plasma, Xfce, LXQt, Awesome и i3.
Дистрибутив Clear Linux обеспечивает строгую изоляцию приложений при помощи контейнеров, разделённых с использованием полноценной виртуализации. Базовая часть дистрибутива содержит только минимальный набор инструментов для запуска контейнеров и обновляется атомарно. Все приложения оформлены в виде пакетов Flatpak или наборов (Bundle), запускаемых в отдельных контейнерах.
Редакция для разработчиков кроме подготовки наборов с графическими и пользовательскими приложениями примечательно расширением поддержки оборудования, интеграцией отладочной системы на базе FUSE, добавлением нового инсталлятора и введением в строй каталога приложений, в котором предложены наборы для развёртывания окружений для разработки с использованием различных языков и технологий.
Предоставляется отдельный базовый набор c-basic, включающий сборочные инструментарии на базе свежих версий LLVM и GCC с оптимизациями для чипов Intel (специфичные для контейнерных инфраструктур компоненты выделены в набор containers-basic). Также добавлены преднастроенные наборы для развётывания систем машинного обучения (Deep Learning Reference Stack на базе Intel DL Boost с оптимизациями для Intel Xeon Scalable) и анализа больших объёмов данных (Data Analytics Reference Stack на базе Apache Hadoop и Apache Spark).
Особенности Clear Linux:
- Бинарная модель поставки дистрибутива. Обновление системы могут производится в двух режимах: наложение исправлений на работающую систему и полное обновление системы через установку нового образа в отдельный снапшот Btrfs и замену активного снапшота на новый;
- Агрегирование пакетов в наборы (bundle), образующие готовую функциональность, независимо от того, сколько программных компонентов их образуют. Bundle и образ системного окружения формируются на основе репозитория RPM-пакетов, но поставляются без разделения на пакеты. Внутри контейнеров выполняется специально оптимизированная копия Clear Linux, содержащая необходимые для запуска целевого приложения наборы (bundle);
- Эффективная система установки обновлений, встроенная в базовую часть дистрибутива и обеспечивающая ускоренную доставку обновлений с исправлением критических проблем и уязвимостей. Обновление в Clear Linux включает только непосредственно изменившиеся данные, поэтому типовые исправления уязвимостей и ошибок занимают всего несколько килобайт и устанавливаются почти мгновенно;
- Единая система версионирования - версия дистрибутива представляет состояние и версии всех входящих в него компонентов, что удобно для создания воспроизводимых конфигураций и отслеживания изменений компонентов дистрибутива на файловом уровне. Изменение/обновлений любой части системы всегда приводит к изменению общей версии всего дистрибутива (если в обычных дистрибутивах лишь увеличивается номер версии определённого пакета, то в Clear Linux увеличивается версия самого дистрибутива);
- Stateless-подход к определению конфигурации, подразумевающий, что различные классы настроек разделены (настройки OS, пользователя и системы хранятся раздельно), система не сохраняет своё состояние (stateless) и после установки не содержит каких-либо настроек в директории /etc, а генерирует настройки на лету на основе указанных при запуске шаблонов. Для сброса системных настроек в значения по умолчанию можно просто удалить /etc и /var;
- Использование полноценной виртуализации (KVM) для запуска контейнеров, что позволяет обеспечить высокий уровня безопасности. Время запуска контейнеров незначительно отстаёт от традиционных систем контейнерной изоляции (namespaces, cgroups) и приемлемо для запуска контейнеров приложений по требованию (время запуска виртуального окружения составляет около 200мс, а дополнительное потребление памяти 18-20 Мб на контейнер). Для уменьшения потребления памяти применяется механизм DAX (прямой доступ к ФС в обход страничного кэша без применения уровня блочных устройств), а для дедупликации одинаковых областей памяти применяется технология KSM (Kernel Shared Memory), что позволяет организовать совместное использование ресурсов хост-системы и подключить к разным гостевым системам общий шаблон системного окружения.