Esitletud on AerynOS jaotise kontseptsioon koos arhitektuursete lahenduste põhjendustega.

AerynOS-i arendajad, kes varem olid tuntud kui SerpentOS, avaldasid põhjaliku artikli, kus jagatakse teavet projekti kontseptsiooni ja tehnilise rakendamise kohta koos arhitektuuriliste otsuste põhjendustega. Projekti juht Ikey Doherty rõhutab, et AerynOS ei ole mitte lihtsalt "veel üks Linuxi distributsioon", vaid platvorm, alus ja tööriistade komplekt, mis on loodud selge visiooni järgi.

Projektikontseptsioon on formuleeritud küsimusena: "Kuidas oleks, kui operatsioonisüsteem käituks nagu kaasaegne infrastruktuur?" AerynOS esindab vastust sellele küsimusele — süsteemi, mis on üles ehitatud nullist, mitte traditsiooniliselt muundatud distributsioonide mudeli järgi. Projekt tugineb autorite kogemusele teiste distributsioonide, sealhulgas Solus ja Clear Linux, arendamisel.

AerynOS-i võtmetehnilised lahendused hõlmavad:

  • LLVM tööriistade kasutamine GNU asemel, kus vaikimisi kasutatakse libc++ ja compiler-rt. Arendajad selgitavad seda valikut mitte üksnes LLVM eeliste tõttu, vaid strateegilise otsusena parema diagnostika, pakettide õiguse ja ülekantavuse tagamiseks. Samuti kasutab süsteem glibc-d musl-i asemel, mis on teadlik valik ühilduvuse ja jõudluse kasuks.

    Kuidas artiklis märgitud: „glibc eeliseid musl-i ees jõudluses on hästi dokumenteeritud, eriti arvutusintensiivsete töökoormuste ja rakenduste puhul, mis nõuavad optimaalse mitme lõime jõudlust“. Loojad rõhutavad, et nende eesmärk on luua töötav ja kasutusvalmis süsteem mitmesuguste rakenduste stsenaariumide tarbeks.

  • Kontekst "statelessness" (ilma olekuta) — pakettidele on keelatud sisaldada faile väljaspool kausta /usr. Nagu arendajad selgitavad, sunnib see lähenemine tagama mõistlikud vaikeseaded kõigil tasanditel ja kõrvaldab "kohutavad kolmikliitmise konfliktid paketihaldusprotsesside uuendamisel". Konflikte ei esine, sest kõik /etc ja /var kuuluvad kasutajale, samas kui /usr on ainult süsteemi omad. Kontseptsioon töötati välja Clear Linuxi ja Soluse ajal ning AerynOS-is sai see täiendavat arengut.
  • Aatomilised uuendused — iga moss'i tehing on aatomiline. Süsteem loob kiiresti uue puu /usr, kasutades kõva linke deduplication'i vahemälust. Pärast edukat loomist ja ettevalmistamist asendatakse uus puu aatomiliselt. Tegelikult vahetatakse ettevalmistatud tehing reaalse katalooga /usr, kasutades renameat2 koos RENAME_EXCHANGE lipuga. Uuendus kas toimub täielikult või ei toimu üldse, ilma vahepealsete olekute olemasoluta.
  • Projektide blsforme ja disks-rs põhjal põhinev laadimise haldamine. Selle lähenemise omadus on see, et süsteem genereerib dünaamiliselt parameetrid kernel'i käsureale, lugedes juurfailisüsteemi seadmete superplokke, seetõttu ei ole AerynOS-is konfiguratsioonifaili, mis sisaldab parameetrit „root=“. Veelgi enam, tehingu ID moss kodeeritakse kernel'i käsureale ja töödeldakse varajase laadimise ajal initramfs-is. „Lühidalt öeldes tähendab see, et iga kernel on õigesti sünkroniseeritud vastava juurfailisüsteemiga, ja tagasikäik on odav, lihtne ja kergesti kättesaadav otse laadimismenüüst,” selgitavad arendajad. Veel üks eelis on /etc/default/grub puudumine, ja kui ESP kustutatakse, saab moss selle nullist taastada.
  • .stone pakettide formaat on omaette binaarsete pakettide formaat, millel on versioonist sõltumatu pealkiri tulevaste muudatuste tagamiseks. Iga .stone pakett sisaldab nelja konkreetset andmetüüpi (payload), millest igaüht saab iseseisvalt arendada versioonimist kasutades:
    • Sisu koormus (Content payload) — järjestikune blokk dedupeeritud andmetest, see tähendab pakendi failide sisu.
    • Indeksi koormus (Index payload) — sisaldab sisu koormuse offset'e, mis on indekseeritud XXH128 sisu hash'i järgi (plaanitakse üleminekut Blake3-le). See võimaldab tõhusalt leida ja hankida andmeid.
    • Kujunduse koormus (Layout payload) — kirjeldab eeldatavat failisüsteemi paigutust paketi rakendamisel, ehk kuhu ja millised failid tuleks installeerida.
    • Metaandmed (Metadata payload) — järjestus rangelt tüübitud, märgistatud metadata kirjed, näiteks pakendi nimi, pakutavad võimalused jne.

Kogu koormus kompressitakse Zstd abil, mis tagab suurepärase dekompressioonijõudluse samal ajal, kui säilib hea kompressioonimäär. Protsess 'paigaldamine' .stone on kardinaalselt erinev teistest süsteemidest. Failide otsese installimise asemel vaheldub pakett ja selle sisu põimub koos hangitud sisu ülevaatamise hoidlas, mille aadress on seotud sisuga (CAS). Metaandmed ja kujundusteave säilitatakse eraldi ning neid kasutatakse tehingu loomisel. See lähenemine tagab värskenduste aatomilisuse ja tagasivõtmise võimaluse, kuna iga tehing loob uue juurtasandi, mitte ei muuda olemasolevat.

Arendajad rõhutavad, et praegune lähenemine imperatiivsete pakettide haldamise emuleerimisele on 'täielikult mõttetu' ja 'tegelikult toob rohkem vigu, kui lahendab'. Kuna iga tehingu jaoks luuakse uus juurtasand, on tulevikus plaanis luua iga tehingu jaoks uus graaf, loobuda sisemiste muudatuste tegemisest deklaratiivse lähenemise kasuks, sarnaselt Gentoo või Nixiga.

Veel huvitav selgitus puudutab muutumatust (immutability). Loomise ajal märgitakse tihti, et AerynOS-i kirjeldatakse kui muutumatut operatsioonisüsteemi, kuid "see ei ole päris õige". Kuigi iga tehing toob kaasa uue puu /usr ja kohalikud muudatused ei jää püsima, ei ole süsteem ligipääsult ainult lugemiseks. Tulevikus on plaanis rakendada tõelist muutumatust süsteemi, kasutades erofs ja overlayfs, ilma vajaduseta taaskäivitada.

Praegu on AerynOS aktiivselt arenevas staadiumis, juba väljastades ISO-pilte GNOME keskkonnaga, sobib mängimiseks (NVIDIA draiverite, Steam'i, Flatpak'i tugi), omab reaalseid kasutajaid, kes märkavad süsteemi stabiilsust ja uuenduslikkust. Arendajate sõnul on projekt alpha-etapis ja ei ole probleemideta, kuid esindab juba täiuslikku süsteemi, mis "lihtsalt töötab".

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster