Компания Canonical опубликовала релиз Ubuntu Core 22, компактного варианта дистрибутива Ubuntu, адаптированного для применения на устройствах интернета вещей (IoT), в контейнерах, потребительском и промышленном оборудовании. Ubuntu Core поставляется в форме неделимого монолитного образа базовой системы, в котором не применяется разбивка на отдельные deb-пакеты. Образы Ubuntu Core 22, состав которых синхронизирован с пакетной базой Ubuntu 22.04, подготовлены для систем x86_64, ARMv7 и ARMv8. Время сопровождения выпуска составляет 10 лет.
Ubuntu Core служит основой для запуска дополнительных компонентов и приложений, которые оформляются в виде самодостаточных надстроек в формате snap. Компоненты Ubuntu Core, включая базовую систему, ядро Linux и системные надстройки, также поставляются в формате snap и управляются инструментарием snapd. Технология Snappy даёт возможность сформировать образ системы как единое целое, без разбиения на отдельные пакеты.
Вместо поэтапного обновления на уровне отдельных deb-пакетов в Ubuntu Core применяется механизм атомарного обновления snap-пакетов и базовой системы, по аналогии с Atomic, ChromeOS, Endless, CoreOS и Fedora Silverblue. При обновлении базового окружения и snap-пакетов имеется возможность отката состояния до прошлой версии, в случае проблем, выявленных после обновления. В настоящее время в каталоге SnapCraft насчитывается более 4.5 тысяч snap-пакетов.
Для обеспечения безопасности каждый компонент системы верифицируется по цифровой подписи, что позволяет защитить дистрибутив от внесения скрытых модификаций или установки непроверенных snap-пакетов. Поставляемые в формате Span компоненты изолируются при помощи AppArmor и Seccomp, что создаёт дополнительный рубеж для защиты системы в случае компрометации отдельных приложений. Базовая система включает только минимальный набор необходимых приложений, что не только позволило уменьшить размер системного окружения, но и положительно сказалось на безопасности за счёт уменьшения возможных векторов для атак.
Базовая файловая система монтируется в режиме только для чтения. Имеется возможность использования шифрования данных на накопителе с использованием TPM. Обновления выпускаются регулярно, доставляются в режиме ОТА (over-the-air) и синхронизированы с составом Ubuntu 22.04. Для минимизации трафика обновления поставляются в сжатом виде и включают только изменения, относительно прошлого обновления (delta-обновления). Автоматизация установки обновлений решает проблемы с поддержанием безопасности системы при использовании на встраиваемых устройствах.
Благодаря логическому отделению базовой системы от приложений, поддержанием кодовой базы Ubuntu Core в актуальном виде занимаются разработчики Ubuntu, а об актуальности дополнительных приложений заботятся разработчики приложений. Подобный подход позволяет снизить затраты на сопровождение продуктов, программное окружение которых построено на основе Ubuntu Core, так как их производителям не требуется заниматься выпуском и доставкой системных обновлений и достаточно сосредоточить внимание только на своих специфичных компонентах.
Основные новшества:
- Предложена концепция проверенных наборов пакетов (Validation sets), позволяющая определить набор snap-пакетов и их версий, которые могут быть установлены и обновлены только вместе друг с другом. Проверенные наборы могут применяться для реализации ограничений, допускающих установку только заданных snap-пакетов, распространения собственных дополнительно протестированных и проверенных пакетов, или для упрощения управления зависимостями.
- Добавлены инструменты для обновления окружения Ubuntu Core 20 до версии 22 без переустановки.
- Реализована возможность сброса конфигурации в исходное состояние (factory reset).
- Предоставлена поддержка групп квот для ограничения ресурсов CPU и памяти в привязке к определённым группам сервисов snap.
- Добавлена поддержка инструментария MicroK8s, предлагающего упрощённый вариант платформы оркестровки контейнеров Kubernetes.
- Предложен вариант пакета с ядром Linux, включающим патчи PREEMPT_RT и ориентированным на применение в системах, работающих в режиме реального времени.
- Добавлена поддержка инструментария MAAS (Metal-as-a-Service) для быстрого развёртывания конфигураций на множестве систем.
- Добавлена поддержка cloud-init для настройки системы на стадии загрузки.