ALT Atomic — неизменяемая система с атомарными обновлениями на базе репозитория Сизиф (Владимир Васьков, OSSDEVCONF-2025) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) (гит ссылки) |
||
;{{SpeakerInfo}}: {{Speaker|Владимир Васьков}}
<blockquote>
Атомарная архитектура на базе bootc эффективно решает основные проблемы администрирования традиционных систем, такие как
«dependency hell», сложности отката обновлений и неконтролируемые изменения состояния системы. В докладе подробно
рассматриваются практические аспекты внедрения данной архитектуры в семейство Альт.
Особое внимание уделяется представлению Atomic Package Manager (APM) — универсального инструмента с единым API для управления как системными
пакетами, так и пакетами из distrobox-контейнеров, который обеспечивает взаимодействие через DBus-интерфейс и полную
поддержку атомарных образов.
</blockquote>
{{VideoSection}}
{{vimeoembed|1159717297|800|450}}
{{youtubelink|5RN1PTItt1U}}
{{SlidesSection}}
[[File:ALT Atomic — неизменяемая система с атомарными обновлениями на базе репозитория Сизиф (Владимир Васьков, OSSDEVCONF-2025).pdf|left|page=-|300px]]
{{----}}
== Thesis ==
'''Ключевые слова:''' Неизменяемость, атомарность, bootc, контейнеризация.
=== Что такое неизменяемая и атомарная ОС ===
Неизменяемая ОС — система, в которой изменения запрещены. Неизменяемость не означает отсутствие гибкости или возможности
настройки — она означает контролируемый, предсказуемый и обратимый характер изменений. <code>/usr</code> является в таком случае
неизменяемой директорией, которая определяет поведение остальной системы, <code>/var</code> и <code>/etc</code> восстанавливаются из
конфигурационных файлов <code>systemd-sysusers</code> и <code>systemd-tmpfiles</code> и являются изменяемыми.
Обновления в такой системе, как правило, происходят атомарно: либо система обновилась, либо нет.
=== Преимущества и недостатки перед классическими системами ===
Преимущества:
* декларативная и воспроизводимая сборка;
* предсказуемое поведение системы;
* сопровождение атомарной системы проще;
* гарантия успешного запуска после обновления.
Недостатки:
* система лишается «пользовательского авантюризма».
=== Что такое ALT Atomic ===
ALT Atomic — представитель подобного рода систем. В нём используется A/B подход, где, если текущий слот — A, обновление
сначала загружается в слот B, после чего производится попытка переключения на него. В случае успеха будет загружена
система из слота B, в худшем случае — из слота A.
В системе используются:
* <code>bootc</code> для запуска и управления системой, используя в качестве транспорта системных образов OCI хранилища. <code>Bootc</code>
использует файловую систему ostree с расширениями для интеграции контейнеров;
* <code>bootupd</code> для обновления загрузчика.
=== Сборка образов ===
Образ должен в себя включать необходимый набор пакетов, так как модификация образа на машине пользователя нежелательна.
Поэтому на текущий момент существует образ с окружением рабочего стола GNOME, Onyx, и такой же, но с драйверами Nvidia,
onyx-nvidia.
Образы ALT Atomic создаются в CI в репозитории на altlinux.space Создание образа включает в себя:
* установка необходимых пакетов;
* включение необходимых сервисов;
* создание конфигурационных файлов;
* объединение слоёв для оптимизации загрузки оных;
* выполнение специфичных скриптов для Nvidia образа.
=== Установка ===
Для установки систем на базе <code>bootc</code> была создана универсальная программа установки, которая имеет, по умолчанию,
stable образы и возможность ввода ссылки на сторонний образ. Программа установки выполняет проверку устройства на
готовность к установке, позволяет выбрать загрузчик, диск. Также, пока не добавлена поддержка ReadySet, есть возможность
создания пользователя с паролем.
=== Atomic Package Manager ===
APM — это универсальное приложение для управления системными и <code>distrobox</code> пакетами. Оно объединяет все функции в
единое API, обеспечивает взаимодействие через DBUS-сервис и предоставляет опциональную поддержку атомарных образов на
базе ALT Linux.
Цели создания:
* единый интерфейс управления, ориентированный на API-взаимодействие между приложениями;
* поддержка и управление атомарной системой;
* работа в режиме демона и отправление уведомления D-Bus о ходе выполнения каждой операции как в сессионной шине,
так и в системной;
* работа с AppStream метаданными для подробной информации о «приложениях»;
* собственная база данных для ускорения работы с пакетами.
С практической точки зрения APM фокусируется на API-взаимодействии между приложениями. Архитектура построена таким
образом, чтобы абстрагироваться от транспортного протокола — бизнес-логика CLI и DBUS-методов единая и не отличается
существенным образом. Любой ответ является структурой, которая может быть десериализована в json/text формат, в том числе
поэтому консольные команды имеют опциональный флаг для возврата ответов в формате JSON.
=== Известные проблемы ===
* Мейнтейнеры репозитория ALT не во всех пакетах используют декларативы systemd, что не гарантирует восстановление
каталогов <code>/etc</code> и <code>/var</code> при их удалении или при замене образа без явной установки/удаления пакетов;
* не работает запуск с SecureBoot, так как не до конца изучена работа grub;
* нет графического средства управления системой;
* отсутствует документация по системе.
{{----}}
[[File:{{#setmainimage:ALT Atomic — неизменяемая система с атомарными обновлениями на базе репозитория Сизиф (Владимир Васьков, OSSDEVCONF-2025)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->
<references/>
* https://atomic.alt-gnome.ru
* [https://altlinux.space/alt-atomic/apm alt-atomic apm]
* [https://altlinux.space/alt-atomic/atomic-control-center alt-atomic atomic-control-center]
* [https://altlinux.space/alt-atomic/atomic-distro-builder alt-atomic atomic-distro-builder]
* [https://altlinux.space/alt-atomic/atomic-installer alt-atomic atomic-installer]
* [https://altlinux.space/alt-atomic/core alt-atomic core]
* [https://altlinux.space/alt-atomic/onyx alt-atomic onyx]
* [https://altlinux.space/alt-atomic/onyx-branding alt-atomic onyx-branding]
* [https://altlinux.space/alt-gnome/ReadySet alt-gnome ReadySet]
* [https://bootc-dev.github.io/bootc/ Introduction — bootc]
[[Категория:OSSDEVCONF-2025]]
[[Категория:Open-source projects]]
[[Категория:Draft]] | |||
Текущая версия на 16:15, 28 февраля 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;
- нет графического средства управления системой;
- отсутствует документация по системе.
