Die Konzeption des Distributionssystems AerynOS wurde mit BegrĂŒndungen fĂŒr die architektonischen Entscheidungen vorgestellt.

Die Entwickler von AerynOS, frĂŒher bekannt als SerpentOS, haben einen ausfĂŒhrlichen Artikel veröffentlicht, der Details zur Konzeptualisierung und technischen Umsetzung des Projekts sowie die GrĂŒnde fĂŒr die architektonischen Entscheidungen beschreibt. Der Projektleiter Ikey Doherty betont, dass AerynOS nicht nur „ein weiterer Linux-Distrikt“ ist, sondern eine Plattform, ein Fundament und ein Set von Werkzeugen, die auf einer klaren Vision basieren.

Die Grundidee des Projekts wird in Form einer Frage formuliert: „Was wĂ€re, wenn das Betriebssystem sich wie moderne Infrastruktur verhĂ€lt?“. AerynOS wird als Antwort auf diese Frage prĂ€sentiert – ein System, das von Grund auf neu entwickelt wurde und nicht das traditionelle Modell von eingebetteten Mutationen innerhalb eines Distrikts verfolgt. Das Projekt stĂŒtzt sich auf die Erfahrungen der Autoren bei der Entwicklung anderer Distrikte, einschließlich Solus und Clear Linux.

Zu den wichtigsten technischen Entscheidungen von AerynOS gehören:

  • Die Verwendung des LLVM-Toolsets anstelle von GNU, mit der standardmĂ€ĂŸigen Anwendung von libc++ und compiler-rt. Die Entwickler erklĂ€ren diese Entscheidung nicht nur als Vorliebe fĂŒr LLVM, sondern als strategische Wahl zur Verwendung qualitativ hochwertigerer Diagnosen, zur GewĂ€hrleistung der Korrektheit und PortabilitĂ€t der Pakete. Dabei verwendet das System glibc anstelle von musl, eine bewusste Entscheidung zugunsten von KompatibilitĂ€t und Leistung.

    Wie im Artikel angegeben: „Der Vorteil von glibc gegenĂŒber musl in Bezug auf die Leistung ist gut dokumentiert, insbesondere fĂŒr rechenintensive Arbeitslasten und Anwendungen, die auf optimale Multithreading-Leistung angewiesen sind“. Die Entwickler betonen, dass ihr Ziel darin besteht, ein funktionsfĂ€higes, benutzbares System fĂŒr eine Vielzahl von Anwendungsszenarien zu schaffen.

  • Das Konzept der „Statelessness“ (Zustandslosigkeit) verbietet es Paketen, irgendwelche Dateien außerhalb des Verzeichnisses /usr zu enthalten. Wie die Entwickler erlĂ€utern, zwingt dieser Ansatz dazu, an allen Ebenen vernĂŒnftige Standardwerte zu gewĂ€hrleisten und „schreckliche Konflikte beim dreiseitigen Mergen bei der Aktualisierung von Paketen“ zu vermeiden. Konflikte gibt es nicht, weil alles in /etc und /var dem Benutzer gehört, wĂ€hrend /usr ausschließlich dem System gehört. Das Konzept wurde in der Zeit von Clear Linux und Solus entwickelt und fand in AerynOS eine weitere Ausgestaltung.
  • Atomare Updates – jede moss-Transaktion ist atomar. Das System erstellt schnell einen neuen Baum /usr mit Hilfe von Hardlinks aus dem deduplizierten Cache. Nach erfolgreicher Erstellung und Vorbereitung wird der neue Baum atomar ersetzt. Die tatsĂ€chlich vorbereitete Transaktion wird mit dem realen Verzeichnis /usr unter Verwendung von renameat2 mit dem Flag RENAME_EXCHANGE getauscht. Das Update wird entweder vollstĂ€ndig durchgefĂŒhrt oder gar nicht, ohne ZwischenzustĂ€nde.
  • Das management der belastung basiert auf blsforme und disks-rs. Besonderheit des Ansatzes ist, dass das System dynamisch Parameter fĂŒr die Kernel-Befehlszeile erstellt, indem es die Superblöcke der GerĂ€te des Wurzel-Dateisystems ausliest, weshalb es in AerynOS keine Konfigurationsdatei gibt, die den Parameter „root=” enthĂ€lt. DarĂŒber hinaus wird die moss-Transaktions-ID in der Kernel-Befehlszeile kodiert und wĂ€hrend des frĂŒhen Ladevorgangs in initramfs verarbeitet. „Kurz gesagt, das bedeutet, dass jeder Kernel korrekt mit dem entsprechenden Wurzel-Dateisystem synchronisiert ist und ein Rollback kostengĂŒnstig, einfach und direkt aus dem Boot-MenĂŒ möglich ist“, erklĂ€ren die Entwickler. Ein weiterer Vorteil ist das Fehlen von /etc/default/grub, und wenn die ESP gelöscht wird, kann moss sie von Grund auf neu herstellen.
  • .stone-Paketformat – ein proprietĂ€res binĂ€res Paketformat mit einem versionsunabhĂ€ngigen Header zur GewĂ€hrleistung zukĂŒnftiger Änderungen. Jedes .stone-Paket enthĂ€lt vier spezifische Datentypen (Payload), von denen jeder unabhĂ€ngig durch Versionierung erweitert werden kann:
    • Content Payload – ein zusammenhĂ€ngender Block deduplizierter Daten, also der eigentliche Inhalt der Paketdateien.
    • Index Payload – enthĂ€lt Offsets fĂŒr die Content Payload, indexiert nach dem XXH128-Hash des Inhalts (ein Übergang zu Blake3 ist geplant). Dies ermöglicht das effiziente Finden und Abrufen von Daten.
    • Layout Payload – beschreibt das geplante Layout des Dateisystems bei der Anwendung des Pakets, also wo und welche Dateien installiert werden sollen.
    • Metadata Payload – eine Abfolge von streng typisierten, gekennzeichneten Metadaten-EintrĂ€gen wie Paketname, bereitgestellte Funktionen usw.

