Predstavitev koncepta distribucije AerynOS z utemeljitvijo arhitekturnih rešitev

Razvijalci AerynOS, prej znanega kot SerpentOS, so objavili obsežno članek, ki razkriva podrobnosti koncepta in tehnične izvedbe projekta z utemeljitvijo sprejetih arhitekturnih odločitev. Vodja projekta Ikey Doherty poudarja, da AerynOS ni le "še ena distribucija Linuxa", temveč platforma, temelj in nabor orodij, ustvarjenih v skladu z jasnim razumevanjem.

Osnovna ideja projekta je oblikovana kot vprašanje: "Kaj, če bi operacijski sistem deloval kot sodobna infrastruktura?" AerynOS je predstavljen kot odgovor na to vprašanje — sistem, zgrajen od temeljev, in ne le naslednik tradicionalnega modela vgrajenih mutacij znotraj distribucije. Projekt se opira na izkušnje avtorjev pri razvijanju drugih distribucij, vključno z Solus in Clear Linux.

Med ključnimi tehničnimi rešitvami AerynOS lahko izpostavimo:

  • Uporaba orodja LLVM namesto GNU, z uporabo libc++ in compiler-rt privzeto. Razvijalci pojasnjujejo to odločitev ne samo kot preferenco LLVM, ampak kot strateško izbiro za zagotavljanje boljše diagnostike, natančnosti in prenosljivosti paketov. Sistem pri tem uporablja glibc namesto musl, kar je zavestna izbira v prid združljivosti in zmogljivosti.

    Kot je navedeno v članku: "Prednost glibc pred musl glede zmogljivosti je dobro dokumentirana, še posebej za računsko intenzivne delovne obremenitve in aplikacije, ki zahtevajo optimalno zmogljivost večnitnosti." Ustvarjalci poudarjajo, da je njihov cilj zgraditi delujoč in uporaben sistem za številne scenarije uporabe.

  • Koncept "statelessness" (brez ohranjanja stanja) — paketom je prepovedano vsebovati kakršne koli datoteke zunaj mape /usr. Kot pojasnjujejo razvijalci, ta pristop zagotavlja razumne privzete vrednosti na vseh ravneh in odpravlja "grozne konflikte tridelnim združitvam pri posodabljanju paketov". Konflikti ne obstajajo, ker vse v /etc in /var pripada uporabniku, medtem ko je /usr izključno za sistem. Koncept je bil razvit v času Clear Linux in Solus, v AerynOS pa je dobil nadaljnji razvoj.
  • Atomska ažuriranja — svaka transakcija moss je atomska. Sistem brzo stvara novo stablo /usr koristeći čvrste linkove iz deduplikovanog keša. Nakon uspješnog stvaranja i pripreme, novo stablo se atomskim putem zamjenjuje. Stvarno pripremljena transakcija razmijenjuje se s realnim katalogom /usr koristeći renameat2 s oznakom RENAME_EXCHANGE. Ažuriranje se vrši u potpunosti ili se ne vrši uopšte, bez međustanja.
  • Upravljanje pokretanjem zasnovano na projektima blsforme i disks-rs. Osobina pristupa je ta da sistem dinamički formira parametre za komandnu liniju jezgra, čitajući superblokove uređaja korijenskog fajlskog sistema, tako da u AerynOS-u ne postoji konfiguracijska datoteka koja sadrži parametar "root=“. Osim toga, identifikator transakcije moss kodira se u komandnoj liniji jezgra i obrađuje tokom ranog pokretanja u initramfs-u. "Ukratko, to znači da je svako jezgro pravilno sinhronizovano s odgovarajućim korijenskim fajlskim sistemom, a vraćanje je jeftino, jednostavno i dostupno direktno iz menija za pokretanje," objašnjavaju programeri. Još jedna prednost je odsustvo /etc/default/grub, a ako se ESP obriše, moss ga može obnoviti od nule.
  • Format paketa .stone — sopstveni binarni format paketa s verzionim headerom za osiguranje budućih izmjena. Svaki paket .stone sadrži četiri specifična tipa podataka (payload), od kojih svaki može evoluirati nezavisno zahvaljujući verzioniranju:
    • Sadržajna opterećenja (Content payload) — sekvencijalna blok deduplikovanih podataka, tj. samo sadržaj fajlova paketa.
    • Indeksno opterećenje (Index payload) — sadrži pomake za sadržajnu opterećenja, indeksirane prema hešu XXH128 sadržaja (planira se prelazak na Blake3). To omogućava efikasno pronalaženje i izvlačenje podataka.
    • Opterećenje rasporeda (Layout payload) — opisuje predviđeni raspored fajlskog sistema pri primjeni paketa, tj. gdje i koje fajlove treba instalirati.
    • Metapodaci (Metadata payload) — sekvencijalna serija strogo tipiziranih, označenih zapisa metapodataka, kao što su ime paketa, pružene mogućnosti itd.

Stiskanje vseh obremenitev poteka z uporabo Zstd, kar zagotavlja odlično zmogljivost razpakiranja ob hkratnem ohranjanju dobrega koeficienta stiskanja. Proces 'namestitve' .stone se drastično razlikuje od drugih sistemov. Namesto neposredne namestitve datotek se paket predpomni, vsebina pa se prepleta v skupno skladišče z naslavljanjem po vsebini (CAS). Metapodatki in informacije o zasnovi se shranjujejo ločeno in se uporabljajo pri ustvarjanju transakcije. Ta pristop zagotavlja atomsko posodabljanje in možnost povrnitve, saj vsaka transakcija ustvari novo korensko particijo in ne spreminja obstoječe.

Razvijalci opažajo, da trenutni pristop z emulacijo imperativnega upravljanja paketov 'popolnoma ni smiseln' in 'dejansko uvaja več napak, kot jih rešuje'. Ker vsaka transakcija ustvari novo korensko datotečno sistem, je v prihodnosti predvidena ustanovitev novega grafa za vsako transakcijo, opustitev vgrajenih sprememb v prid deklarativnemu pristopu, podobnem Gentoo ali Nix.

Še eno zanimivo pojasnilo se nanaša na neizmenljivost (immutability). Ustvarjalci opozarjajo, da pogosto AerynOS opisujejo kot neizmenljiv OS, vendar 'to ni povsem pravilno'. Čeprav vsaka transakcija pripelje do novega drevesa /usr in lokalne spremembe niso shranjene, sistem ni neizmenljiv v smislu samo za branje. V prihodnosti je predvidena implementacija prave neizmenljivosti sistema brez potrebe po ponovnem zagonu z uporabo erofs in overlayfs.

Trenutno se AerynOS aktivno razvija, že izdaja ISO slike z okoljem GNOME, primeren je za igre (podpora za gonilnike NVIDIA, Steam, Flatpak), ima prave uporabnike, ki opozarjajo na stabilnost in inovativnost sistema. Po besedah razvijalcev je projekt v fazi alfa in ni brez težav, a že predstavlja celostni sistem, ki 'preprosto deluje'.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster