Несколько дней назад компания Canonical представила новый релиз одного из своих дистрибутивов. Речь идет об операционной системе Ubuntu Core 24, которая предназначена для IoT-устройств. Это LTS-дистрибутив со сроком поддержки в 12 лет. В нем немало важных нововведений, изменений, о которых многим читателям Хабра будет полезно узнать. Подробности — под катом.

Коротко о самой операционной системе

Как и говорилось в анонсе, этот дистрибутив адаптирован в первую очередь для устройств интернета вещей, использования в контейнерах, потребительском и промышленном оборудовании. Это монолитный образ базовой системы, в нем попросту нет разбивки на отдельные пакеты.

Служит эта ОС для запуска дополнительных компонентов и приложений, которые оформляются в виде самодостаточных надстроек в формате snap. Его компоненты также поставляются в этом формате, а управляются инструментарием snapd, включая как основную систему, так и ядро, а также системные надстройки.

Что касается системы апдейтов, то вместо поэтапности используется механизм атомарного обновления snap-пакетов и базовой системы. Таким же образом организованы и Atomic, ChromeOS, Endless, CoreOS и Fedora Silverblue. При необходимости можно откатиться до прошлой версии, если вдруг будут выявлены проблемы.

Особое внимание уделяется безопасности, поскольку в IoT это один из важнейших критериев. Так, каждый из компонентов системы верифицируется по цифровой подписи, что дает возможность защитить дистрибутив от внесения скрытых модификаций или же установки непроверенных snap-пакетов. Компоненты изолируются посредством AppArmor и Seccomp, что дает возможность обеспечить дополнительную защиту, особенно в случае компрометации отдельных программ. В базовой системе есть лишь минимальный набор необходимых приложений. Это дает возможность не только уменьшить размер системного окружения, но и усилить безопасность.

Одна из важнейших особенностей дистрибутива — монтирование базовой файловой системы в режиме только для чтения. Так, есть возможность использования шифрования данных на накопителе с ТРМ. К слову, обновления выпускаются регулярно, а доставляются они в режиме ОТА, будучи синхронизированы с составом Ubuntu 22.04. Для того чтобы минимизировать трафик, обновления поставляются в сжатом виде, т. е. только изменения. Апдейты устанавливаются автоматически.

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

Что нового?

В 24-м выпуске системные компоненты заключены в ограниченные контейнеры, что дает возможность развертывать критически важные приложения в безопасной среде. И это касается не тысяч или даже сотен тысяч устройств, а миллиардов различных девайсов.

Кроме того, Ubuntu Core теперь поддерживается разными архитектурами, включая ARM, X86 и RISC-V. Представители Canonical заявили, что устройства будут работать с правильными и проверенными комбинациями ПО, что позволяет обеспечить надежность и безопасность, о которой уже упоминалось выше.

Генеральный директор Canonical Марк Шаттлворт (Mark Shuttleworth) заявил, что Ubuntu Core 24 выводит экосистему приложений ОС на передний край технологий, обеспечивая «умные» устройства полным набором ИИ-возможностей и ядром реального времени.

Немало возможностей ОС предоставляет компаниям, которым важна безопасность — для них обеспечивается полный контроль над взаимодействием девайса с внешней средой. Так, при необходимости можно отключить сеть, поддерживая автономное обновление системы.

Немаловажно и то, что разработчики позаботились об улучшении поддержки GPU, так что открываются новые горизонты для специализированных приложений. Новая версия ОС повышает совместимость оборудования с оптимизацией использования ресурсов. А это упрощает развертывание комплексных ИИ-моделей, а также так называемых визуально насыщенных приложений.

Кроме того, включена поддержка графической оболочки ubuntu frame, предназначенной для таких систем, как интернет-киоски, терминалы самообслуживания, цифровые вывески. Теперь можно запускать приложения на базе GTK, Qt, Flutter, SDL2, Java, HTML5, Electron, плюс возможен запуск как приложений, скомпилированных с Wayland, так и программ на базе протокола X11.

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

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

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

Дистрибутив можно загрузить по этой ссылке. Образы доступны для x86_64 и ARM64, а также RISC-V, правда, его выложат чуть позже.

Комментарии (4)


  1. MountainGoat
    12.06.2024 10:48
    +1

    Вот если б только не Snap.


  1. mnnoee
    12.06.2024 10:48
    +2

    Назовите мне одну причину зачем snap в IoT, это же безумие и места много занимать будет.


    1. czz
      12.06.2024 10:48

      Прежде всего изоляция приложений.

      • Снапы — это контейнеры, их можно полностью изолировать, чтобы они не видели ресурсов друг друга (файловую систему, сокеты, процессы и т.п.)

      • Каждый снап имеет свои копии библиотек, если требуется обновление какого-то одного снапа, оно не вызовет побочных эффектов в других снапах.

      В IoT это как раз может быть более полезно, чем на десктопе.


    1. le2
      12.06.2024 10:48

      на совместимость интерфейсов в библиотеках все забили. Потому что "это тормозит развитие". Взять хотя бы Корпорацию Добра.
      Сейчас в проектах, где хотя-бы 20-30 библиотек нужно всё тащить с собой, потому что очень больно всё портировать, подстраиваться под системные.
      Даже ARM не стал по-настоящему 64-битным. 32-битные пакеты собрать проще.
      Да что там ARM, даже AMD Threadripper, к примеру, имеет странности с USB под Линуксом.

      Итого, взрослый IoT это docker поверх линукса, либо snap, либо chroot.