Зачем Atomic Niri и что такое ALT Atomic

Рабочий стол на niri, который не зависит от версий GNOME, на неизменяемой основе: система обновляется целиком или не обновляется вовсе.

Зачем Atomic Niri

История: от GNOME к собственному рабочему столу

Автор канала PLAFON много лет отдавал предпочтение GNOME, но с годами осознал, что ему нравятся лишь отдельные элементы и часть функционала, а не всё рабочее окружение целиком. Так он пришёл к выводу, что от GNOME нужны режим обзора, GTK с libadwaita, стоковые приложения GNOME и GNOME Circle, а ещё порталы. Atomic Niri появился как попытка собрать из этого свой рабочий стол.

  • niri вместо GNOME Shell. niri даёт такие же гибкие рабочие столы, как в GNOME, и такой же плавный обзор (Overview). Сверху он добавляет бесконечное полотно окон и гибкую настройку расположения окон через конфиг. В Atomic Niri из этого выросли макеты: можно описать свои рабочие столы так, чтобы нужные приложения открывались на нужных местах при старте системы.
  • Современный Wayland. Окружение целиком на Wayland: нет груза X11, мониторы независимы, графика плавная.
  • Лучшее из GNOME остаётся. GTK-порталы и стоковые приложения GNOME: Nautilus, Календарь и другие из GNOME Circle. Они продолжают работать и выглядеть как привыкли.
  • Свой вход вместо GDM. Красивого Wayland-гретера, подходящего под наши критерии, в природе не было, поэтому появился Seni: менеджер входа на Rust и Vala. По-русски «сени» это вход, так что название для менеджера входа идеальное.
  • Но у niri нет «обвеса». Это только композитор: ему не хватало панели, уведомлений, быстрого меню и всего остального. Так появился рабочий стол, а точнее shell, Niti.

Почему Niti. По-русски «нити»: ниточки, за которые дёргают нужное в системе. Так и пользователь через панель управляет системой: тянет за нить, и происходит то, что нужно.

Главное: лучшее от GNOME без его ограничений

Так мы получаем лучшее из «обвеса» GNOME и при этом больше ни от чего в нём не зависим:

  • Нет привязки к версиям GNOME. Выход новой версии GNOME не ломает рабочий стол: он развивается сам, в своём темпе.
  • Нет ограничений gnome-shell. Панель, уведомления и быстрое меню устроены так, как нужно, а не так, как позволяет чужая оболочка.
  • Нет вечно ломающихся расширений. Расширения GNOME Shell после каждого обновления перестают работать. Здесь вместо них плагины с понятным контрактом, и расширений в этом смысле нет вовсе.
  • Нативная Vala вместо JavaScript. Расширения GNOME Shell пишутся на JS, а Niti написан на Vala: языке, нативном для GTK. Он компилируется в код C и не тащит сборщик мусора и слой биндингов.
  • Серьёзная работа с особенностями языка. Vala легко прячет утечки памяти, особенно в замыканиях. Мы разобрались в этих особенностях и ведём подробную историю найденных утечек и их исправлений, чтобы не наступать на одни и те же грабли.

Seni: свой менеджер входа

Вход в систему тоже сделан своим. Красивого Wayland-гретера, подходящего под наши критерии, не было, поэтому появился Seni, замена GDM. По-русски «сени» это вход, так что название идеально подходит менеджеру входа.

  • Стек: демон на Rust (tokio, zbus), гретер на Vala, GTK4 и libadwaita внутри cage, проверка пароля через PAM, связь по D-Bus.
  • Безопасность: привилегированный код на безопасном языке, гретер работает без прав от отдельного пользователя, пароль идёт через каналы и затирается в памяти, число попыток ограничено.
  • Возможности: быстрый вход, выбор сессии, несколько мониторов, автовход, экран блокировки и вид в стиле панели Niti.

Подробно про Seni →

Что даёт Atomic Niri

ALT Atomic даёт неизменяемую основу. Atomic Niri добавляет к ней законченный рабочий стол, который не похож на традиционный: вместо GNOME или KDE используется тайловый композитор niri.

  • niri: Wayland-композитор с бесконечной горизонтальной лентой окон. Окна не накладываются друг на друга и не перекрывают панель, а управлять можно и с клавиатуры, и мышью: при зажатой клавише Mod колесо листает рабочие столы, а боковое колёсико (например, у Logitech MX Master) двигает ленту окон.
  • Niti: полноценный shell на Vala и GTK4: панель, лаунчер, уведомления, трей, таскбар, быстрое меню, виджеты. Цвета интерфейса подбираются из обоев.
  • Глобальный поиск по Super+D: приложения, страницы настроек Tuner, пункты Atomic Booster, калькулятор и системные действия в одном поле, с живыми результатами.
  • Готово к первому входу: пока вы проходите мастер, к моменту рабочего стола уже настроены сеть, приложения, панель и обои.
  • Настройка без ручных конфигов: системные операции в Atomic Booster, всё остальное в Tuner с отдельным плагином на каждую вкладку.
  • Три ритма обновлений: latest, stable и long. Выберите, как часто хотите получать новое (подробнее).

Кому подходит. Тем, кому нравится идея «поставил, настроил, не ломается» и кто хочет попробовать тайловый рабочий стол без многодневной ручной настройки. Не подойдёт тем, кто привык менять систему вручную (apt install, правки в /usr). Владельцам NVIDIA нужен отдельный экспериментальный канал nvidia.

Проблема, которую решает ALT Atomic

Обычная система за полгода превращается в уникальную: каждую неделю обновления, пакеты «просто попробовать», правки конфигов. Если она ломается, воспроизвести её на другой машине почти невозможно, да и сами вы уже не помните, как она пришла к такому состоянию.

ALT Atomic устроена иначе: операционная система это один неделимый образ. Он не меняется по частям. Обновление происходит только целиком: либо удачно, либо никак. А если новая версия вам не понравилась, предыдущая лежит рядом и возвращается за секунды.

Как это работает «на пальцах»

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

ПутьТипДоступЧто хранит
/composefs с fs-verityтолько чтениеобраз: ядро, systemd, библиотеки, системные утилиты
/usrвременный overlayзапись до перезагрузкито, что вы поставили «на пробу» (слетает после перезагрузки)
/var/homeотдельный раздел Btrfsполныйваши документы и настройки, обычная домашняя папка

Ваши файлы не иммутабельны: неизменяема только сама система. Поэтому обновления и откаты никогда не трогают домашнюю папку.

Чем это отличается от обычной системы

Обычный дистрибутивALT Atomic
Корень /доступен для записитолько чтение
Обновлениеотдельная транзакция на каждый пакетодна атомарная операция
Сбой обновлениявозможно «полуобновлённое» состояниеоткат к предыдущему образу за секунды
Мусор от старых пакетовнакапливаетсякаждое обновление чистый образ
Воспроизводимость«у меня работает»образ это рецепт: что собрано в CI, то и у всех

Экспериментируйте без страха: usr-overlay и перезагрузка

Неизменяемая система не значит «трогать нельзя». Команда sudo bootc usr-overlay делает /usr временно записываемым. Дальше можно делать в нём что угодно: ставить пакеты, подменять файлы, пробовать чужие сборки и патчи.

sudo bootc usr-overlay sudo apm system install htop # ... экспериментируем, ломаем, чиним ... sudo reboot

После перезагрузки все изменения в /usr исчезают, и система снова ровно такая, какой её собрали в образе. Сломать систему этим способом практически нельзя: достаточно перезагрузиться.

Что не откатывается. Откатывается только /usr. Файлы в домашней папке и в /var, а также настройки в /etc остаются как есть, это ваши данные и конфигурация. Если хотите оставить пакет насовсем, его добавляют в образ.

Современная графика: Wayland

Рабочий стол построен на Wayland, современном протоколе вывода графики, который заменяет старый X11. niri работает только на Wayland: это даёт плавную прорисовку, независимые мониторы с разным масштабом и частотой и более строгую изоляцию окон друг от друга. Старые программы X11 запускаются через xwayland-satellite, отдельно ничего настраивать не нужно.

Видеодрайверы AMD и Intel живут в ядре Linux и Mesa, поэтому графика работает из коробки. Для NVIDIA есть отдельный экспериментальный канал.

Приложения живут отдельно от системы

Главная идея: система остаётся чистой, а всё, что вы ставите, живёт в стороне. Сборочный мусор, зависимости, кэши и «хвосты» программ никогда не попадают в системный образ и не захламляют его.

Как они изолированы. Flatpak это настоящая песочница с разрешениями. Distrobox это контейнер, а не жёсткая защита: домашняя папка в нём по умолчанию общая с хостом. Зато у него своя файловая система и свои пакеты, так что система не засоряется.

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

APM: менеджер пакетов ALT Atomic

APM (Atomic Package Manager) это не просто замена apt. Он знает об устройстве неизменяемой системы и работает сразу как консольная команда, служба D-Bus и HTTP API. Через D-Bus с ним общаются Atomic Booster и другие приложения.

КомандаДля чего
apm system (apm s)системные пакеты, образ и приложения
apm repo (apm r)репозитории
apm distrobox (apm d)контейнеры Distrobox и пакеты в них

Что умеет apm system

КомандаЧто делает
apm system upgradeобновляет образ системы (то же, что image update)
apm system install пакетставит пакет во временный overlay над /usr, после перезагрузки он исчезнет
apm system remove пакетубирает пакет и записывает это в рецепт образа
apm system search, info, listпоиск пакетов и сведения о них
apm system image statusсостояние: запущенный, ожидающий, откатный образ
apm system image historyистория изменений образа
apm system image applyпересобирает локальный образ по вашему image.yml и разворачивает его

Рецепт образа: image.yml

Всё, что должно быть в системе постоянно, описывается в файле image.yml: пакеты, ядро, свои скрипты. Это рецепт, по которому собирается образ, и он воспроизводим: один и тот же рецепт даёт одну и ту же систему. Формат модульный: список modules, у каждого модуля свой тип (пакеты, ядро, скрипт, подключение другого файла).

Поэтому правило простое. Для пробы: apm system install и перезагрузка всё вернёт. Для постоянного: изменить рецепт и применить его (apm system image apply), или собрать свой образ в CI.

Осторожно с локальной пересборкой. Команда apm system image apply собирает образ прямо на вашем компьютере по image.yml. Для проб это нормально, но для постоянных изменений надёжнее другой путь: хранить image.yml в своём репозитории и собирать образ в CI, а затем переключаться на него через bootc switch.

Почему так. Локальная сборка капризнее: она падает, если убрать пакет, которого нет в базовом образе, может отказаться пересобирать, когда решит, что изменений нет, а на полном диске история записывается раньше, чем подтверждён успех. Сборка в CI воспроизводима, у неё есть история в git, и обновления не придётся собирать на своей машине.

Репозитории и контейнеры

Подключить репозиторий можно командой apm repo add, а контейнер Distrobox создать и сразу поставить в него программу с автоматическим выводом ярлыка на хост:

apm distrobox c create --image alt --name dev apm distrobox install -c dev некая-программа

Когда контейнер удаляется, APM убирает с хоста всё, что было из него выведено. Подробная справка по командам есть в хэндбуке.

Как разрабатывается дистрибутив

Atomic Niri делается открыто, быстро и с упором на безопасность пользователя. Несколько цифр на 6 ноября 2026 года:

3000+ коммитов

Около 2100 в четырёх основных репозиториях (образ, Niti, Atomic Booster, Seni) и около 900 в 39 репозиториях плагинов Tuner и шагов мастера. Работа идёт с июня 2026 года.

1700+ тестов

Автоматические проверки в основных репозиториях: более 900 у Niti, около 450 у Atomic Booster, около 240 у образа, около 70 у Seni. Плюс сценарии проверки установленного образа.

Всё открыто

Весь исходный код лежит на ALT Linux Space, сборки идут в публичном CI, образ собирается из git. Любой может прочитать, проверить и предложить правку.

Число тестов посчитано по тестовым функциям в репозиториях, оно приблизительное.

Подпись образов: защита от подмены

Главный риск для системы, которая обновляется образом, это подмена образа по дороге. Поэтому образы основных каналов подписываются.

  • Ключ проекта (cosign). Образы каналов latest, stable и dev-test подписаны. Закрытый ключ хранится в секретах CI, открытый лежит в самом образе (/usr/share/atomic-booster/release-pubkey.pem) и в репозитории (keys/release-pubkey.pem).
  • Неподписанное до пользователей не доходит. Сборка сначала публикуется под служебным тегом канал-unsigned. В рабочий тег она попадает только после подписи.
  • SBOM. К образу прикладывается список всех пакетов и известных уязвимостей в формате CycloneDX (сканер trivy). Atomic Booster показывает, сколько критических и серьёзных уязвимостей закрывает новая версия.
  • Проверка перед обновлением. Atomic Booster проверяет подпись и SBOM перед обновлением и сменой канала. Нет подписи или она не сходится: обновление не выполняется.
  • Проверить самому. Подпись можно проверить вручную командой cosign verify.
cosign verify --key /usr/share/atomic-booster/release-pubkey.pem \ altlinux.space/plafonlinux/atomic-niri-plafon:latest

Честная оговорка. Подпись проверяет Atomic Booster. Команды bootc upgrade и bootc switch из терминала подпись не проверяют. Если обновляетесь вручную, проверяйте её сами через cosign verify.

Защита учётной записи

  • Ограничение попыток пароля. Подключён pam_faillock: после 10 неудачных попыток за 15 минут учётная запись блокируется на 5 минут. Это касается входа, разблокировки экрана, sudo и su.
  • Неизменяемая система. Корень доступен только для чтения и проверяется криптографически (composefs и fs-verity), поэтому подменить системные файлы трудно, а откат занимает секунды.
  • Приложения в изоляции. Flatpak работает в песочнице, а остальное живёт в контейнерах и не касается системы.

Как Seni открывает вашу сессию

Seni устроен так, чтобы привилегированная часть была маленькой и написанной на безопасном языке.

  1. Гретер без правОкно входа (Vala, GTK4, libadwaita) запускается внутри cage от отдельного пользователя _greeter. Пароль он сам не проверяет.
  2. Демон на RustГретер передаёт пароль демону по D-Bus (zbus). Демон работает от root, написан на Rust (tokio) и затирает пароль в памяти после использования.
  3. Проверка через PAMДемон не хранит и не сравнивает пароли: проверку выполняет штатный стек PAM системы (pam_tcb), включая pam_faillock.
  4. Сессия через logindПосле успеха открывается сессия PAM, systemd-logind регистрирует её на рабочем месте, привилегии сбрасываются до вашего пользователя и запускается niri.

Прозрачность разработки

  • Весь исходный код на ALT Linux Space: образ, Niti, Atomic Booster, Seni, плагины Tuner, шаги мастера и этот сайт.
  • Образ собирается в публичном CI: что собрано в CI, то и у всех, рецепт сборки лежит в репозитории.
  • Разработка идёт в ветке dev, проверяется в сборке dev-test и только потом попадает в main и в рабочие каналы.
  • Ошибки и идеи принимаются в issues, а история изменений ведётся в журнале изменений и в коммитах.
  • Как устроена работа с репозиториями и CI, описано в документации для разработчиков.

Из чего это сделано

  • bootc и composefs: образ контейнера разворачивается на диск и загружается как система; fs-verity проверяет целостность файлов.
  • APM: менеджер пакетов ALT Atomic. Изменения системы описываются в YAML (image.yml) и применяются через сборку образа.
  • Flatpak, Distrobox, Capsule: приложения живут отдельно от системы, внутри контейнеров и песочниц.
  • ALT Linux Space (altlinux.space): здесь образ собирается в CI и хранится в реестре.

Подробное руководство по ALT Atomic: хэндбук и чат ALT Atomic.

Как создавался ALT Atomic

ALT Atomic развивается сообществом вокруг ALT Linux. Если коротко, хронология такая:

  • Начало 2025. Появился чат ALT Atomic и первый инструмент atomic-actions, обёртка над пакетным менеджером и OSTree. Затем началась разработка APM как его замены.
  • 2025. Выбран стек bootc и composefs вместо rpm-ostree, система собирается на Sisyphus (самые свежие пакеты ALT). Основной площадкой CI/CD стала ALT Linux Space. Появились Capsule и stplr для приложений.
  • Начало 2026. Дебют ReadySet, мастера первой настройки. Запущена сборка образов в CI с пересборкой слоёв (rechunk), позже появился chunkah. APM получил модульный формат image.yml.
  • 2026. Вокруг ALT Atomic растёт экосистема: Atomic Booster, Tuner, свои образы сообщества.

Почему ALT Atomic идеально подходит для дома

Если вы не играете в Linux, а просто пользуетесь им каждый день для работы, учёбы, писем, фильмов и семейных фотографий, то неизменяемая система это не компромисс, а главный плюс. Вам нужен компьютер, который работает и не требует внимания. Именно это даёт атомарность.

Поставил и забыл

Обновляется целиком

Система приходит одним образом, а не сотнями отдельных пакетов. Обновление либо применилось полностью, либо не применилось вовсе. «Полуобновлённого» состояния, в котором всё странно ломается, просто не бывает.

Откат за секунды

Предыдущая версия всегда лежит рядом. Новая сборка чем-то не понравилась: одна команда или одна кнопка в Atomic Booster, перезагрузка, и всё как вчера. Ваши документы и настройки в домашней папке при этом не меняются.

Не накапливается мусор

Со временем обычная система обрастает забытыми пакетами, конфигами и «пробными» программами. Здесь каждое обновление это чистый образ, а пробные вещи живут в контейнерах и исчезают вместе с ними.

Одинаково у всех

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

Изоляция работает на вас, а не против вас

Слова «неизменяемая» и «изолированная» звучат как ограничения, а на деле это защита целостности системы.

  • Системные файлы только для чтения. Случайная команда, неудачный скрипт или сомнительная установка не могут повредить сами основы системы. Сломать можно только свои файлы, а не загрузку.
  • Приложения в песочнице. Программы из Flatpak живут отдельно, со своими библиотеками и ограниченным доступом. Новая версия одного приложения не ломает остальные и не «сносит» нужные системе пакеты.
  • Целостность проверяется. Корень системы защищён криптографически, а образы обновлений подписаны. Подмена системных файлов или образа обновления, который проверяет Atomic Booster, не пройдёт незамеченной.
  • Незапланированные выходы из строя исчезают. Типичные истории вроде «обновил, перезагрузился, а система не стартует» или «поставил пакет, и сломался звук» здесь решаются откатом за секунды.

«Но я не смогу ничего установить?»

Сможете, и привычнее, чем кажется:

  • Обычные программы ставятся из каталога в пару кликов (Flatpak, магазин Bazaar или Atomic Booster). Браузер, почта, офис, плеер, мессенджеры уже идут в комплекте.
  • Что-то особенное можно получить из контейнера Distrobox с Arch, Ubuntu или Fedora, либо из капсулы в одном файле.
  • Эксперименты безопасны: usr-overlay позволяет менять систему как угодно, а после перезагрузки всё возвращается.
  • Терминал не обязателен. Обновления, смена канала, приложения и контейнеры управляются мышью в Atomic Booster.

Для кого это

Для работы и учёбы

Компьютер должен включаться и работать в понедельник утром так же, как в пятницу вечером.

Для семьи

У каждого свой пользователь и своя домашняя папка, а система остаётся здоровой, что бы ни установили или ни нажали.

Для родителей и друзей

Поставили, настроили и уехали: через полгода система обновлена и работает, а вам не нужно приезжать «чинить».

Честно: к чему придётся привыкнуть

У неизменяемой системы есть своя логика, и стоит знать о ней заранее.

  • Привычное «поставил пакет навсегда через пакетный менеджер» здесь заменено: для постоянных системных пакетов меняют рецепт образа, для остального есть Flatpak, контейнеры и капсулы.
  • Для видеокарт NVIDIA есть отдельный экспериментальный канал. Графика AMD и Intel работает из коробки.
  • Образ молодой и быстро развивается. Новичкам лучше выбрать спокойный канал stable, а откат всегда под рукой.