A fost prezentată concepția distribuției AerynOS, împreună cu justificările soluțiilor arhitecturale

Dezvoltatorii AerynOS, anterior cunoscut ca SerpentOS, au publicat un articol detaliat în care sunt dezvăluite detalii despre concepție și implementarea tehnică a proiectului, cu justificările soluțiilor arhitecturale adoptate. Liderul proiectului, Ikey Doherty, subliniază că AerynOS nu este doar "încă un sistem de operare Linux", ci o platformă, un fundament și un set de instrumente create conform unei viziuni clare.

Ideea principală a proiectului este formulată sub formă de întrebare: "Ce-ar fi dacă sistemul de operare ar funcționa ca o infrastructură modernă?" AerynOS este prezentat ca răspuns la această întrebare — un sistem construit de la zero, nu o simplă continuare a modelului tradițional de mutații integrate în cadrul unui sistem. Proiectul se bazează pe experiența autorilor în dezvoltarea altor distribuții, inclusiv Solus și Clear Linux.

Printre soluțiile tehnice cheie ale AerynOS se numără:

  • Utilizarea instrumentelor LLVM în loc de GNU, cu aplicația libc++ și compiler-rt ca implicit. Dezvoltatorii explică această alegere nu doar prin preferința pentru LLVM, ci printr-o opțiune strategică pentru utilizarea unui diagnostic mai calitativ, asigurând corectitudinea și portabilitatea pachetelor. În același timp, sistemul folosește glibc în loc de musl, ceea ce reprezintă o alegere conștientă în favoarea compatibilității și performanței.

    Așa cum se specifică în articol: "Avantajul glibc în fața musl în ceea ce privește performanța este bine documentat, în special pentru sarcini de lucru intensive din punct de vedere computațional și aplicații care necesită performanță optimă în medii multicore". Creatorii subliniază că scopul lor este să construiască un sistem funcțional, adecvat pentru o multitudine de scenarii de utilizare.

  • Conceptul de „statelessness” (fără stare) — pachetelor le este interzis să conțină fișiere în afara directorului /usr. Așa cum explică dezvoltatorii, această abordare impune asigurarea unor valori adecvate în mod implicit la toate nivelurile și elimină "conflitele terțe oribile la actualizarea pachetelor". Nu există conflicte, deoarece totul în /etc și /var aparține utilizatorului, iar /usr aparține exclusiv sistemului. Conceptul a fost dezvoltat în perioada Clear Linux și Solus, găsind o mai departe dezvoltare în AerynOS.
  • Actualizările atomice - fiecare tranzacție moss este atomică. Sistemul generează rapid un nou arbore /usr folosind linkuri dure din cache-ul deduplicat. După crearea și pregătirea cu succes, noul arbore este înlocuit atomic. Transacția pregătită este schimbată cu catalogul real /usr folosind renameat2 cu flagul RENAME_EXCHANGE. Actualizarea fie se efectuează complet, fie nu se efectuează deloc, fără stări intermediare.
  • Gestionarea încărcării pe baza proiectelor blsforme și disks-rs. Caracteristica abordării este că sistemul formează dinamic parametrii pentru linia de comandă a kernel-ului, citind superblocurile dispozitivelor din sistemul de fișiere rădăcină, astfel încât în AerynOS nu există un fișier de configurare care să conțină parametrul „root=”. Mai mult, identificatorul tranzacției moss este codificat în linia de comandă a kernel-ului și gestionat în timpul încărcării timpurii în initramfs. „Pe scurt, aceasta înseamnă că fiecare kernel este sincronizat corect cu sistemul de fișiere rădăcină corespunzător, iar revenirea este ieftină, simplă și disponibilă direct din meniul de încărcare”, explică dezvoltatorii. Un alt avantaj - lipsa /etc/default/grub, iar dacă ESP va fi șters, moss îl poate restaura de la zero.
  • Formatul pachetelor .stone - un format binar propriu pentru pachete cu un header agnostic la versiune pentru a permite modificări ulterioare. Fiecare pachet .stone conține patru tipuri specifice de date (payload), fiecare dintre ele putând evolua independent datorită versiunii:
    • Încărcătura de conținut (Content payload) - un bloc secvențial de date deduplicat, adică conținutul fișierelor din pachet.
    • Încărcătura de index (Index payload) - conține offset-uri pentru încărcătura de conținut, indexate prin hash-ul XXH128 al conținutului (se preconizează o tranziție la Blake3). Aceasta permite găsirea și extragerea eficientă a datelor.
    • Încărcătura de layout (Layout payload) - descrie layout-ul prevăzut al sistemului de fișiere la aplicarea pachetului, adică unde și ce fișiere ar trebui să fie instalate.
    • Metadatele (Metadata payload) - o secvență de înregistrări stricte tipizate și etichetate ale metadatelor, cum ar fi numele pachetului, capacitățile oferite etc.

Compresia tuturor sarcinilor se realizează cu ajutorul Zstd, ceea ce asigură o performanță excelentă a despachetării, menținând în același timp un coeficient bun de compresie. Procesul de „instalare” .stone este radical diferit de alte sisteme. În loc de instalarea directă a fișierelor, pachetul este stocat în cache, iar conținutul său este împletit într-un depozit comun cu adresare pe baza conținutului (CAS). Metadatele și informațiile despre layout sunt păstrate separat și utilizate la crearea unei tranzacții. Această abordare asigură atomicitatea actualizărilor și posibilitatea de rollback, deoarece fiecare tranzacție creează o nouă secțiune rădăcină, nu modifică pe cea existentă.

Dezvoltatorii remarcă faptul că abordarea actuală de emulare a controlului imperativ al pachetelor este „complet lipsită de sens” și „de fapt, introduce mai multe erori decât rezolvă”. Deoarece pentru fiecare tranzacție se creează un nou sistem de fișiere rădăcină, în viitor se preconizează crearea unei noi grafic pentru fiecare tranzacție, abandonarea modificărilor integrate în favoarea unei abordări declarative, similară cu Gentoo sau Nix.

O altă explicație interesantă se referă la imutabilitate (immutability). Creatorii subliniază că AerynOS este adesea descris ca un sistem de operare imutabil, dar „acest lucru nu este complet adevărat”. Deși fiecare tranzacție conduce la un nou arbore /usr și modificările locale nu sunt păstrate, sistemul nu este imutabil în sensul accesului doar pentru citire. În viitor, se preconizează implementarea unei imutabilități adevărate a sistemului fără a necesita reporniri, folosind erofs și overlayfs.

În prezent, AerynOS este în dezvoltare activă, publicând deja imagini ISO cu mediu GNOME, fiind potrivit pentru jocuri (cu suport pentru drivere NVIDIA, Steam, Flatpak), având utilizatori reali care remarcă stabilitatea și inovația sistemului. Potrivit dezvoltatorilor, proiectul este în stadiu alfa și nu este lipsit de probleme, dar reprezintă deja un sistem coerent care „pur și simplu funcționează”.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster