AerynOS-un inkişaf etdiriciləri, əvvəllər SerpentOS kimi tanınan, layihənin konsepsiyası və texniki reallaşması ilə bağlı detalları açıqlayan ətraflı bir məqalə dərc etdilər. Layihə rəhbəri Ikey Doherty vurğulayır ki, AerynOS sadəcə "bir daha başqa Linux diskləri" deyil, aydın bir vizyona əsaslanan platforma, təməl və alətlərin toplusudur.
Layihənin əsas ideyası belə bir sual şəklində ifadə olunur: "Əgər əməliyyat sistemi müasir infrastruktur kimi davransaydı necə olardı?" AerynOS bu suala cavab olaraq təqdim olunur — sıfırdan qurulmuş bir sistem, ənənəvi daxil edilmiş mutasiyalar modelini izləməkdənsə. Layihə müəlliflərin Solus və Clear Linux kimi digər disk şəkillərindəki təcrübələrinə əsaslanır.
AerynOS-un əsas texniki qərarlarından bəziləri aşağıdakılardır:
- GNU əvəzinə LLVM alət dəstinin istifadəsi, libc++ və compiler-rt-nin standart olaraq tətbiqi. İnkişaf etdiricilər bu qərarı yalnız LLVM-ə üstünlük verməklə deyil, daha keyfiyyətli diaqnostika, düzgünlük və paketlərin daşınabilirliyini təmin etmək üçün strateji seçim kimi izah edirlər. Bununla yanaşı, sistem musl yerinə glibc istifadə edir, bu da uyğunluq və performansın lehinə şüurlu bir seçimdir.
Məqalədə qeyd olunduğu kimi: "glibc-nin musl üzərindəki performans üstünlüyü yaxşı sənədləşdirilmişdir, xüsusilə hesablama cəhətdən intensiv iş yükləri və optimal çoxluq performansı tələb edən tətbiqlər üçün." Yaratıcılar onların məqsədinin bir çox tətbiq ssenariləri üçün istifadə oluna bilən funksional bir sistem qurmaq olduğunu vurğulayırlar.
- "statelessness" (dövlət saxlamadan) anlayışı — paketlərin /usr kataloqundan kənarda hər hansı bir fayl saxlamasına icazə verilmir. İnkişaf etdiricilər bu yanaşmanın bütün səviyyələrdə məqbul standart dəyərləri təmin etməyə məcbur etdiyini və paketlərin yeniləmələri zamanı "üç tərəfli birləşmə qorxunc münaqişələrini" aradan qaldırdığını izah edirlər. Münaqişələr yoxdur, çünki /etc və /var-dakı hər şey istifadəçiyə məxsusdur, /usr isə tamamilə sistemindir. Bu anlayış Clear Linux və Solus dövrlərində hazırlanmışdır və AerynOS-da daha da inkişaf etdirilmişdir.
- Atomik yeniləmələr — hər bir moss əməliyyatı atomikdir. Sistem, deduplikasiyalı keshdan sərt bağlantılar istifadə edərək, yeni bir /usr ağacını sürətlə yaradır. Uğurla yaradıldıqdan və hazırlandıqdan sonra yeni ağac atomik şəkildə dəyişdirilir. Faktiki olaraq hazırlanan əməliyyat, renameat2 və RENAME_EXCHANGE flaqı ilə /usr kataloqu ilə dəyişdirilir. Yeniləmə ya tamamilə həyata keçirilir, ya da heç həyata keçirilmir, aralıq vəziyyətlər olmadan.
- BLSForme və disks-rs layihələrinə əsaslanan yükləmə idarəsi. Yanaşmanın xüsusiyyəti ondan ibarətdir ki, sistem dinamik olaraq kök fayl sisteminin superbloklarını oxuyaraq nüvənin əmrlərini formalaşdırır, bununla da AerynOS-da «root=» parametrini əks etdirən konfiqurasiya faylı yoxdur. Həmçinin, moss əməliyyatının identifikatoru nüvənin əmrlərində kodlanır və initramfs-də erkən yükləmə zamanı işlənir. «Qısacası, bu, hər bir nüvənin müvafiq kök fayl sistemi ilə düzgün sinkronizasiya olunduğu, geri qaytma prosesinin isə sərfəli, sadə və yükləmə menyusundan asanlıqla mümkündür» — inkişaf etdiricilər izah edir. Həmçinin, /etc/default/grub-un olmaması, əgər ESP silinərsə, moss-un sıfırdan bərpa etməsini mümkün edir.
- .stone paket formatı — gələcək dəyişiklikləri təmin etmək üçün versiya-ağılsız başlıqla öz xüsusi ikili paket forma. Hər bir .stone paketi dörd konkret məlumat tipi (yük) ehtiva edir, hər biri versiyalaşdırma sayəsində müstəqil inkişaf edə bilər:
- Məzmun yükü (Content payload) — deduplikasiyalı məlumatların ardıcıl bloku, yəni paket fayllarının öz məzmunu.
- İndeks yükü (Index payload) — məzmun yükü üçün XXH128 məzmununun hashi üzrə indeksləşdirilmiş ofsetləri ehtiva edir (Blake3-ə keçid planlaşdırılır). Bu, məlumatları effektiv tapmağa və çıxarmağa imkan verir.
- Dizayn yükü (Layout payload) — paket tətbiq edildikdə fayl sisteminin nəzərdə tutulan layini təsvir edir, yəni nəyin harada və hansı faylların quraşdırılmalı olduğunu.
- Metadatanın yükü (Metadata payload) — paket adı, təmin olunan imkanlar və s. kimi sıralı sərt tipi təsnif edilmiş metadatanın qeydləri.
Bütün yüklerin sıxılması Zstd istifadə edilərək həyata keçirilir, bu da yaxşı sıxılma nisbətini qorumaqla birlikdə mükəmməl açma performansı təmin edir. «.stone» sisteminin «quraşdırma» prosesi digər sistemlərdən köklü şəkildə fərqlənir. Faylların birbaşa quraşdırılması əvəzinə, paket önbelleğe alınır və onun məzmunu məzmun ünvanlaması (CAS) ilə ümumi saxlama ilə birləşdirilir. Metadatalar və düzən haqqında məlumat ayrıca saxlanılır və əməliyyatın yaradılmasında istifadə olunur. Bu yanaşma yeniləmələrin atomik olmasını və geri dönmə imkanını təmin edir, çünki hər bir əməliyyat yeni kök bölməsi yaradır, mövcud olanı isə dəyişdirmir.
İnkişaf etdiricilər indiki yanaşmanın imperativ paket idarəetməsinin emulyasiyası ilə «tamamilə mənasız» olduğunu və «şübhəsiz daha çox xətaya səbəb olduğunu» qeyd edirlər. Hər bir əməliyyat üçün yeni kök fayl sistemi yaradıldığından, gələcəkdə hər əməliyyat üçün yeni qrafın yaradılması, daxili dəyişikliklərdən imtina edərək Gentoo və ya Nix kimi deklarativ yanaşmanın tətbiq olunması planlaşdırılır.
İnamı artıran bir başqa maraqlı izahat isə dəyişməzlik (immutability) haqqındadır. Yaradıcılar AerynOS-un tez-tez dəyişməz əməliyyat sistemi kimi təsvir edildiyini, amma «bu tamamilə doğru deyil» olduğunu qeyd edirlər. Hər bir əməliyyat yeni bir /usr ağacına gətirib çıxarır və lokal dəyişikliklər saxlanmır, lakin sistem yalnız oxumaq üçündür deyil, hərəkətə açıqdır. Gələcəkdə erofs və overlayfs istifadə etməklə sistemin tam dəyişməzliyinin tətbiqi planlaşdırılır.
Hazırda AerynOS fəal inkişaf edir, artıq GNOME mühitində ISO şəkilləri təqdim edir, oyunlar üçün uyğundur (NVIDIA driverləri, Steam, Flatpak dəstəyi var), real istifadəçilərin sabitlik və sistemin innovativliyi barədə qeyd etdiyi mükəmməl bir sistemdir. İnkişaf etdiricilərin sözlərinə görə, layihə alfa mərhələsindədir və problemlərdən azad deyil, lakin artıq «sadəcə işləyir» deyə bilən tam bir sistem təqdim edir.
Mənbə: opennet.ru
