- Helios ist eine illumos-Distribution, die Oxide Rack antreibt; die Tools und Dokumentation in diesem Top-Level-Repository bündeln mehrere Software-Consolidations und steuern den Build der gesamten Distribution.
- Die Distribution nutzt den stlouis-Branch von illumos-gate als Kern-OS und liefert überwiegend stock-illumos-Pakete mit zusätzlichen Komponenten für Oxide-Hardware sowie einigen Packaging-Anpassungen.
- Nicht alle Komponenten-Repositories sind öffentlich; private Consolidations lassen sich mit
OXIDE_STAFF=no gmake setupvon Clone- und Build-Zielen ausschließen. - Eigene Package-Builds verwenden in einer aktuellen Helios-Umgebung
rustup,gmake setupund das Rust-basiertehelios-build; während der Entwicklung ist ein Quick Build möglich, der den Shadow Compiler und einige Prüfungen deaktiviert. - Build-Ergebnisse können in einer lokalen Boot Environment installiert, per
pkg.depotdauf andere Testsysteme verteilt oder ohne Installation nur als konvertiertes Paket-Repository zur Prüfung erzeugt werden.
Rolle und Aufbau von Helios
- Helios ist eine illumos-Distribution, die Oxide Rack antreibt.
- Die gesamte Distribution besteht aus mehreren Software-Consolidations; die Tools und Dokumentation in diesem Top-Level-Repository steuern den Build.
- Zu den öffentlichen Consolidations gehören:
- boot-image-tools: Tools zum Zusammensetzen von Boot-Images für Oxide-Hardware
- garbage-compactor: Build-Skripte für Pakete außerhalb des Kern-OS
- helios-omicron-brand: Zone Brand für Komponenten von Omicron
- helios-omnios-build: Build-Skripte für Pakete außerhalb des Kern-OS
- helios-omnios-extra: Build-Skripte für Pakete außerhalb des Kern-OS
- illumos-gate stlouis-Branch: Kernbetriebssystem einschließlich Kernel und libc
- phbl: Pico Host Boot Loader
- pinprick: Utility zur Komprimierung von ROM-Images
- illumos/image-builder: Tool zum Erstellen bootfähiger illumos-Disk-Images
- amd-host-image-builder: Tool zum Erstellen von ROM-Images für AMD-CPUs
- Es gibt auch noch nicht veröffentlichte Consolidations:
amd-firmware: binäre Firmware-Blobs für AMD-CPUs, Veröffentlichung geplantchelsio-t6-roms: Firmware-Blobs für Chelsio-T6-NICs, Veröffentlichung geplantpilot: Low-Level-Control-Utility für Oxide-Systeme, Veröffentlichung geplantdmar-report: Generator für DRAM-Margining-Berichte, Veröffentlichung geplant
- Wer keinen Zugriff auf private Repositories der
oxidecomputer-GitHub-Organisation hat, kann mitOXIDE_STAFF=no gmake setupdas Klonen und Bauen noch nicht veröffentlichter Software überspringen.
Startumgebung und Ersteinrichtung
- Das Verfahren richtet sich an Nutzer, die eigene OS-Pakete bauen und installieren wollen; wer Helios nur verwenden möchte, sollte den Ablauf zu vorgebauter Helios-Software in helios-engvm beachten.
- Empfohlener Ausgangspunkt ist eine physische oder virtuelle Build-Maschine mit aktueller Helios-Installation.
- Details zur Installation in virtuellen Maschinen stehen in helios-engvm.
- Informationen zu Installationsmedien für physische x86-Systeme befinden sich im selben Repository.
- Wenn die VM nach dem
helios-engvm-Verfahren erstellt wurde, sollten die benötigten Pakete bereits installiert sein. - Wurde die Helios-Umgebung über den ISO-Installer oder auf anderem Weg erstellt, kann das Paket
pkg:/developer/illumos-toolserforderlich sein.- Ob es installiert ist, lässt sich mit
pkg list developer/illumos-toolsprüfen. - Fehlt es, wird es mit
pkg installinstalliert.
- Ob es installiert ist, lässt sich mit
- Es wird empfohlen, aktuelle Helios-Pakete zu verwenden; nach
pkg updatesind die ausgegebenen Hinweise zu prüfen.- Wenn die Aktualisierung meldet, dass eine neue Boot Environment erstellt wurde, diese per
rebootaktivieren und danach fortfahren.
- Wenn die Aktualisierung meldet, dass eine neue Boot Environment erstellt wurde, diese per
- Rust und Cargo werden über
rustupals offizielle Binaries des Rust-Projekts installiert.- In der offiziellen Installationsprozedur wird statt
shbashverwendet. - Ein Beispielbefehl ist
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash.
- In der offiziellen Installationsprozedur wird statt
Repository-Klonen und helios-build
- Auf einer Helios-Maschine wird das Repository geklont und anschließend
gmake setupausgeführt.- Unter
tools/helios-buildwird das Rust-basierte Tool helios-build gebaut. - Mehrere Repositories werden unter
projects/geklont.
- Unter
- Wer keinen Zugriff auf private Repositories der
oxidecomputer-GitHub-Organisation hat, kann wie folgt nur öffentliche Repositories verwenden:OXIDE_STAFF=no gmake setup
- Das Tool
helios-buildkann beim ersten Build einige Zeit benötigen. - Die Ersteinrichtung klont die erwarteten Projekt-Repositories; spätere Aktionen wie Updates oder Branch-Wechsel werden jedoch nur für einige Repositories ausgeführt.
- Welche Repositories automatisch aktualisiert werden, ist unter
auto_updateinconfig/projects.tomlzu sehen. - Andere lokale Klone müssen wie normale Git-Repositories manuell per Branch-Wechsel und Pull verwaltet werden.
- Welche Repositories automatisch aktualisiert werden, ist unter
Build-Verfahren für illumos
- Die Kern-OS-Komponenten von Helios stammen aus dem stlouis-Branch von illumos-gate.
- Die in Helios enthaltenen Pakete sind überwiegend stock illumos, ergänzt um Oxide-Hardware-spezifische Komponenten und einige kleinere Packaging-Anpassungen.
helios-buildstellt mehrere Wrapper bereit, die Build-Einstellungen verwalten und die illumos-Build-Tools aufrufen, um den illumos-Build zu vereinfachen.- Die Upstream-illumos-Dokumentation zu Building illumos behandelt die meisten Aufgaben, die von den Helios-Tools übernommen werden.
- Während der Entwicklung kann mit folgendem Befehl ein Quick Build durchgeführt werden:
./helios-build build-illumos -q- Der Quick Build deaktiviert den Shadow Compiler und einige Prüfungen, die für die finale Integration erforderlich sind.
- Die Build-Zeit hängt von der CPU-Anzahl der Build-Maschine und der Leistung des lokalen Speichers ab.
- Das vollständige Build-Log ist groß und kann zum Beispiel mit
tail -F projects/illumos/log/nightly.logverfolgt werden. - Bei erfolgreichem Build entsteht unter
projects/illumos/packages/i386ein Paket-Repository, das anschließend auf verschiedene Arten konvertiert und installiert werden kann.
Installation und Verteilung gebauter Pakete
-
Installation auf der lokalen Build-Maschine
- Neu gebaute Pakete lassen sich mit
./helios-build onu -t my-be-nameauf der Build-Maschine installieren. - Dieser Befehl konvertiert und installiert die illumos-Pakete und erstellt eine neue Boot Environment mit dem per
-tübergebenen Namen. - Die neue Boot Environment wird durch
onuaktiviert; der Nutzer bootet neu, um in diese Umgebung zu wechseln. - Informationen zu Boot Environments stehen in beadm(8).
- Beim Neustart sollte man möglichst an der Konsole sein, um Boot-Meldungen zu sehen und mit dem Boot Loader interagieren zu können.
- Nach der Installation lässt sich mit
pkg list -Hv system/kernelprüfen, dass das Paketsystem/kernelvom lokalen dateibasierten Publisheron-nightlyund aus der Quick-Build-Version3.0.999999stammt.
- Neu gebaute Pakete lassen sich mit
-
Installation auf einer anderen Maschine über einen Paket-Repository-Server
- Wenn es neben der Build-Maschine eine separate Testmaschine gibt, kann der Paket-Repository-Server
pkg.depotdder Build-Maschine verwendet werden. ./helios-build onu -Dkonvertiert die Pakete des jüngsten Builds und startet den Paketserver.- Im Beispiel wird unter
0.0.0.0:7891bereitgestellt. - Der Server läuft weiter, bis er per Control-C oder auf andere Weise beendet wird.
- Auf der Zielmaschine wird mit
pkgrepo info -s http://genesis:7891die Verbindung zur Build-Maschine geprüft. - Ein stock-Helios-System hat standardmäßig einen
helios-Publisher, der das zentrale Repositoryhttps://pkg.oxide.computer/helios/3/dev/verwendet. - Auf der Testmaschine wird der Publisher
on-nightlyhinzugefügt und als erstes Suchziel gesetzt; zugleich wird die Sticky-Regel des bestehendenhelios-Publishers gelockert. pkg set-publisher -r -O http://genesis:7891 --search-first on-nightlypkg set-publisher -r --non-sticky helios- Je nach Situation muss vor dem Update möglicherweise das Meta-Paket
entireentfernt werden. - Das kann insbesondere bei Zonen auf Basis der
lipkg-Brand der Fall sein. - Das
onu-Tool von stock illumos erledigt dies automatisch. - Mit
pkg update -nvwird ein Dry Run ausgeführt, um zu prüfen, ob auf die Quick-Build-Pakete aktualisiert wird. - Im Beispiel werden 325 Pakete aktualisiert; außerdem sind das Erstellen und Aktivieren einer neuen Boot Environment sowie der Neuaufbau des Boot Archive erforderlich.
- Die Version wechselt von der stock-Helios-Version auf Basis der Commit-Nummer des stlouis-Branches zur Quick-Build-Version
3.0.999999. - Das eigentliche Update erfolgt mit
pkg update -v; bei Erfolg muss in die neue Boot Environment neu gestartet werden. - Nach dem Neustart bleiben die Publisher-Einstellungen erhalten.
- Danach kann der Ablauf aus neuem Build, Neustart des Paketservers und
pkg update -vauf der Testmaschine wiederholt werden.
- Wenn es neben der Build-Maschine eine separate Testmaschine gibt, kann der Paket-Repository-Server
-
Nur Pakete erzeugen, ohne Installation
./helios-build onu -Pkonvertiert nur die Quick-Build-Ergebnispakete, ohne sie zu installieren.- Das konvertierte Paket-Repository entsteht unter
tmp/onu/repo.redist. - Diese Methode ist nützlich, um den Inhalt des Build-Repositorys zu prüfen.
pkgrepo info -s tmp/onu/repo.redistpkgrepo list -s tmp/onu/repo.redistpkg contents -t file -s tmp/onu/repo.redist '*microcode*'- Paketdateien können auch aufbewahrt werden, um Outputs mehrerer Builds zu vergleichen, sie auf entfernte Systeme zu übertragen oder später zu installieren.
Änderungen und wiederholte Builds
- Systemänderungen sollten in der Regel von einem sauberen Build-Workspace nach einem Quick Build aus begonnen werden.
- Um eine bestimmte Quelldatei zu ändern und eine Komponente erneut zu bauen, wechselt man zunächst mit
bldenvin die Build-Umgebung../helios-build bldenv -q- Eine neue interaktive Shell startet, in der
PATHund andere Variablen korrekt gesetzt sind.
- Im Verzeichnis der Komponente können Befehle wie
dmake -S -m serial installzum Bauen und Installieren ausgeführt werden.- Das Beispiel baut im Verzeichnis
cmd/idden Befehlidund installiert ihn in den Proto-Bereich.
- Das Beispiel baut im Verzeichnis
- Diese gezielte inkrementelle Edit-and-Recompile-Methode eignet sich für kurze Zyklen, um zu prüfen, ob Änderungen kompilieren.
-
Korrekteste, aber langsamere Option
- Das gesamte OS kann erneut gebaut werden.
- Dieses Verfahren ist die einzige Prozedur, die im Rahmen des Möglichen korrekte Ergebnisse gewährleistet.
- Wenn bei inkrementellen Methoden unerklärliche Probleme auftreten, sollte zuerst ein Full Build versucht werden.
- Der Befehl lautet
./helios-build build-illumos -q.
-
Schnelle Option ohne Garantien
- Wenn Binärdateien im Proto-Bereich per
dmake installaktualisiert wurden, können nur die Pakete neu erzeugt und installiert werden, ohne den vollständigen Build auszuführen. - Innerhalb von
bldenvwird nach$SRC/pkggewechselt unddmake installausgeführt. - Anschließend wird entweder der Paket-Repository-Server mit den aktualisierten Paketen gestartet oder die lokale Installation durchgeführt.
- Wenn Binärdateien im Proto-Bereich per
-
Option mit direktem Zugriff auf das Dateisystem
- Ein Betriebssystem besteht letztlich aus Dateien im Dateisystem; daher sind auch Wege außerhalb der Packaging-Tools möglich.
- Geänderte Binärdateien können direkt auf dem Build-System ausgeführt oder per
scpoderrsyncauf ein Testsystem kopiert und dort ausgeführt werden. - Benötigt die Binärdatei Änderungen an Bibliotheken oder am Kernel, funktioniert das möglicherweise nicht.
- Es kann eine neue Boot Environment erstellt und die darin enthaltenen Dateien angepasst werden.
- Eine Boot Environment ist ein separates ZFS-Dateisystem, das geändert, snapshotiert, geklont und gebootet werden kann.
beadm create,beadm mountundbeadm activatekönnen verwendet werden.- Es kann ein komplett neues Disk-Image oder eine Ramdisk erstellt und per VM oder PXE gebootet werden.
- Helios-spezifische Image-Erstellungstools befinden sich in den Image-Tools von helios-engvm.
- Diese Tools können Quick-Build-Pakete oder beliebige zusätzliche Dateien über Änderungen an Image-Templates einbinden.
- Grundlage ist der Upstream-illumos/image-builder.
OS-Image-Archiv
- Beim Bauen von OS-Images für Oxide Compute Sleds wird ein Image-Archiv erzeugt.
- Dieses Archiv enthält das Boot-ROM und das Ramdisk-Image des Root File System.
- Es enthält außerdem Metadaten in JSON-Dateien und verwendet ein Format wie die omicron1-Brand.
- Der Dateiinhalt ist ein committed interface zwischen Helios und Teilen von Omicron, die OS-Images auf physische Systeme des Oxide Rack herunterladen und installieren müssen.
- Die für die Nutzung durch Omicron erforderlichen Dateien umfassen mindestens:
oxide.json: Metadaten-Headerdatei mit mindestens dem Schlüsselv=1und dem Schlüsselt=oszur Identifikation des OS-Imagesimage/rom: 32-MiB-Host-Boot-ROM-Imageimage/zfs.img: Host-Root-File-System-Ramdisk-Image beliebiger Größe
- Es kann zusätzliche Dateien für Engineering- oder Diagnosezwecke geben.
- Beispiele: ein komprimierter Kernel
unix.zfürbldbodernanobl-rs, ein komprimiertes Boot Archivecpio.z - ein Array zusätzlicher ROM-Dateien mit Suffixen, die unterschiedliche Diagnosefunktionen anzeigen
- Beispiele: ein komprimierter Kernel
- Zusätzliche Dateien sind kein committed interface und können sich künftig jederzeit ändern.
- Software, die Image-Archive interpretiert, sollte nicht erkannte Dateien ignorieren.
Lizenz
- Das Copyright liegt bei 2026 Oxide Computer Company.
- Soweit nicht anders angegeben, sind alle Komponenten unter der Mozilla Public License Version 2.0 lizenziert.
1 Kommentare
Meinungen auf Hacker News
Schön, dass das veröffentlicht wurde; ich will es lokal deployen und so viel wie möglich daraus lernen.
Oxide ist, sowohl was den Tech-Stack als auch die Menschen dort angeht, fast so etwas wie ein Traumunternehmen.
Kurz darauf ging der Gedanke aber weiter: „Was macht ein Server-Betriebssystem überhaupt? Reicht es nicht, einfach virtuelle Maschinen zu starten? Braucht man wirklich Linux, oder reicht es, Linux-VMs ausführen zu können?“
In meiner privaten Infrastruktur habe ich ziemlich viel in SmartOS investiert, aber nach der Übernahme von Joyent machte ich mir Sorgen um die Zukunft.
Ich wünschte, ich würde in einer Organisation arbeiten, die groß genug ist, um Oxide-Hardware einzusetzen. Es wäre großartig, nicht mehr an Pseudo-IBM-PC-AT-Kompatibilitätskonstrukten, holprigen BMCs und iDRACs oder Hardware-RAID-Controllern herumfummeln zu müssen.
Von außen wirkt es ähnlich wie Sun, und genau von so einem Unternehmen habe ich immer geträumt.
Allerdings kann ich mir das mit Familie, für die ich sorgen muss, wegen der Gehaltsstruktur nicht leisten. Vielleicht kann ich mir diesen Traum erfüllen, wenn mein Kind mit dem Studium fertig ist und ich kein so hohes Einkommen mehr brauche.
Kann mir jemand erklären, was Oxide anbietet, als wäre ich fünf? Auf der Website bekomme ich kein Gefühl dafür.
Ich weiß nicht, ob es Hardware+Software ist, die man kauft und on-premises betreibt, ob es PaaS ist oder ein weiterer Cloud-Anbieter.
Kurz gesagt: Ja. Es ist Hardware+Software, die man kauft und on-premises betreibt.
Der Unterschied zu den meisten bestehenden On-Premises-Cloud-Produkten besteht darin, dass es ein einzelner Anbieter ist, der Hardware und Software so entwickelt, dass sie gut zusammen funktionieren. Die Software soll, soweit möglich, Open Source sein, deshalb gibt es auch solche Ankündigungen.
Die meisten Produkte bündeln Komponenten mehrerer Anbieter und verkaufen im Grunde Integration. Oxide ist der Ansicht, dass dieser Ansatz mehrere Probleme verursacht und dass das eigene Produkt diese löst.
Ein weiterer Punkt ist, dass es nur zwei SKUs gibt: Half Rack und Full Rack. Man kauft nicht in 1U-Einheiten, sondern rackweise.
Wenn man ein ganzes Rack als eine zusammenhängende Einheit entwirft, kann man Dinge tun, die im 1U-Formfaktor nicht möglich sind. Es gibt den Scherz, dass sie ständig über Lüfter reden, aber es stimmt. Weil sie größere Sleds als traditionelle 1U-Server verwenden, können sie größere Lüfter einsetzen und diese mit niedrigerer Drehzahl laufen lassen, was Strom spart.
Das ist eine bewusste Designentscheidung, hat aber auch Nebeneffekte. Dank der niedrigen Drehzahl sind die Server deutlich leiser. Unter den frühen potenziellen Kunden gab es sogar jemanden, der während einer Demo fragte: „Ist das Ding wirklich eingeschaltet?“
Man kauft Server zwar nicht nur wegen der Lautstärke, aber es ist ein interessantes Beispiel dafür, was entsteht, wenn man das Produkt nicht einfach als Integrationsarbeit, sondern als Ganzes neu denkt.
Ich weiß, dass die Leute bei Oxide von Sun kommen, aber gibt es aus Sicht des geschäftlichen Wertversprechens einen echten technischen Vorteil darin, sich für etwas anderes als Linux zu entscheiden?
Ich weiß, in welchen Punkten illumos Linux technisch überlegen ist, aber ich bin mir nicht sicher, ob das für die Kunden, die das kaufen, tatsächlich wichtig ist.
Ich frage mich, ob man damit nicht ein kompliziertes Fass aufmacht, das einen aus ideologischen oder traditionellen Gründen daran hindert, mehr Computer zu verkaufen.
Aus Sicht von jemandem, der Linux-Container-Workloads betreibt, ist die Tatsache, dass das hier im Kern nicht Linux ist, kein Kaufgrund, sondern eher ein Grund, beim Kauf zu zögern. Ich weiß, dass es Linux-Binaries unverändert ausführen kann.
Das ist kein Produktdetail, das dem Kunden gegenüber sichtbar ist, und die meisten werden vermutlich nicht einmal davon wissen.
Was Kunden interessiert, ist, ob das Rack effizient und stabil ist und zu ihren Anforderungen passt. Dass hier illumos statt Linux gewählt wurde, war eine Entscheidung, um diesen Nutzen effektiv bereitzustellen.
Natürlich heißt das nicht, dass man ein ähnliches Produkt nicht auf Linux aufbauen könnte; wir sind nur zu dem Schluss gekommen, dass illumos für den Zweck besser passt.
Diese Entscheidung haben wir im Team in Form eines RFD[1] getroffen; es trägt zwar die Nummer #26, ist derzeit aber nicht öffentlich. Die ernsthaft geprüften Optionen waren KVM unter Linux und bhyve unter illumos, und es ist ein ziemlich langes Dokument.
Am Ende mussten wir uns für einen Weg entscheiden, und wir haben diesen gewählt. Ich entwickle diesen Teil nicht selbst, aber bisher gibt es keinen Grund zu glauben, dass er ein Hindernis gewesen wäre; im Gegenteil, es dürfte eher die richtige Wahl gewesen sein.
Mich würde interessieren, warum der Nicht-Linux-Aspekt ein Kaufhindernis sein sollte. Eine nähere Erklärung wäre hilfreich. Ah, ich habe den Kommentar weiter unten gesehen: https://news.ycombinator.com/item?id=39180814
1: https://rfd.shared.oxide.computer/
Warum wir ein illumos-Derivat statt etwas anderem verwendet haben, wurde in der Q&A[1] zur Auslieferung des ersten Racks ein wenig behandelt, und wir werden es auch in der aufgezeichneten Diskussion[2], die später heute stattfindet, noch einmal erklären.
[0] https://hubris.oxide.computer/
[1] https://www.youtube.com/watch?v=5P5Mk_IggE0&t=2556s
[2] https://mastodon.social/@bcantrill/111840269356297809
Plattform-Engineers verbringen ihre Tage damit, Probleme mit aktuellen Kerneln, Treibern und zentralen Libraries zu beheben, und die eigentliche Anwendung hängt dann davon ab.
Oder man geht den Weg von 99 % der IoT-Anbieter: das Basissystem nie aktualisieren und hoffen, dass es keine aktiven Exploits gibt, die genau darauf abzielen.
Deshalb haben viele mittelständische Unternehmen dem CentOS-Problem hinterhergetrauert. Denn ohne für eine vollständige RHEL-Installation zahlen zu müssen, konnten sie auf einer relativ stabilen Plattform bleiben und trotzdem Sicherheitsupdates erhalten.
Etwa alle zehn Jahre musste man zwar alle Abhängigkeiten neu bewerten, aber das ist viel einfacher, als einem Update-Zyklus von ein bis zwei Jahren zu folgen. Bei manchen Systemen dauert allein die Validierung mehr als sechs Monate, dafür ist dieser Zyklus zu kurz.
Das ist fast schon ein Linux-spezifisches Problem; Alternativen wie *BSD bieten das meiste von dem, was Linux bietet, verursachen aber deutlich weniger dieser ständigen Brüche.
Es ist schwer, sich bessere Leute vorzustellen, um die Oxide-Systeme zusammenzuführen.
Heute bin ich ein Engineer, der nur mit Linux arbeitet, aber ich vermisse die Zeit, als es noch ein weiteres starkes Unix gab, auf dem man hochwertige Workloads betreiben konnte.
Wenn man Linux’ openvswitch mit den Crossbow-SDN-Funktionen von Solaris vergleicht, würde ich jederzeit Crossbow wählen.
Das heißt nicht, dass Linux falsch wäre, aber die Tools gehen jeweils ihren eigenen Weg und erzeugen Komplexität, die man dann mit noch komplexeren Tools wieder abstrahieren muss; es fehlt deutlich an Kohärenz auf der Ebene eines „Masterplans“.
Das unterscheidet sich nicht wesentlich von Dingen wie Azure Host OS, Bottlerocket oder Flatcar.
Wichtig ist, dass sie den gesamten Stack kennen, Teile des Kernel-Codes seit Sun-Zeiten selbst besitzen und ihn Kunden, die wegen Sicherheitsbewertungen Zugriff auf den Source Code wünschen, offenlegen können.
Ich kenne mich mit illumos nicht gut aus und habe mir die Webseite angesehen; gleich am Anfang steht dort: „illumos is a Unix operating system“.
Ist illumos wie macOS ein echtes Unix, oder eher ein Unix-artiges Betriebssystem wie GNU/Linux?
Es basiert auf OpenSolaris, und OpenSolaris basiert auf System V Release 4 (SVR4) und der Berkeley Software Distribution (BSD). Illumos besteht aus dem Kernel, Gerätetreibern, Systembibliotheken und Utility-Software für die Systemverwaltung. Dieser Kern bildet die Grundlage für mehrere Open-Source-Illumos-Distributionen, ähnlich wie der Linux-Kernel die Grundlage für verschiedene Linux-Distributionen bildet.
https://www.opengroup.org/openbrand/register/
Deshalb darf die Marke UNIX™ nicht verwendet werden.
Im Inneren stecken aber Kernel- und Userspace-Quellen von AT&T Unix.
PDP-11 Unix System III: https://www.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/ut...
IllumOS: https://github.com/illumos/illumos-gate/blob/b8169dedfa435c0...
Ich will Oxide nicht schlechtreden, aber das Produkt ist noch so nischenhaft und in einem so frühen Stadium, dass ich mir kaum vorstellen kann, dass echte Unternehmen es in nächster Zeit kaufen werden.
Erst Ende letzten Sommers haben sie das erste Rack an den ersten Kunden ausgeliefert, und dieser Kunde war das Idaho National Laboratory.
Im Moment wirken staatliche Forschungseinrichtungen im Grunde wie die einzigen Orte, die so eine Wette eingehen können.
Zu den Oxide-Kunden gehören das Idaho National Laboratory und eine globale Finanzdienstleistungsorganisation. Weitere Installationen bei Fortune-1000-Unternehmen sollen in den kommenden Monaten abgeschlossen werden.
Wenn man plant, auf andere Weise zu launchen, hat man das Unternehmen schon vor dem Launch ruiniert. Einige wenige überleben mit Glück, aber genau das trägt zu der Statistik bei, dass 9 von 10 Startups scheitern.
Man muss sich extrem auf die ersten Kundengruppen konzentrieren, um den Chasm zu überwinden; danach kommt der Massenmarkt.
Leute könnten damit lernen oder Startups es ausprobieren, was später zu Rack-Verkäufen oder Einstellungen führen könnte.
Das Angebot zieht sogar bei Leuten, die immer noch denken: „On-Premises … igitt“.
Es scheint eine Cloud-ähnliche Erfahrung auf eigener Hardware zu bieten.
Wenn es nur so günstig wie Dell gewesen wäre.
Das einzige Problem war, dass es für General-Purpose-Compute gebaut ist, während wir wirklich Optionen mit schnelleren Prozessoren gebraucht hätten.
Mir gefällt wirklich, dass die Dokumentation klar und intuitiv wirkt. Persönlich denke ich, dass Dokumentation historisch ein Bereich war, mit dem die illumos-Community zu kämpfen hatte.
In einem neuen Source-Release von consolidations zu lesen, fühlt sich schön vertraut an. Allerdings scheint es, sofern ich die Repository-Struktur nicht grob missverstehe, in eine andere Richtung zu gehen als das traditionelle Gate-Paradigma.
Ich habe ein paar Fragen, vor allem zu den Tools. Warum gmake? dmake scheint später ohnehin nötig zu sein.
In der Anleitung wird ausdrücklich gesagt, dass rustup mit bash ausgeführt werden soll; ist das ein Upstream-Defekt, oder ist das lokale sh nicht vollständig POSIX-kompatibel?
Wie läuft die interne Entwicklung ab? Verwenden die Oxide-Leute illumos-Workstations, oder entwickeln alle in virtuellen Maschinen beziehungsweise per SSH auf Servern?
Warum MPL? Wegen GPL-Kompatibilität?
Dazu, ob Oxide-Leute illumos-Workstations verwenden oder in VMs bzw. per SSH auf Servern entwickeln, habe ich hier etwas geschrieben: https://news.ycombinator.com/item?id=39181727
Es gibt allerdings tatsächlich Leute, die illumos auf Workstations nutzen.
Zur MPL steht hier etwas: https://news.ycombinator.com/item?id=39181844
In diesem Kommentar bin ich auf das „Warum“ nicht ausführlich eingegangen, aber ich sehe sie als guten Kompromiss im Möglichkeitsraum: stärker copyleft-orientiert als BSD, aber weniger restriktiv als die GPL.
Wie die meisten Open-Source-Projekte gibt es auch dort Linuxisms/Bashisms.
Es ist breit verfügbar, funktioniert auch auf anderen Plattformen und hat modernere Funktionen.
Dass die Software Open Source ist, ist großartig, aber kann man sie auf anderer Hardware deployen und nutzen?
Wenn ein Unternehmen aus irgendeinem Grund keine Oxide-Racks mehr kaufen kann: Muss es seine Infrastruktur von Grund auf neu aufbauen, oder kann es weiter rund um Oxide-Hardware skalieren?
Wenn man sich entscheidet, ein gekauftes Oxide-Rack nicht mehr zu nutzen, kann man die virtuellen Maschinen auf die anschließend gewählte Infrastruktur verschieben.
Ich bin wirklich neugierig, welche Workloads Unternehmen auf einem Custom Unix ausführen wollen, das nicht Linux/Mac/BSD ist.
Ich begrüße es, wenn eine ausgereiftere Betriebssystemvielfalt entsteht, aber ich habe kein Gefühl dafür, wer die Endnutzer sind und welche Anforderungen sie haben.
Wenn es nötig ist, dürfte sich wohl auch Windows Server booten lassen.
Dass Illumos verwendet wird, liegt auch daran, dass viele Leute von Sun, Joyent usw. kommen und es daher eine natürliche Voreingenommenheit gibt.
Aber es gibt auch einen ziemlich überzeugenden Grund: Das ist kein IBM-kompatibler x86-PC. Es gibt kein BIOS, kein UEFI und kein traditionelles BMC; trotz moderner x86-Hardware scheint man proprietäre Firmware und binäre Blobs so weit wie möglich entfernt zu haben.
Jeder Sled hat einen Service-Prozessor und eine Hardware Root of Trust; diese booten die CPU direkt, laden den AMD-Training-Blob und starten danach das Betriebssystem.
Solche Änderungen für einen Computer, den derzeit nur sie haben, in Linux oder BSD upstream zu bekommen, wäre wohl schwierig. Am Ende müsste man einen eigenen Downstream-Fork pflegen, und wenn es ohnehin niemanden sonst gibt, der Verantwortung für die Robustheit des Betriebssystems übernimmt, ist die Entscheidung naheliegend, das Betriebssystem zu nutzen, das man seit Jahren unterstützt und weiterentwickelt.
Kunden führen virtuelle Maschinen auf dem Rack aus, sie bauen keine Anwendungen für illumos.
In diesen virtuellen Maschinen läuft dann das Betriebssystem, das sie zum Erreichen ihrer Ziele brauchen.
Wenn man genug Leute einstellen kann, ist auch das Argument überzeugend, dass die Server einer Cloud nicht zwingend alle dasselbe Betriebssystem haben müssen.
Man führt seinen Code nicht auf diesem Betriebssystem aus, sondern auf virtuellen Maschinen, die dieses Betriebssystem bereitstellt.
Ich frage mich, wie ihr ursprünglich auf Oxide aufmerksam geworden seid.
Ich bin irgendwie bei ihrem Podcast gelandet, und für mich wirkt das wie enormes Marketing. Sie machen alles, außer das Produkt direkt zu verkaufen.
Ein kurzer Pitch am Ende jeder Episode könnte auch gut sein.
Sie erzählen etwa: „Es war wirklich schwierig, den Compiler dazu zu bringen, etwas zu tun“, und schweifen dann in alte Geschichten ab.
Trotzdem hoffe ich, dass sie weiter erzählen, und wünsche ihnen Erfolg.
Oxide and Friends dagegen ist weniger ein klassischer Podcast als vielmehr die Aufnahme eines Live-„Spaces“ oder Gruppenanrufs, der auf Twitter begann und heute auf Discord stattfindet.
Meiner Meinung nach funktioniert das Format am besten, wenn man live teilnimmt, statt es nur als Podcast zu hören. Wenn man live dabei ist, versteht man die Stimmung der Aufnahme viel besser.
https://oxide.computer/podcasts/oxide-and-friends
Darauf habe ich mich gefreut, seit sie das Server-Rack angekündigt haben.
Wenn Oxide scheitert, will schließlich niemand Geräte haben, die zu Briefbeschwerern geworden sind.
Man sollte im Hinterkopf behalten, dass es bei der MPL nicht darauf ankommt, ob eine Kopie öffentlich auf GitHub liegt.
Ich bin kein Anwalt, aber gegenüber Kunden bestehen nach der MPL Verpflichtungen, unabhängig davon, ob Nichtkunden den Code einsehen können.