Архитектура ALP основана на развитии в «host OS» окружения, минимально необходимого для поддержки и управления оборудованием. Все приложения и компоненты пространства пользователя предлагается запускать не в смешанном окружении, а в отдельных контейнерах или в виртуальных машинах, выполняемых поверх «host OS» и изолированных друг от друга. Подобная организация позволит пользователям сфокусировать внимание на приложениях и абстрагировать рабочие процессы, отделив их от низкоуровневого системного окружения и оборудования.
В качестве основы для «host OS» задействован продукт SLE Micro, основанный на наработках проекта MicroOS. Для централизованного управления предлагаются системы управления конфигурацией Salt (предустановлена) и Ansible (опция). Для запуска изолированных контейнеров доступны инструментарии Podman и K3s (Kubernetes). Среди системных компонентов, вынесенных в контейнеры, присутствуют yast2, podman, k3s, cockpit, GDM (GNOME Display Manager) и KVM.
Из особенностей системного окружения упоминается использование по умолчанию дискового шифрования (FDE, Full Disk Encryption) с возможностью хранения ключей в TPM. Корневой раздел монтируется в режиме только для чтения и не меняется в процессе работы. В окружении применяется механизм атомарной установки обновлений. В отличие от атомарных обновлений на базе ostree и snap, используемых в Fedora и Ubuntu, в ALP вместо построения отдельных атомарных образов и развёртывания дополнительной инфраструктуры доставки применяются штатный пакетный менеджер и механизм снапшотов в ФС Btrfs.
Предусмотрен настраиваемый режим автоматической установки обновлений (например, можно включить автоустановку только исправлений критических уязвимостей или вернуться к ручному подтверждения установки обновлений). Для обновления ядра Linux без перезапуска и приостановки работы поддерживаются live-патчи. Для поддержания живучести системы (self-healing) осуществляется фиксация последнего стабильного состояние при помощи снапшотов Btrfs (в случае выявление аномалий после применения обновлений или изменения настроек система автоматически переводится в предыдущее состояние).
В платформе применяется многоверсионный программный стек — благодаря применению контейнеров можно одновременно использовать разные версии инструментов и приложений. Например, можно запускать приложения, использующие в зависимостях разные версии Python, Java и Node.js, разделяя несовместимые между собой зависимости. Базовые зависимости поставляются в форме наборов BCI (Base Container Images). Пользователь может создавать, обновлять и удалять программные стеки не затрагивая другие окружения.
Основные изменения во втором прототипе ALP:
- Задействован инсталлятор D-Installer, в котором пользовательский интерфейс отделён от внутренних компонентов YaST и имеется возможность использования различных фронтэндов, в том числе фронтэнда для управления установкой через web-интерфейс. Базовый интерфейс для управления установкой построен с использованием web-технологий и включает обработчик, обеспечивающий доступ к вызовам D-Bus через HTTP, и непосредственно web-интерфейс. Web-интерфейс написан на JavaScript с использованием фреймворка React и компонентов PatternFly. Для обеспечения безопасности D-Installer поддерживает установку на шифрованные разделы и позволяет использовать TPM (Trusted Platform Module) для расшифровки загрузочного раздела, используя вместо паролей ключи, хранимые в TPM-чипе.
- Обеспечено выполнения некоторых клиентов YaST (bootloader, iSCSIClient, Kdump, firewall и т.п.) в отдельных контейнерах. Реализовано два типа контейнеров — управляющие для работы с YaST в текстовом режиме, в GUI и через Web-интерфейс, и тестовые для проведения автоматизированного текстирования. Ряд модулей также адаптированы для использования в системах с транзакционными обновлениями. Для интеграции с openQA предложена библиотека libyui-rest-api с реализацией REST API.
- Реализовано выполнение в контейнере платформы Cockpit, на базе которых построен web-интерфейс конфигуратора и инсталлятора.
- Обеспечена возможность использования полнодискового шифрования (FDE, Full Disk Encryption) в установках поверх обычного оборудования, а не только в системах виртуализации и облачных системах.
- В качестве основного загрузчика задействован GRUB2.
- Добавлены конфигурации для развёртывания контейнеров для построения межсетевого экрана (firewalld-container) и централизованного управления системами и кластерами (warewulf-container).
Источник: http://www.opennet.ru/opennews/art.shtml?num=58367