Die Kompression aller Lasten erfolgt ĂŒber Zstd, was hervorragende Entpackungsleistung bei gleichzeitig gutem KompressionsverhĂ€ltnis gewĂ€hrleistet. Der Prozess der "Installation" .stone unterscheidet sich grundlegend von anderen Systemen. Anstatt Dateien direkt zu installieren, wird das Paket zwischengespeichert, und sein Inhalt wird in einen gemeinsamen Speicher mit adressierungsbasierter Inhaltsadressierung (CAS) integriert. Metadaten und Layoutinformationen werden separat gespeichert und bei der Erstellung von Transaktionen verwendet. Dieser Ansatz gewĂ€hrleistet die AtomaritĂ€t von Updates und die Möglichkeit der RĂŒcksetzung, da jede Transaktion einen neuen Wurzelbereich erstellt, anstatt den bestehenden zu modifizieren.

Entwickler weisen darauf hin, dass der aktuelle Ansatz zur Emulation der imperativen Paketverwaltung "völlig sinnlos" ist und "tatsĂ€chlich mehr Fehler einfĂŒhrt, als er löst". Da fĂŒr jede Transaktion eine neue Root-Dateisystemstruktur erstellt wird, ist in Zukunft geplant, einen neuen Graphen fĂŒr jede Transaktion zu erstellen, auf eingebaute Änderungen zu verzichten und einen deklarativen Ansatz Ă€hnlich wie Gentoo oder Nix zu verfolgen.

Eine weitere interessante ErlĂ€uterung betrifft die UnverĂ€nderlichkeit (Immutability). Die Entwickler stellen fest, dass AerynOS oft als unverĂ€nderliches OS beschrieben wird, aber "das ist nicht ganz richtig". Obwohl jede Transaktion zu einem neuen Baum von /usr fĂŒhrt und lokale Änderungen nicht gespeichert werden, ist das System nicht unverĂ€nderlich im Sinne des Nur-Lese-Zugriffs. In Zukunft wird die Implementierung einer echten UnverĂ€nderlichkeit des Systems ohne Neustart unter Verwendung von erofs und overlayfs angestrebt.

Derzeit wird AerynOS aktiv entwickelt, bietet bereits ISO-Abbilder mit der GNOME-Umgebung, ist spielgeeignet (unterstĂŒtzt NVIDIA-Treiber, Steam, Flatpak) und hat echte Nutzer, die die StabilitĂ€t und Innovationskraft des Systems hervorheben. Laut den Entwicklern befindet sich das Projekt in der Alpha-Phase und hat einige Probleme, ist jedoch bereits ein zusammenhĂ€ngendes System, das "einfach funktioniert".

Quelle: opennet.ru

60GB SSD 8Gb DDR4