Компания Canonical опубликовала релиз Ubuntu Core 20, компактного варианта дистрибутива Ubuntu, адаптированного для применения на устройствах интернета вещей (IoT), в контейнерах, потребительском и промышленном оборудовании. Ubuntu Core поставляется в форме неделимого монолитного образа базовой системы, в котором не применяется разбивка на отдельные deb-пакеты. Образы Ubuntu Core 20, состав которых синхронизирован с пакетной базой Ubuntu 20.04, подготовлены для систем x86_64, ARMv7 и ARMv8.
Основные новшества:
- Реализована официальная поддержка различных вариантов плат Raspberry Pi, основанных на 32- и 64-разрядных чипах ARM.
- Добавлена возможность использования полного дискового шифрования с интеграцией с TPM (Trusted Platform Module). Шифрование пока доступно только для систем x86 (для ARM появится позднее).
- Добавлены новые режимы восстановления данных (Recovery) и переустановки (инициализация устройства с использованием выбранной версии). Предложено загрузочное меню для выбора варианта запуска и перехода в режим восстановления (Recovery). Меню показывается при удержании клавиши “1” на начальной стадии загрузки.
- Добавлена начальная поддержка MAAS (Metal-as-a-Service) для быстрого развёртывания конфигураций на множестве систем.
- Добавлена начальная поддержка cloud-init для настройки системы на стадии загрузки.
Напомним, что Ubuntu Core служит основой для запуска дополнительных компонентов и приложений, которые оформляются в виде самодостаточных надстроек в формате snap. Компоненты Ubuntu Core, включая базовую систему, ядро Linux и системные надстройки, также поставляются в формате snap и управляются инструментарием snapd. Технология Snappy даёт возможность сформировать образ системы как единое целое, без разбиения на отдельные пакеты.
Вместо поэтапного обновления на уровне отдельных deb-пакетов в Ubuntu Core применяется механизм атомарного обновления snap-пакетов и базовой системы, по аналогии с Atomic, ChromeOS, Endless, CoreOS и Fedora Silverblue. При обновлении базового окружения и snap-пакетов имеется возможность отката состояния до прошлой версии, в случае проблем, выявленных после обновления. В настоящее время в каталоге SnapCraft насчитывается более 4600 snap-пакетов.
Для обеспечения безопасности каждый компонент системы верифицируется по цифровой подписи, что позволяет защитить дистрибутив от внесения скрытых модификаций или установки непроверенных snap-пакетов. Поставляемые в формате Span компоненты изолируются при помощи AppArmor и Seccomp, что создаёт дополнительный рубеж для защиты системы в случае компрометации отдельных приложений. Базовая система включает только минимальный набор необходимых приложений, что не только позволило уменьшить размер системного окружения, но и положительно сказалось на безопасности за счёт уменьшения возможных векторов для атак.
Базовая файловая система монтируется в режиме только для чтения. Обновления выпускаются регулярно, доставляются в режиме ОТА (over-the-air) и синхронизированы с составом Ubuntu 20.04. Для минимизации трафика обновления поставляются в сжатом виде и включают только изменения, относительно прошлого обновления (delta-обновления). Автоматизация установки обновлений решает проблемы с поддержанием безопасности системы при использовании на встраиваемых устройствах.
Благодаря логическому отделению базовой системы от приложений, поддержанием кодовой базы Ubuntu Core в актуальном виде занимаются разработчики Ubuntu, а об актуальности дополнительных приложений заботятся их разработчики. Подобный подход позволяет снизить затраты на сопровождение продуктов, программное окружение которых построено на основе Ubuntu Core, так как их производителям не требуется заниматься выпуском и доставкой системных обновлений и достаточно сосредоточить внимание только на своих специфичных компонентах.