Das Konzept des AerynOS-Distributions wurde mit einer BegrĂŒndung der architektonischen Entscheidungen vorgestellt.

Die Entwickler von AerynOS, frĂŒher bekannt als SerpentOS, haben einen ausfĂŒhrlichen Artikel veröffentlicht, in dem die Details des Konzepts und der technischen Umsetzung des Projekts mit BegrĂŒndung der getroffenen architektonischen Entscheidungen erlĂ€utert werden. Projektleiter Ikey Doherty betont, dass AerynOS nicht einfach "noch eine Linux-Distribution" ist, sondern eine Plattform, ein Fundament und ein Werkzeugset, das nach einer klaren Vision entwickelt wurde.

Die Hauptidee des Projekts wird in Form einer Frage formuliert: "Was wĂ€re, wenn das Betriebssystem sich wie moderne Infrastruktur verhalten wĂŒrde?" AerynOS wird als Antwort auf diese Frage prĂ€sentiert – ein System, das von Grund auf neu entwickelt wurde und sich nicht an das traditionelle Modell von eingebetteten Mutationen innerhalb einer Distribution hĂ€lt. Das Projekt stĂŒtzt sich auf die Erfahrungen der Autoren in der Entwicklung anderer Distributionen, einschließlich Solus und Clear Linux.

Zu den wichtigsten technischen Entscheidungen von AerynOS gehören:

  • Die Verwendung des LLVM-Tools anstelle von GNU, mit libc++ und compiler-rt als Standard. Die Entwickler begrĂŒnden diese Entscheidung nicht nur mit einer PrĂ€ferenz fĂŒr LLVM, sondern als strategische Wahl, um eine bessere Diagnose, Korrektheit und PortabilitĂ€t der Pakete zu gewĂ€hrleisten. Dabei kommt glibc anstelle von musl zum Einsatz, was eine bewusste Entscheidung zugunsten von KompatibilitĂ€t und Leistung ist.

    Wie im Artikel angegeben: "Der Leistungsunterschied zwischen glibc und musl ist gut dokumentiert, insbesondere fĂŒr rechenintensive Arbeitslasten und Anwendungen, die optimale Multithreading-Leistung erfordern." Die Entwickler betonen, dass es ihr Ziel ist, ein funktionierendes, gebrauchsfĂ€higes System fĂŒr eine Vielzahl von Anwendungsszenarien zu schaffen.

  • Das Konzept der „Statelessness“ (Zustandslosigkeit) verbietet es, dass Pakete irgendwelche Dateien außerhalb des Verzeichnisses /usr enthalten. Wie die Entwickler erklĂ€ren, sorgt dieser Ansatz dafĂŒr, dass auf allen Ebenen angemessene Standardeinstellungen gesetzt werden und „schreckliche Merge-Konflikte beim Aktualisieren von Paketen“ vermieden werden. Es gibt keine Konflikte, weil alles in /etc und /var dem Benutzer gehört, wĂ€hrend /usr ausschließlich dem System gehört. Dieses Konzept wurde in der Zeit von Clear Linux und Solus entwickelt und fand in AerynOS weiterfĂŒhrende Anwendung.
  • Atomare Updates – jede Transaktion von moss ist atomar. Das System erstellt schnell einen neuen Baum fĂŒr /usr unter Verwendung harter Links aus einem deduplizierten Cache. Nach erfolgreicher Erstellung und Vorbereitung wird der neue Baum atomar ersetzt. Die tatsĂ€chlich vorbereitete Transaktion wird mit dem realen Verzeichnis /usr mittels renameat2 mit dem Flag RENAME_EXCHANGE ausgetauscht. Entweder wird das Update vollstĂ€ndig durchgefĂŒhrt oder gar nicht, ohne ZwischenzustĂ€nde.
  • Die projektbasierte Lastverwaltung von blsforme und disks-rs zeichnet sich durch einen dynamischen Ansatz aus, bei dem das System die Parameter fĂŒr die Kernel-Befehlszeile basierend auf den Superblöcken der Root-Dateisysteme erstellt. Daher gibt es in AerynOS keine Konfigurationsdatei, die den Parameter „root=“ enthĂ€lt. DarĂŒber hinaus wird die Transaktions-ID von moss in der Kernel-Befehlszeile kodiert und wĂ€hrend des frĂŒhen Bootvorgangs im initramfs verarbeitet. "Kurz gesagt bedeutet das, dass jeder Kernel korrekt mit dem entsprechenden Root-Dateisystem synchronisiert ist, und ein Rollback einfach, kostengĂŒnstig und direkt ĂŒber das BootmenĂŒ verfĂŒgbar ist", erklĂ€ren die Entwickler. Ein weiterer Vorteil ist das Fehlen von /etc/default/grub; falls die ESP gelöscht wird, kann moss sie von Grund auf wiederherstellen.
  • Das Paketformat .stone ist ein proprietĂ€res binĂ€res Paketformat mit einem versionsunabhĂ€ngigen Header, um zukĂŒnftige Änderungen zu ermöglichen. Jedes .stone-Paket enthĂ€lt vier spezifische Datentypen (Payload), von denen jeder unabhĂ€ngig weiterentwickelt werden kann, dank der Versionierung:
    • Content-Payload — ein zusammenhĂ€ngender Block deduplizierter Daten, das heißt, der eigentliche Inhalt der Paketdateien.
    • Index-Payload — enthĂ€ltOffsets fĂŒr den Content-Payload, die basierend auf dem Hash XXH128 des Inhalts indexiert sind (ein Umstieg auf Blake3 ist geplant). Dies ermöglicht eine effiziente Auffindung und Extraktion von Daten.
    • Layout-Payload — beschreibt das angegebene Layout des Dateisystems bei der Anwendung des Pakets, das heißt, wo und welche Dateien installiert werden sollen.
    • Metadaten-Payload — eine Reihe streng typisierter, gekennzeichneter MetadatensĂ€tze, wie z. B. der Paketname, die bereitgestellten Funktionen usw.

