ALT Atomic — неизменяемая система с атомарными обновлениями на базе репозитория Сизиф (Владимир Васьков, OSSDEVCONF-2025) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
…как системными пакетами, так и пакетами из distrobox-контейнеров, который обеспечивает взаимодействие через DBus-интерфейс и полную поддержку атомарных образов. </blockquote> {{VideoSection}} {{vimeoembed|1159717297|800|450}} {{youtubelink|5RN1PTItt1U}} {{SlidesSection}} [[File:ALT Atomic — неизменяемая система с атомарными обновлениями на базе репозитория Сизиф (Владимир Васьков, OSSDEVCONF-2025).pdf|left|page=-|300px]] {{----}} == Thesis == | |||
Текущая версия на 16:40, 29 января 2026
- Докладчик
- Владимир Васьков
Атомарная архитектура на базе bootc эффективно решает основные проблемы администрирования традиционных систем, такие как «dependency hell», сложности отката обновлений и неконтролируемые изменения состояния системы. В докладе подробно рассматриваются практические аспекты внедрения данной архитектуры в семейство Альт.
Особое внимание уделяется представлению Atomic Package Manager (APM) — универсального инструмента с единым API для управления как системными пакетами, так и пакетами из distrobox-контейнеров, который обеспечивает взаимодействие через DBus-интерфейс и полную поддержку атомарных образов.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
Thesis[править | править вики-текст]
Ключевые слова: Неизменяемость, атомарность, bootc, контейнеризация.
Что такое неизменяемая и атомарная ОС[править | править вики-текст]
Неизменяемая ОС — система, в которой изменения запрещены. Неизменяемость не означает отсутствие гибкости или возможности
настройки — она означает контролируемый, предсказуемый и обратимый характер изменений. /usr является в таком случае
неизменяемой директорией, которая определяет поведение остальной системы, /var и /etc восстанавливаются из
конфигурационных файлов systemd-sysusers и systemd-tmpfiles и являются изменяемыми.
Обновления в такой системе, как правило, происходят атомарно: либо система обновилась, либо нет.
Преимущества и недостатки перед классическими системами[править | править вики-текст]
Преимущества:
- декларативная и воспроизводимая сборка;
- предсказуемое поведение системы;
- сопровождение атомарной системы проще;
- гарантия успешного запуска после обновления.
Недостатки:
- система лишается «пользовательского авантюризма».
Что такое ALT Atomic[править | править вики-текст]
ALT Atomic — представитель подобного рода систем. В нём используется A/B подход, где, если текущий слот — A, обновление сначала загружается в слот B, после чего производится попытка переключения на него. В случае успеха будет загружена система из слота B, в худшем случае — из слота A.
В системе используются:
-
bootcдля запуска и управления системой, используя в качестве транспорта системных образов OCI хранилища.Bootc
использует файловую систему ostree с расширениями для интеграции контейнеров;
-
bootupdдля обновления загрузчика.
Сборка образов[править | править вики-текст]
Образ должен в себя включать необходимый набор пакетов, так как модификация образа на машине пользователя нежелательна. Поэтому на текущий момент существует образ с окружением рабочего стола GNOME, Onyx, и такой же, но с драйверами Nvidia, onyx-nvidia.
Образы ALT Atomic создаются в CI в репозитории на altlinux.space Создание образа включает в себя:
- установка необходимых пакетов;
- включение необходимых сервисов;
- создание конфигурационных файлов;
- объединение слоёв для оптимизации загрузки оных;
- выполнение специфичных скриптов для Nvidia образа.
Установка[править | править вики-текст]
Для установки систем на базе bootc была создана универсальная программа установки, которая имеет, по умолчанию,
stable образы и возможность ввода ссылки на сторонний образ. Программа установки выполняет проверку устройства на
готовность к установке, позволяет выбрать загрузчик, диск. Также, пока не добавлена поддержка ReadySet, есть возможность
создания пользователя с паролем.
Atomic Package Manager[править | править вики-текст]
APM — это универсальное приложение для управления системными и distrobox пакетами. Оно объединяет все функции в
единое API, обеспечивает взаимодействие через DBUS-сервис и предоставляет опциональную поддержку атомарных образов на
базе ALT Linux.
Цели создания:
- единый интерфейс управления, ориентированный на API-взаимодействие между приложениями;
- поддержка и управление атомарной системой;
- работа в режиме демона и отправление уведомления D-Bus о ходе выполнения каждой операции как в сессионной шине,
так и в системной;
- работа с AppStream метаданными для подробной информации о «приложениях»;
- собственная база данных для ускорения работы с пакетами.
С практической точки зрения APM фокусируется на API-взаимодействии между приложениями. Архитектура построена таким образом, чтобы абстрагироваться от транспортного протокола — бизнес-логика CLI и DBUS-методов единая и не отличается существенным образом. Любой ответ является структурой, которая может быть десериализована в json/text формат, в том числе поэтому консольные команды имеют опциональный флаг для возврата ответов в формате JSON.
Известные проблемы[править | править вики-текст]
- Мейнтейнеры репозитория ALT не во всех пакетах используют декларативы systemd, что не гарантирует восстановление
каталогов /etc и /var при их удалении или при замене образа без явной установки/удаления пакетов;
- не работает запуск с SecureBoot, так как не до конца изучена работа grub;
- нет графического средства управления системой;
- отсутствует документация по системе.
