AerynOS – операційна система, що поводиться як сучасна інфраструктура
AerynOS – операційна система, що поводиться як сучасна інфраструктура
Розробники AerynOS, раніше відомої як SerpentOS, оприлюднили розгорнуту статтю, в якій розкриваються деталі концепції та технічної реалізації проєкту з обґрунтуванням прийнятих архітектурних рішень. Керівник проєкту Ikey Doherty підкреслює, що AerynOS – це не просто “ще один дистрибутив Linux”, а платформа, фундамент і набір інструментів, створені відповідно до чіткого бачення.
Основна ідея проєкту сформульована як питання: “Що, якщо операційна система поводитиметься як сучасна інфраструктура?”. AerynOS представлений як відповідь на це питання – система, побудована з нуля, а не така, що слідує традиційній моделі вбудованих мутацій всередині дистрибутива. Проєкт спирається на досвід авторів у розробці інших дистрибутивів, включаючи Solus та Clear Linux.
Ключові технічні рішення операційної системи AerynOS
Використання інструментарію LLVM
Замість GNU в AerynOS використовується інструментарій LLVM із застосуванням libc++ та compiler-rt за замовчуванням. Розробники пояснюють це рішення не просто перевагою LLVM, а стратегічним вибором для використання якіснішої діагностики, забезпечення коректності та переносимості пакетів. При цьому система використовує glibc замість musl, що є свідомим вибором на користь сумісності та продуктивності.
Як зазначено в статті: “Перевага glibc над musl у продуктивності добре задокументована, особливо для обчислювально-інтенсивних робочих навантажень і програм, що потребують оптимальної багатопотокової продуктивності”.
Концепція “statelessness” (без збереження стану)
Пакетам заборонено містити будь-які файли за межами каталогу /usr. Як пояснюють розробники, цей підхід змушує забезпечувати розумні значення за замовчуванням на всіх рівнях і усуває “жахливі конфлікти тристороннього злиття під час оновлення пакетів”. Конфліктів немає, оскільки все в /etc і /var належить користувачеві, а /usr – винятково системі.
Атомарні оновлення
Кожна транзакція moss є атомарною. Система швидко створює нове дерево /usr із використанням жорстких посилань з дедуплікованого кешу. Після успішного створення та підготовки нове дерево атомарно замінює старе. Фактично, підготовлена транзакція обмінюється з реальним каталогом /usr за допомогою renameat2 із прапором RENAME_EXCHANGE. Оновлення або виконується повністю, або не виконується взагалі, без проміжних станів.
Інноваційне управління завантаженням
Управління завантаженням базується на проєктах blsforme та disks-rs. Особливість підходу в тому, що система динамічно формує параметри для командного рядка ядра, зчитуючи суперблоки пристроїв кореневої файлової системи. В AerynOS немає конфігураційного файлу з параметром “root=”. Ідентифікатор транзакції moss кодується в командному рядку ядра та обробляється під час раннього завантаження в initramfs.
“Це означає, що кожне ядро правильно синхронізовано з відповідною кореневою файловою системою, а відкат є дешевим, простим і доступним прямо з меню завантаження”, – пояснюють розробники.
Формат пакетів .stone
AerynOS використовує власний бінарний формат пакетів .stone з версійно-агностичним заголовком для забезпечення майбутніх змін. Кожен пакет містить чотири типи даних:
- Контентне навантаження – послідовний блок дедуплікованих даних
- Індексне навантаження – містить зміщення для контентного навантаження
- Навантаження макета – описує ймовірний макет файлової системи
- Метадані – послідовність типізованих записів метаданих
Стиснення всіх навантажень здійснюється за допомогою Zstd, що забезпечує відмінну продуктивність розпакування зі збереженням хорошого коефіцієнта стиснення.
Поточний стан та майбутнє проєкту
Наразі AerynOS активно розвивається, вже випускає ISO-образи з середовищем GNOME, придатний для ігор (підтримка драйверів NVIDIA, Steam, Flatpak), має реальних користувачів, які відзначають стабільність та інноваційність системи. За словами розробників, проєкт перебуває в стадії альфа-версії та має деякі проблеми, але вже представляє собою цілісну систему, яка “просто працює”.
У майбутньому планується створення нового графа для кожної транзакції, відмова від вбудованих змін на користь декларативного підходу, подібного до Gentoo або Nix. Також розробники планують реалізацію справжньої незмінності системи без необхідності перезавантаження з використанням erofs та overlayfs.
Детальніше про проєкт можна дізнатися на офіційному сайті AerynOS, а з повною статтею про концепцію операційної системи як інфраструктури можна ознайомитися в офіційному блозі проєкту.