Skip to content

ALT Atomic

Атомарная облачная операционная система на базе новейших технологий

Цель данного сайта ?

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

Контакт разработчика: Telegram

Вступить в ALT Gnome Development: Telegram

Как это работает ?

Образ собирается на базе OSI контейнера в облаке, там же происходит настройка и сборках всех необходимых утилит и характерных элементов системы для совместимости с bootc. По итогу трансформации и выполнения workflows мы получаем готовый образ который может использоваться как при установке, так и при обновлении системы.

Система загружается из неизменяемого коммита OSTree, который служит базовым слоем. Поверх него динамически накладываются слои для управления изменяемыми данными, что обеспечивает баланс между стабильностью и гибкостью.

Во время запуска в grub добавляются строки, которые позволяют выбрать последние коммиты ostree связанные с обновлениями/изменениями системы. Для поддержки этого параметра ядро собрано с модулями: ostree, virtiofs, overlayfs

img.png

Для совместимости файловая система преобразуется следующим образом:

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 монтируется в режиме «только для чтения». Это не означает ограничений в установке программ — в дистрибутиве реализована гибкая экосистема управления ПО.

Для поддержания чистоты базового образа рекомендуется:

  • Использовать Flatpak для графических приложений
  • Применять Homebrew для консольных утилит
  • Задействовать Distrobox для интеграции сторонних программ из других дистрибутивов (с автоматическим созданием .desktop-файлов и прозрачной интеграцией в систему)

Если требуется установка специфичных пакетов непосредственно из репозитория ALT — используйте специальный инструмент atomic-actions apt. Этот механизм гарантирует корректную работу с пакетами в рамках атомарной модели, создавая дополнительный слой поверх базового образа.

Atomic-actions

img_1.png

Данная программа будет являться помощником системы, она особым образом импортирует обыкновенные 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 в классической системе.

Мы по-прежнему будем получать все обновления из облачного образа, но теперь туда добавляются любые наши локальные изменения. Для работы с новым пакетом перезагрузка не требуется.

ISO образ

Образ установщика можно скачать по ссылке https://disk.yandex.ru/d/YSoo31cTESMwwQ

Внимание! Это прототип системы, тестировалось только в виртуальной среде.

Требования:

  • 6gb оперативной памяти
  • 50gb дисковое пространство

Из-за особенностей образа установщик будет создавать временные дирректории которые потребуют много места, после установки система будет занимать около 12gb

Почему такой простой установщик ?

Невозможно использовать mkimage, alterator и другие помощники из altlinux — они не поддерживают данный формат сборки. По этой причине для основных компонентов системы (сборка образа, ядра, создание установщика) были использованы не стандартные инструменты либо написаны с нуля.

Связанные проекты