4 Punkte von GN⁺ 2024-01-27 | 1 Kommentare | Auf WhatsApp teilen

Oasis ist ein kleines Linux-System

  • Oasis unterscheidet sich deutlich von anderen Linux-basierten Betriebssystemen und ist BSD näher.
  • Die gesamte Software ist statisch gelinkt, wodurch Probleme mit Bibliotheks-Upgrades vermieden werden und vollständig eigenständige Binärdateien entstehen, die sich leicht auf andere Systeme kopieren lassen.
  • Es bietet schnelle Builds und zu 100 % reproduzierbare Builds sowie optimale Build-Zeiten, vorhersehbare und reproduzierbare Builds, geringere Abhängigkeiten zur Build-Zeit und inkrementelle Builds auch über Paketgrenzen hinweg.
  • Es hat minimale Bootstrap-Abhängigkeiten, sodass es sich auch auf Nicht-Linux-Systemen wie macOS oder OpenBSD leicht cross-kompilieren lässt.

Prinzipien

  • Die Komplexität von Software sollte einschließlich aller transitiven Abhängigkeiten gemessen werden.
  • Ausführbare Dateien sollten statisch gelinkt sein.
  • Softwarekomponenten sollten einfache Anpassungen und Modifikationen ermöglichen.
  • Paketquellen sollten per URL oder git-Submodul referenziert und nicht direkt eingebunden werden.
  • /etc sollte so einfach sein, dass es vollständig verstanden werden kann.
  • Patches sollten gut organisiert sein, gute Beschreibungen haben und sich immer sauber anwenden lassen.

Installation

  • Oasis ist ein ambitioniertes Projekt, und es gibt noch viel zu tun.
  • Nutzer sollten damit vertraut sein, ihren eigenen Kernel zu bauen und Systemprobleme zu beheben.
  • Bei Problemen hilft das Projektteam gerne.

QEMU

  • Wenn du Oasis ausprobieren möchtest, ohne es direkt zu installieren, kannst du das QEMU-Image verwenden.
  • Das Archiv enthält das Root-Dateisystem, den Linux-Kernel und ein Skript zum Starten von QEMU.
  • Mit ./run lässt es sich im Grafikmodus starten, mit ./run -s im seriellen Modus.

Software

  • Es werden möglichst einfache und kleine Implementierungen von Bibliotheken und Tools verwendet.
  • musl, sbase, ubase, pigz, mandoc, bearssl, oksh, sdhcp, vis, byacc, perp und sinit, netsurf, samurai, velox und netbsd-curses werden als Alternativen zu glibc, coreutils, util-linux, gzip, man-db, openssl, bash, dhclient/dhcpcd, vim/emacs, bison, sysvinit/systemd, chromium/firefox, ninja, Xorg und ncurses verwendet.
  • Pakete sind in logische Gruppen eingeteilt; die vollständige Liste findest du im Verzeichnis pkg.
  • Wenn bevorzugte Software fehlt, kann sie weiterhin über pkgsrc oder nix installiert werden.

Kontakt

  • Für Fragen, Patches und allgemeine Diskussionen können die Mailingliste (~mcf/oasis@lists.sr.ht) und der IRC-Kanal (#oasis auf libera.chat) genutzt werden.

Meinung von GN⁺

  • Oasis bietet einen anderen Ansatz als bestehende Linux-Systeme und eröffnet Entwicklern mit Eigenschaften wie statischem Linken, schnellen Builds und minimalen Bootstrap-Abhängigkeiten neue Optionen.
  • Das System verfolgt eine Philosophie, die die Komplexität der Softwareentwicklung reduziert und einfache Anpassung und Modifikation betont, und bietet damit eine frische Perspektive auf Prinzipien des Software Engineering.
  • Oasis ist noch in Entwicklung, könnte aber für Nutzer, die technische Herausforderungen mögen und ein tiefes Verständnis des Systems anstreben, eine attraktive Alternative sein.

1 Kommentare

 
GN⁺ 2024-01-27
Hacker-News-Kommentare
  • Über das System selbst lässt sich nicht viel sagen, aber die Interaktion mit der Community über IRC soll sehr freundlich gewesen sein. Es gab Pläne, ein unveränderliches OS-Image zu bauen und als Kubernetes-Knoten auszuführen; mit etwas Hilfe soll das gelungen sein.

  • Statisches Linking deutet darauf hin, dass das Basis-Image und der Laufzeit-Speicher durch mehrere Kopien von Bibliotheken größer werden können. Die Einfachheit von statischem Linking ist schön, scheint aber der Idee zu widersprechen, "Ballast zu reduzieren".

  • Ein Link zu einer früheren Diskussion aus dem August 2022 wurde bereitgestellt.

  • Es wird gefragt, ob jemand weiß, wie groß die Standardinstallation ist. Nirgendwo ließ sich eine Antwort finden, und der Link zum QEMU-Image ist derzeit defekt. Interessant wäre zum Beispiel ein Vergleich mit Alpine bei einem ähnlichen Paket-Set.

  • Es wird nach dem Use Case und nach den Vorteilen des Einsatzes des croc-C-Compilers gefragt. Was sind die Vorteile von croc gegenüber TCC, und es ist interessant, vom Netsurf-Browser zu erfahren. Da jedoch die Duktape-JS-Engine verwendet wird, könnte es Performance-Probleme geben.

  • Es gab einen (gelöschten) Kommentar, der sich darüber beschwerte, dass Github ohne aktiviertes JavaScript nicht zugänglich sei. Das Oasis-Repository wird aber auch auf sourcehut gespiegelt, was akzeptabler sein könnte.

  • michaelforney hat auch den Wayland-Port von st umgesetzt. Der Vorgänger von Oasis ist sta.li.

  • Es wird gefragt, wie groß statische Bibliotheken tatsächlich sind. Dynamische Bibliotheken können zwar Adressraum gemeinsam nutzen, aber bei statischen Bibliotheken kann der Linker ungenutzte Routinen entfernen, sodass es unerwartete Effizienzgewinne geben könnte. Außerdem könnte es schneller sein.

  • Es wird gefragt, wie musl im Vergleich zum traditionellen glibc einzuordnen ist und ob es Performance-Unterschiede zwischen den beiden Bibliotheken gibt. In den Rust- und Zig-Ökosystemen wird musl in letzter Zeit zunehmend verwendet.

  • Positive Einschätzung zu den interessanten Entscheidungen und dazu, dass es sich nicht einfach nur um eine weitere Linux-Distribution handelt.