Zhvilluesit e AerynOS, të njohur më parë si SerpentOS, publikuan një artikull të hollësishëm ku zbulojnë detajet e konceptit dhe realizimit teknike të projektit, me arsyetimin e vendimeve arkitektonike të marra. Kreu i projektit, Ikey Doherty, thekson se AerynOS nuk është thjesht "një tjetër shpërndarje Linux", por një platformë, themel dhe një grup mjetesh të krijuara sipas një vizioni të qartë.
Ideja kryesore e projektit është formuluar si një pyetje: "Çfarë nëse sistemi operativ do të sillet si një infrastrukturë moderne?" AerynOS është paraqitur si përgjigjja ndaj kësaj pyetjeje — një sistem i ndërtuar nga zero, dhe jo duke ndjekur modelin tradicional të mutacioneve të ndërtuara brenda një shpërndarjeje. Projekti mbështetet në përvojën e autorëve në zhvillimin e shpërndarjeve të tjera, duke përfshirë Solus dhe Clear Linux.
Disa nga zgjidhjet teknike kryesore të AerynOS përfshijnë:
- Përdorimi i instrumentariumit LLVM në vend të GNU, me përdorimin e libc++ dhe compiler-rt si parazgjedhje. Zhvilluesit e shpjegojnë këtë vendim jo thjesht si një preferencë për LLVM, por si një zgjedhje strategjike për të përdorur një diagnostikë më të kualifikuar, duke siguruar saktësi dhe portabilitet të paketave. Në të njëjtën kohë, sistemi përdor glibc në vend të musl, që është një zgjedhje e vetëdijshme për shkak të përputhshmërisë dhe performancës.
Siç theksohet në artikull: "Avantazhi i glibc mbi musl në performancë është dokumentuar mirë, sidomos për ngarkesa pune intensive në llogaritje dhe aplikacione që kërkojnë performancë optimale të shumëproceseve". Krijuesit theksojnë se qëllimi i tyre është ndërtimi i një sistemi funksional dhe të përdorshëm për shumë skenarë aplikimi.
- Koncepcioni i "statelessness" (pa ruajtje gjendjeje) — pakot ndalohen të përmbajnë ndonjë skedar jashtë katalogut /usr. Siç shpjegojnë zhvilluesit, ky qasje detyron që të sigurohen vlera të arsyeshme parazgjedhje në të gjitha nivelet dhe eleminon "konfliktet e tmerrshme të bashkimit trepalësh gjatë përditësimit të pakove". Nuk ka konflikte, sepse gjithçka në /etc dhe /var i përket përdoruesit, ndërsa /usr është ekskluzivisht për sistemin. Ky koncept është zhvilluar në kohën e Clear Linux dhe Solus, dhe në AerynOS ai mori zhvillim të mëtejshëm.
- Azhet e atomike - çdo transaksion moss është atomik. Sistemi krijon shpejt një pemë të re "/usr" duke përdorur lidhje të forta nga cache-a e deduplication. Pas krijimit dhe përgatitjes së suksesshme, pemë e re zëvendësohet në mënyrë atomike. Transaksioni i përgatitur shkëmbehet me katalogun real "/usr" duke përdorur renameat2 me flamurin RENAME_EXCHANGE. Përditësimi ose kryhet plotësisht, ose nuk kryhet fare, pa gjendje ndërmjetëse.
- Menaxhimi i ngarkesës është i bazuar në projektet blsforme dhe disks-rs. Karakteristika e qasjes është se sistemi formon dinamikisht parametrat për komandën e linjës së bërthamës, duke lexuar superbloket e pajisjeve të sistemit të skedarëve rrënjësor, prandaj në AerynOS nuk ka skedë konfigurimi që përmban parametër "root= ". Më tepër, identifikuesi i transaksionit moss kodifikohet në komandën e bërthamës dhe përpunohet gjatë ngarkesës fillestare në initramfs. "Nëse flasim shkurt, kjo nënkupton se çdo bërthamë është e sinkronizuar saktësisht me sistemin përkatës të skedarëve rrënjësor, dhe rikthimi është i lirë, i lehtë dhe i aksesueshëm direkt nga menuja e ngarkesës", shpjegojnë zhvilluesit. Një tjetër avantazh është mungesa e "/etc/default/grub", dhe nëse ESP fshihet, moss mund ta rikthejë nga zero.
- Formati i pakove .stone është formati ynë binar i pakove me një kokë për konsumatorin që është e paaftë për versionin, për të mundësuar ndryshime të ardhshme. Çdo paketë .stone përmban katër lloje specifike të të dhënave (payload), nga të cilat secila mund të zhvillohet në mënyrë të pavarur për shkak të versionimit:
- Ngarkesa e përmbajtjes (Content payload) - një bllok i vazhdueshëm i të dhënave të deduplication, pra vetë përmbajtja e skedave të paketës.
- Ngarkesa e indekseve (Index payload) - përmban offsetet për ngarkesën e përmbajtjes, të indeksuara sipas hashit XXH128 të përmbajtjes (planifikohet kalimi në Blake3). Kjo lejon gjetjen dhe nxjerrjen efikase të të dhënave.
- Ngarkesa e skemës (Layout payload) - përshkruan skemën e supozuar të sistemit të skedarëve kur aplikohen paketat, pra ku dhe cilat skeda duhet të instalohen.
- Metadatot (Metadata payload) - një sekuencë e regjistrave të metadatuar me tipi të ngurtë, të markuar, si emri i paketës, funksionet e ofruara etj.
Të gjitha ngarkesat kompresohen me Zstd, i cili ofron performancë të shkëlqyer të shfletimit duke ruajtur një koeficient të mirë kompresimi. Procesi i "instalimit" .stone ndodhet në një qasje radikalisht tjetër nga sistemet e tjera. Në vend të instalimit të drejtpërdrejtë të skedarëve, paketa ruhet në cache dhe përmbajtja e saj endërron në një depo të përgjithshme me adresim të bazuar në përmbajtje (CAS). Metadat dhe informacioni mbi strukturën mbahen veç e veç dhe përdoren gjatë krijimit të transaksionit. Ky qasje garanton atomikën e përditësimeve dhe mundësinë e rikthimit, pasi çdo transaksion krijon një ndarje të re rrënjësore, dhe nuk modifikon ekzistuesen.
Zhvilluesit theksojnë se qasja aktuale me emulimin e menaxhimit imperativ të pakove është "krejtësisht e paarsyeshme" dhe "faktikisht sjell më shumë gabime sesa zgjidhje". Duke qenë se çdo transaksion krijon një sistem skedarësh të ri rrënjor, në të ardhmen planifikohet krijimi i një grafi të ri për çdo transaksion, ndërprerja e ndryshimeve të ndërtuara në favor të një qasjeje deklarative, të ngjashme me Gentoo ose Nix.
Një shpjegim tjetër interesant ka të bëjë me paprekshmërinë (immutability). Krijuesit theksojnë se shpesh AerynOS përshkruhet si një OS e paprekshme, por "kjo nuk është plotësisht e saktë". Ndërsa çdo transaksion çon në një pemë të re /usr dhe ndryshimet lokale nuk ruhen, sistemi nuk është i paprekshëm në kuptimin e aksesit vetëm për lexim. Në të ardhmen, planifikohet implementimi i një paprekshmërie të vërtetë të sistemit pa nevojën për rihapje duke përdorur erofs dhe overlayfs.
Aktualisht, AerynOS është në zhvillim aktiv, tashmë lëshon imazhe ISO me mjedisin GNOME, është i përshtatshëm për lojëra (mbështetje për drejtuesit NVIDIA, Steam, Flatpak), ka përdorues të vërtetë që vërejnë stabilitetin dhe novatoritetin e sistemit. Sipas zhvilluesve, projekti është në fazën alfa dhe nuk është pa probleme, por tashmë përbën një sistem të plotë që "thjesht funksionon".
Burimi: opennet.ru
