Esitatud on AerynOS-i distributsiooni kontseptsioon koos arhitektuuriliste lahenduste põhjendusega.

AerynOS-i arendajad, varem tuntud kui SerpentOS, on avaldanud üksikasjaliku artikli, milles tutvustatakse projekti kontseptsiooni ja tehnilist teostust koos arhitektuuriliste valikute põhjendustega. Projekti juht Ikey Doherty rõhutab, et AerynOS ei ole lihtsalt "veel üks Linuxi jaotamine", vaid platvorm, alus ja tööriistade komplekt, mis on loodud selge visiooni kohaselt.

Projekti põhiteema on sõnastatud küsimusena: "Mis oleks, kui operatsioonisüsteem käituks nagu kaasaegne infrastruktuur?" AerynOS-i esitletakse vastusena sellele küsimusele — süsteem, mis on üles ehitatud nullist, mitte traditsioonilise jaotuse sissetungimudelite järgimine. Projekt tugineb autorite kogemusele teiste jaotuste, sealhulgas Solus ja Clear Linux, arendamisel.

AerynOS-i peamised tehnilised lahendused on järgmised:

  • LLVM-tööriistu kasutatakse GNU asemel, vaikimisi koos libc++ ja compiler-rt-ga. Arendajad seletavad seda valikut mitte ainult LLVM'i eelistamisena, vaid strateegilise valikuna kvaliteetsema diagnostika, korrektsete ja ülekantavate pakettide tagamiseks. Samuti kasutab süsteem glibc-d musl-i asemel, mis on teadlik valik ühilduvuse ja jõudluse kasuks.

    Nagu artiklis märgitakse: "glibc eelised musl-i ees jõudluses on hästi dokumenteeritud, eriti arvutusintensiivsete töökoormuste ja rakenduste puhul, mis nõuavad optimaalse tõhususe mitme keerme täitmist." Loojad rõhutavad, et nende eesmärk on luua funktsionaalne ja rakendatav süsteem paljude rakendusstsenaariumide jaoks.

  • Kontseptsioon "ilma olekuta" (statelessness) – pakettidel on keelatud sisaldada mingeid faile väljaspool katalooge /usr. Arendajad selgitavad, et see lähenemine sunnib tagama mõistlikud vaikeseaded kõikidel tasanditel ja kõrvaldab "kohutavad kolmanda osapoole sulandumise konfliktid pakettide uuendamisel". Konflikte ei ole, kuna kõik /etc ja /var kuulub kasutajale, kuid /usr on puhtalt süsteemi päralt. Kontseptsioon loodi Clear Linuxi ja Soluse ajastul ning AerynOS-is on see saanud edasise arengu.
  • Atomaarsete värskendused — iga moss-i tehing on atomaarne. Süsteem loob kiiresti uue puu /usr, kasutades jäigade linkide deduplication cache'i. Pärast edukat loomist ja ettevalmistamist asendatakse uus puu atomaarse toiminguga. Tegelikult ette valmistatud tehing vahetatakse reaalsete failide katalooge /usr vastu renameat2 koos RENAME_EXCHANGE lipuga. Uuendamine toimub kas täielikult või mitte üldse, ilma vahepealsete seisunditeta.
  • Laadi haldamine põhineb projektide blsforme ja disks-rs. Lähenemise eripära on see, et süsteem loob dünaamiliselt parameetreid tuumakomandorijuhus kasutades juurfailisüsteemi superblokeid, seega AerynOS-is pole konfiguratsioonifaili, kus oleks parameeter 'root='. Veelgi enam, moss-i tehingu identifikaator kodeeritakse tuumakomandol ja töödeldakse varajase käivitamise ajal initramfs-is. 'Rääkides lühidalt, see tähendab, et iga tuum on õigeaegselt sünkroniseeritud vastava juurfailisüsteemiga ja tagasipöördumine on odav, lihtne ja kergesti kätte saadav otse käivitamisvalikust,' selgitavad arendajad. Veel üks eelis on see, et /etc/default/grub'i pole, ja kui ESP kustutatakse, saab moss selle nullist taastada.
  • Pakettide formaat .stone — omapärane binaarfailide formaat versioonidest sõltumatu päisega tulevaste muudatuste tagamiseks. Iga .stone pakett sisaldab nelja konkreetset andmeliiki (payload), millest igaüks võib iseseisvalt areneda versioonimise tõttu:
    • Sisu koorem (Content payload) — järjestikune blokk deduplicitud andmeid, st paketi failide sisu.
    • Indeksi koorem (Index payload) — sisaldab suundi sisu koormale, indekseeritud XXH128 sisu hashi järgi (plaanis on üleminek Blake3-le). See võimaldab andmete tõhusat leidmist ja väljavõtmist.
    • Kujunduse koorem (Layout payload) — kirjeldab eeldatavat faili süsteemi paigutust paketi rakendamisel, st kuhu ja millised failid peaksid olema paigutatud.
    • Metaandmed (Metadata payload) — järjestikune rangelt tüübistatud, märgistatud metaandmete kirje, nagu paketi nimi, pakutavad võimalused jne.

Koormuse kokkusurumine toimub Zstd abil, mis tagab suurepärase avamisjõudluse hea kokkusurumisteguri säilitamisega. Protsess „installimine” .stone erineb oluliselt teistest süsteemidest. Failide otseinstallimise asemel vahemälustatakse pakett ja selle sisu põimub üldisesse salvestusse sisuadressimise (CAS) kaudu. Metaandmed ja paigutusteave hoitakse eraldi ning neid kasutatakse tehingu loomisel. See lähenemine tagab uuenduste aatomilisuse ja tagasivõtu võimaluse, kuna iga tehing loob uue juurkandja, mitte ei muuda olemasolevat.

Arendajad märgivad, et praegune lähenemine pakettide imperatiivse haldamise emuleerimisele on „täiesti mõttetu” ja „tekitab tegelikult rohkem vigu, kui lahendab”. Kuna iga tehing loob uue juurkatalooge, on tulevikus plaanis luua iga tehingu jaoks uus graaf, loobuda sisseehitatud muudatustest deklaratiivse lähenemise kasuks, sarnane Gentoo või Nix-iga.

Veel üks huvitav selgitus puudutab muutumatust (immutability). Loomingud märgivad, et AerynOSi kirjeldatakse sageli muutumatuna, kuid see pole „täiesti tõene”. Kuigi iga tehing viib uue puu /usr-i ja kohalikke muudatusi ei salvestata, ei ole süsteem muutumatu lugemisega juurdepääsu mõttes. Tulevikus on plaanis rakendada tõelist süsteemi muutumatust ilma taaskäivitamiseta, kasutades erofs-i ja overlayfs-i.

Praegu areneb AerynOS aktiivselt, pakkudes juba ISO-pilte GNOME-i keskkonnaga, sobides mängimiseks (NVIDIA, Steam, Flatpak'i draiverite toega) ning omavad reaalseid kasutajaid, kes toovad esile süsteemi stabiilsuse ja uuenduslikkuse. Arendajate sõnul on projekt alfa-etapis ja ei ole probleemideta, kuid see on juba terviklik süsteem, mis „lihtsalt töötab”.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster