В длинной технической статье Ikey Doherty (известен как руководитель таких проектов, как Solus, и участник Clear Linux) описывает философию и архитектуру AerynOS, этот новый проект стремится переосмыслить то, как должна вести себя операционная система в эпоху инфраструктуры как кода.
И это далеко не просто очередной дистрибутив в экосистеме Linux, AerynOS представляет собой глубокое переосмысление современной операционной системы.
От дистрибуции до инфраструктуры
AerynOS рождается из вопроса провокационный: «А что, если бы операционная система вела себя как современная инфраструктура?». Ответом является платформа, созданная с нуля, без изменения устаревших соглашений традиционных дистрибутивов, и вместо того, чтобы изменять существующие системы, AerynOS начинает с чистого фундамента, используя предыдущий опыт и принимая радикальные архитектурные решения для обеспечения согласованности, обратимости и структурной простоты.
Айки Доэрти упоминает в своей статье, что Одним из самых ярких решений является принятие цепочки инструментов LLVM. вместо традиционного GNU, использующего libc++ и compiler-rt по умолчанию. Этот выбор обусловлен не только стилистическими предпочтениями, но и стратегией. для превосходной диагностики и большей портативности. Несмотря на это обновление, AerynOS по-прежнему привержена использованию glibc в качестве стандартной библиотеки, выбирая ее вместо musl из-за ее превосходной производительности при многопоточных нагрузках и ресурсоемких приложениях.
В дополнение к этому, упоминается, что один Одной из основных концепций AerynOS является «безгражданство».: Ни один пакет не может устанавливать файлы за пределами /usr. Это строгое разграничение отделяет пользовательское пространство (/etc, /var) от системного пространства, устраняя конфликты слияния и упрощая чистые обновления. Эта идея, восходящая к Clear Linux, направлена на обеспечение разумных значений по умолчанию и избежание ненужной сложности, которую часто привносят более гибкие системы.
Атомарные и обратимые обновления
AerynOS использует совершенно новую систему управления пакетами, называемую Moss, который выполняет атомарные транзакции. Каждое обновление создает новое дерево /usr, используя жесткие ссылки из дедуплицированного хранилища, и атомарно заменяется текущим деревом с помощью renameat2(). Этот механизм гарантирует, что обновления либо полностью завершены, либо не применяются вообще, избегая промежуточных состояний.
Управление загрузкой также нарушает традицию. Благодаря таким инструментам, как blsforme и disks-rs, AerynOS динамически генерирует командную строку ядра, напрямую считывая суперблоки файловой системы, что устраняет необходимость в root=. Кроме того, каждое ядро привязано к своей конкретной транзакции, что упрощает откат системы из меню загрузки и позволяет восстанавливать загрузочную среду с нуля в случае потери ESP.
Формат .stone: новый способ упаковки программного обеспечения
Еще одним ключевым компонентом является Формат .stone, современный бинарный пакет Разработан с учетом независимости версий и высокой эффективности. Каждый файл .stone содержит:
- Дедуплицированное содержимое файлов пакета
- Хэш-индекс (XXH128, с планами перехода на Blake3)
- Карта целевой файловой системы
- Типизированные метаданные, такие как имя, версия, возможности и т. д.
Вместо установки файлов напрямую, los .stone хранятся в хранилище с адресацией по содержимому (CAS) и составляются как часть транзакции. Такой подход не только повышает производительность, но и позволяет легко отменить любые изменения.
Система управления пакетами не следует традиционной императивной модели. Разработчики считают, что команды прямой установки «привносят больше ошибок, чем решают». Вместо этого каждая транзакция создает новый системный граф, прокладывая путь для будущей декларативной модели, подобной Nix или Gentoo, где описывается желаемое состояние системы, а не выполняются команды на изменение.
Является ли AerynOS неизменяемым?
Хотя ее часто описывают как неизменную систему, сами создатели поясняют, что это не совсем так. Система не блокирует доступ только для чтения, и в то время как транзакции заменяют дерево /usr, Полная неизменность пока не реализована. Долгосрочная цель — добиться этого без перезагрузки, используя такие технологии, как overlayfs и erofs.
Несмотря на то, что AerynOS находится на стадии альфа-тестирования, у нее уже есть доступные ISO-образы, поддержка GNOME, совместимость со Steam, NVIDIA, Flatpak и реальные пользователи, которые хвалят ее стабильность и производительность. Система уже достаточно хорошо работает, чтобы ее можно было протестировать в реальных условиях, хотя она все еще находится в стадии развития.
источник: https://aerynos.com