Die Kompression aller Lasten erfolgt durch Zstd, was eine hervorragende Dekompressionsleistung bei gutem KompressionsverhÀltnis gewÀhrleistet. Der "Installations"-Prozess von .stone unterscheidet sich grundlegend von anderen Systemen. Anstatt die Dateien direkt zu installieren, wird das Paket zwischengespeichert, und dessen Inhalt wird in einem gemeinsamen Speicher mit inhaltsadressierter Struktur (CAS) eingewebt. Metadaten und Layoutinformationen werden separat gespeichert und bei der Transaktionsstellung verwendet. Dieser Ansatz gewÀhrleistet die AtomaritÀt der Updates und die Möglichkeit des Rollbacks, da jede Transaktion einen neuen Root-Bereich erstellt, anstatt einen bestehenden zu modifizieren.

Entwickler bemerken, 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 ein neues Root-Dateisystem erstellt wird, wird in Zukunft die Schaffung eines neuen Graphen fĂŒr jede Transaktion angestrebt, um von eingebauten Änderungen zu einem deklarativen Ansatz ĂŒberzugehen, Ă€hnlich dem von Gentoo oder Nix.

Eine weitere interessante Anmerkung betrifft die UnverĂ€nderlichkeit (Immutability). Die Entwickler weisen darauf hin, dass AerynOS oft als unverĂ€nderliches Betriebssystem beschrieben wird, was jedoch "nicht ganz korrekt ist". Obwohl jede Transaktion zu einem neuen Baum /usr fĂŒhrt und lokale Änderungen nicht gespeichert werden, ist das System nicht im Sinne von nur schreibgeschĂŒtzt unverĂ€nderlich. ZukĂŒnftig wird eine echte UnverĂ€nderlichkeit des Systems ohne die Notwendigkeit eines Neustarts mithilfe von erofs und overlayfs realisiert.

Derzeit entwickelt sich AerynOS aktiv weiter, veröffentlicht bereits ISO-Images mit der GNOME-OberflĂ€che, ist fĂŒr Spiele geeignet (unterstĂŒtzt NVIDIA-Treiber, Steam, Flatpak) und hat echte Nutzer, die die StabilitĂ€t und Innovationskraft des Systems loben. Laut den Entwicklern befindet sich das Projekt in der Alpha-Phase und ist nicht ohne Probleme, stellt jedoch bereits ein vollstĂ€ndiges System dar, das "einfach funktioniert".

Quelle: opennet.ru

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster