Транзакционный
Все модификации системы происходят атомарно. Ошибки в базовом образе останавливают распространение обновления
Атомарная облачная операционная система на базе новейших технологий
Сайт создан для объяснения особенностей дистрибутива и поиска единомышленников, готовых помочь в развитии проекта до стабильной версии. Все описанное ниже и все разработки являются демонстрацией идеи, а не законченным продуктом.
Контакт разработчика: Telegram
Вступить в ALT Gnome Development: Telegram
Образ собирается на базе OSI контейнера в облаке, там же происходит настройка и сборках всех необходимых утилит и характерных элементов системы для совместимости с bootc. По итогу трансформации и выполнения workflows мы получаем готовый образ который может использоваться как при установке, так и при обновлении системы.
Система загружается из неизменяемого коммита OSTree, который служит базовым слоем. Поверх него динамически накладываются слои для управления изменяемыми данными, что обеспечивает баланс между стабильностью и гибкостью.
Во время запуска в grub добавляются строки, которые позволяют выбрать последние коммиты ostree связанные с обновлениями/изменениями системы. Для поддержки этого параметра ядро собрано с модулями: ostree, virtiofs, overlayfs
Для совместимости файловая система преобразуется следующим образом:
bin -> usr/bin
boot
dev
etc
home -> var/home
lib -> usr/lib
lib64 -> usr/lib64
libx32 -> usr/libx32
media -> run/media
mnt -> var/mnt
opt -> var/opt
ostree -> sysroot/ostree
proc
root -> var/root
run
sbin -> usr/sbin
selinux
src
srv -> var/srv
sys
sysroot
tmp
usr
var
/var каталог полностью изменяем включая home слой пользователя и другие папки, /etc изменяем, но данные которые не затронул пользователь будут обновлены, локальные изменения будут сохранены. Подробнее можно почитать по ссылке filesystem bootc
Для обычных пользователей система в первую очередь решает проблемы конфликтов пакетов и сложностей с обновлениями благодаря особенностям OSTree. Механизм откатов и переключения между различными bootc-совместимыми образами реализован на системном уровне, что позволяет, например, переходить между разными графическими окружениями (DE) или версиями пакетной базы без полной переустановки системы.
Для опытных пользователей этот подход открывает возможности декларативного управления конфигурацией через описание Docker-контейнера. Такая модель предоставляет гибкий инструментарий для распространения и синхронизации настроек между разными устройствами и пользователями, сохраняя при этом согласованность среды.
Изначальная концепция Docker-контейнеров, основанная на изоляции изменений через слоистую структуру и эффективное сжатие, стала общепризнанным отраслевым стандартом. Современные linux-дистрибутивы пытаются адаптировать эти принципы для базовой операционной системы, используя стандартные OCI-контейнеры в качестве универсального формата для доставки и применения обновлений непосредственно к загрузочной хост-системе.
Из-за особенностей архитектуры системы стандартный менеджер пакетов apt-get недоступен (его заменяет atomic-actions apt), так как раздел /usr монтируется в режиме «только для чтения». Это не означает ограничений в установке программ — в дистрибутиве реализована гибкая экосистема управления ПО.
Для поддержания чистоты базового образа рекомендуется:
Если требуется установка специфичных пакетов непосредственно из репозитория ALT — используйте специальный инструмент atomic-actions apt. Этот механизм гарантирует корректную работу с пакетами в рамках атомарной модели, создавая дополнительный слой поверх базового образа.
Данная программа будет являться помощником системы, она особым образом импортирует обыкновенные bash скрипты из системных и home дирректорий, но самое интересное здесь упрощенная абстракция вокруг apt-get пакетного менеджера.
Это работает следующим образом - при первом запуске atomic-actions apt формируется файл /var/Containerfile внутри которого добавляются команды, пример:
FROM "ghcr.io/skywar-design/alt-atomic:source"
RUN apt-get update
RUN apt-get install nmap
Контейнер разворачивается в системе и выполняется команда bootc switch на наш локальный образ. Первый запуск займет продолжительное время, в дальнейшем если в облачном образе не было никаких изменений - время выполнения будет равносильно apt-get в классической системе.
Мы по-прежнему будем получать все обновления из облачного образа, но теперь туда добавляются любые наши локальные изменения. Для работы с новым пакетом перезагрузка не требуется.
Образ установщика можно скачать по ссылке https://disk.yandex.ru/d/YSoo31cTESMwwQ
Внимание! Это прототип системы, тестировалось только в виртуальной среде.
Требования:
Из-за особенностей образа установщик будет создавать временные дирректории которые потребуют много места, после установки система будет занимать около 12gb
Невозможно использовать mkimage, alterator и другие помощники из altlinux — они не поддерживают данный формат сборки. По этой причине для основных компонентов системы (сборка образа, ядра, создание установщика) были использованы не стандартные инструменты либо написаны с нуля.