Solaris und illumos: Wie der Fork überlebte
Sun entwickelte ZFS und DTrace in Solaris und veroeffentlichte den Quellcode. Oracle stoppte dies 2010. illumos haelt den offenen Zweig bis heute am Leben.
Was Solaris und illumos sind
Solaris und illumos sind zwei Zweige desselben Unix-Quellbaums. Sun Microsystems entwickelte Solaris und veröffentlichte 2005 den größten Teil seines Quellcodes. Oracle kaufte Sun 2010 und stellte die Veröffentlichung dieses Quellcodes ein. Deshalb führten Entwickler außerhalb von Oracle den offenen Code unter einem neuen Namen weiter: illumos. Das Betriebssystem selbst ist 2026 ein Nischenprodukt. Die darin entwickelte Storage-Schicht und das darin enthaltene Tracing-Tool sind es nicht. Deshalb lohnt sich diese Geschichte.
Wenn Sie ZFS unter Linux oder FreeBSD betreiben, verwenden Sie Code, der bei Sun für Solaris geschrieben wurde und das Unternehmen, die Produktlinie und den Lizenzstreit überlebt hat. Dieser Beitrag beschreibt, wie es dazu kam. Die Datumsangaben wurden überprüft.
Die Herkunft von Solaris: BSD, System V und SVR4
Sun Microsystems wurde am 24. Februar 1982 von Scott McNealy, Andy Bechtolsheim, Vinod Khosla und Bill Joy gegründet. Das Betriebssystem SunOS wurde von BSD (Berkeley Software Distribution) abgeleitet, der Unix-Linie aus Berkeley, an der Bill Joy bereits vor der Gründung von Sun gearbeitet hatte. Die andere Unix-Linie war das kommerziell vertriebene System V von AT&T. Diese beiden Zweige bilden die Trennung, die in dem Unix-Stammbaum, der mit Linux endet beschrieben wird. Sun gehörte ein Jahrzehnt lang zur BSD-Seite dieser Trennung.
1987 kündigten Sun und AT&T ein gemeinsames Projekt an, das BSD, System V und Xenix zu einem Release zusammenführen sollte: UNIX System V Release 4, üblicherweise SVR4 genannt. Am 4. September 1991 kündigte Sun an, dass SunOS 4 durch ein von SVR4 abgeleitetes System mit einem neuen Marketingnamen ersetzt werden sollte: Solaris 2. Solaris 2.0 wurde im Juni 1992 veröffentlicht, zunächst ausschließlich für SPARC-Hardware. Sun hatte die Seite der Unix-Trennung gewechselt, und seine Kunden mussten ihre Software portieren.
Der alte Name verschwand jedoch nie vollständig. Der Kernel behielt die SunOS-Nummerierung bei. Daher lief Solaris 2.6 unter SunOS 5.6, und Oracle Solaris 11.4 weist sich weiterhin als SunOS 5.11 aus. Führen Sie uname -a auf einem illumos-System im Jahr 2026 aus, lautet das erste ausgegebene Wort weiterhin SunOS, weil illumos den Namen zusammen mit dem Code übernommen hat.
Was Solaris 10 im Jahr 2005 einführte
Solaris 10 wurde am 31. Januar 2005 veröffentlicht. Die Version ist hier relevant, weil alles, was das Unternehmen überlebte, in dieser Version enthalten war oder mit einem ihrer Updates hinzukam.
DTrace wurde bei Sun von Bryan Cantrill, Mike Shapiro und Adam Leventhal entwickelt und war erstmals im November 2003 verfügbar. Es instrumentiert einen laufenden Kernel und laufende Benutzerprozesse, ohne etwas neu zu kompilieren und ohne den überwachten Prozess neu zu starten. Eine nicht aktivierte Probe verursacht keinen Aufwand, weil die Instrumentierung erst dann eingepatcht wird, wenn ein Skript sie anfordert. Deshalb setzten Administratoren DTrace auch auf Produktionssystemen ein. DTrace erhielt den Hauptpreis bei den Technology Innovation Awards 2006 des Wall Street Journal sowie 2008 einen USENIX-STUG-Award (Software Tools User Group).
ZFS wurde bei Sun von Jeff Bonwick, Bill Moore und Matthew Ahrens entwickelt und am 14. September 2004 angekündigt. Es führte Volume Manager und Dateisystem in einer Ebene zusammen. Dadurch kann ZFS beim Lesen jeden Block per Prüfsumme prüfen und einen fehlerhaften Block aus einer redundanten Kopie reparieren. Schreibvorgänge verwenden Copy-on-Write: Ein Block wird nie direkt überschrieben. Deshalb bleiben bei einem Absturz während eines Schreibvorgangs die alten Daten intakt, statt ein teilweise geschriebenes Dateisystem zu hinterlassen. Snapshots verursachen nahezu keinen zusätzlichen Aufwand, weil ein Snapshot einfach aus den Blöcken besteht, die spätere Schreibvorgänge nicht verändert haben. ZFS war nicht in der ursprünglichen Solaris-10-Version enthalten. Es wurde mit dem Update Solaris 10 6/06 im Juni 2006 veröffentlicht.
Zones waren das dritte Element. Eine Zone stellt einem Kernel mehrere isolierte Benutzerbereiche bereit. Jeder Bereich verfügt über ein eigenes Root-Dateisystem, eine eigene Prozesstabelle und eine eigene Netzwerkkonfiguration. Zones erschienen im Februar 2004 in einem Solaris-10-Betabuild und wurden mit der vollständigen Version veröffentlicht. FreeBSD hatte dasselbe Konzept aus einer anderen Richtung bereits früher umgesetzt. Der Vergleich zwischen Jails und Docker-Containern ist weiterhin die klarste Möglichkeit, die tatsächliche Isolation auf Kernel-Ebene zu verstehen. Zones sind heute in illumos weiterhin verfügbar und bilden die Grundlage für mindestens eine der folgenden Distributionen.
Warum Sun den Solaris-Quellcode veröffentlichte
Sun reichte die CDDL (Common Development and Distribution License) am 1. Dezember 2004 bei der OSI (Open Source Initiative) ein. Die OSI genehmigte sie am 14. Januar 2005. Die CDDL basiert auf Version 1.1 der MPL (Mozilla Public License). Ihr Copyleft gilt auf Ebene der einzelnen Datei: Eine CDDL-Quelldatei muss unter der CDDL bleiben. Die daraus erstellte Binärdatei kann jedoch mit Code unter anderen Lizenzbedingungen kombiniert werden.
DTrace wurde zuerst veröffentlicht. Der Quellcode erschien am 25. Januar 2005 unter der CDDL auf der neu gestarteten Website opensolaris.org. Das war sechs Tage vor der Veröffentlichung von Solaris 10. Der größte Teil des Solaris-Systemcodes folgte am 14. Juni 2005. ZFS wurde am 31. Oktober 2005 in den zentralen Solaris-Entwicklungszweig integriert und erreichte die OpenSolaris-Entwickler in Build 27 am 16. November 2005. OpenSolaris wurde außerdem zu einer installierbaren Distribution: 2008.05 erschien am 5. Mai 2008 als Live-CD. 2009.06 folgte am 1. Juni 2009 mit SPARC-Unterstützung.
Die Lizenzwahl bestimmt weiterhin, was Sie heute ausführen können. Die Free Software Foundation stuft die CDDL als freie Softwarelizenz ein, die mit der GPL (GNU General Public License) inkompatibel ist. Diese Inkompatibilität wurde aus der MPL 1.1 übernommen. Der Linux-Kernel steht unter GPLv2. Deshalb wird ZFS on Linux als Kernelmodul außerhalb des Kernel-Quellbaums gebaut, anstatt in den Kernel integriert zu werden. Aus demselben Grund befindet es sich nicht im Mainline-Kernel. Für den weiteren Verlauf dieser Geschichte ist vor allem die Entscheidung relevant, den Code unter einer Open-Source-Lizenz zu veröffentlichen. Die Geschichte der Open-Source-Lizenzierung erklärt, warum ein Unternehmen diesen Schritt überhaupt gehen würde.
Was geschah, als Oracle Sun kaufte
Oracle kündigte am 20. April 2009 an, Sun für 7,4 Milliarden US-Dollar zu übernehmen. Nach Abzug von Suns liquiden Mitteln und Schulden entsprach dies 5,6 Milliarden US-Dollar. Die Übernahme wurde am 27. Januar 2010 abgeschlossen.
Am 13. August 2010 wurde ein internes Oracle-Memo von Mike Shapiro, Bill Nesheim und Chris Armes innerhalb des Unternehmens verteilt und anschließend veröffentlicht. Darin wurde die neue Richtlinie direkt formuliert: „Wir werden den Quellcode für das gesamte Solaris-Betriebssystem nicht mehr in Echtzeit während der Entwicklung und auf nächtlicher Basis veröffentlichen.“ Weitere Community-Builds wurden ausgeschlossen: „Wir werden keine weiteren Binärdistributionen veröffentlichen, beispielsweise nächtliche oder zweiwöchentliche Builds von Solaris-Binärdateien oder eine OpenSolaris-Distribution 2010.05 oder höher.“ Open-Source-Releases sollten stattdessen den veröffentlichten Produkten folgen: „Wir werden Aktualisierungen von genehmigtem CDDL- oder anderem Open-Source-lizenziertem Code nach vollständigen Releases unseres Enterprise-Solaris-Betriebssystems veröffentlichen.“
Am 23. August 2010 verabschiedete das OpenSolaris Governing Board eine Resolution. Darin wurde festgehalten, dass Oracle keinen Ansprechpartner für das Board benannt und am 13. August das Ende der Entwicklungspartnerschaft angekündigt hatte. Das Board stimmte dafür, die Kontrolle über die Community gemäß der ursprünglich von Sun verfassten Satzung an Oracle zurückzugeben. Dadurch wurde das Board aufgelöst.
Oracle Solaris 11 wurde am 9. November 2011 veröffentlicht. Am 2. September 2017 entließ Oracle den Großteil der Solaris-Teams. Oracle Solaris 11.4 wurde am 28. August 2018 veröffentlicht und ist weiterhin das aktuelle Release. Nach Oracles Richtlinie für den Support auf Lebenszeit läuft der Premier Support für 11.4 bis November 2031 und der Extended Support bis November 2037. Solaris ist daher ein kommerzielles Produkt mit Support und einem veröffentlichten Enddatum. Es basiert auf einem Release, das seit 2018 aktuell ist.
Wie illumos entstand und warum es als Fork bezeichnet wird
Am 3. August 2010, zehn Tage vor dem Leak des Memos, kündigte Garrett D'Amore illumos an. Der Name setzt sich aus illum, dem lateinischen Wort für Licht, und OS für Betriebssystem zusammen. Das Projekt schreibt den Namen als ein Wort und kapitalisiert nur den ersten Buchstaben.
Ziel war OS/Net, meist ON geschrieben: die Zusammenstellung, die den Kernel und die zentralen Systemwerkzeuge enthält. OpenSolaris war nie vollständig offen. Mehrere Komponenten wurden als geschlossene Binärdateien ausgeliefert, die niemand außerhalb von Sun neu bauen konnte. Dazu gehörten der Internationalisierungscode in der C-Bibliothek (libc_i18n), der NFS-Sperrmanager, das kryptografische Framework, Treiber wie der mpt-Treiber für LSI-Hostbusadapter und Teile des SPARC-Plattformcodes. Diese Komponenten zu ersetzen, war die erste Aufgabe des Projekts. Ein Betriebssystem, das sich nicht aus dem Quellcode bauen lässt, kann nicht gewartet werden.
D'Amore verwendete den Begriff Fork vorsichtig. „Wir sind heute kein Fork, weil wir OS/Net auf diese Weise verfolgen“, schrieb er. Er beschrieb damit ein nachgelagertes Repository, das dem Tree von Oracle folgen und Änderungen zurück in das Upstream-Projekt übertragen konnte. Zehn Tage später stellte das Upstream-Projekt die Veröffentlichung ein. illumos wurde dadurch automatisch zu einem Fork, weil es nichts mehr zu verfolgen gab. Der zentrale Tree, illumos-gate, hat mit Stand August 2026 mehr als 23.000 Commits und nimmt weiterhin Commits an.
Welche Distributionen stammen aus illumos
illumos ist nichts, das Sie installieren. Es ist der zentrale Quellbaum, auf dem Distributionen ein nutzbares System aufbauen. Diese Distributionen werden noch veröffentlicht.
- OpenIndiana wurde am 14. September 2010 im JISC Centre in London offiziell gestartet und ist der direkteste Nachfolger der früheren OpenSolaris-Desktop- und Serverdistribution. Es handelt sich um ein Rolling Release mit dem Namen Hipster. Der Snapshot 2026.04 wurde am 5. Mai 2026 veröffentlicht.
- OmniOS ist eine Serverdistribution. Nach der Einstellung der Entwicklung durch den ursprünglichen Anbieter wird sie nun von der Community als OmniOS CE gepflegt.
- SmartOS ist eine auf Zones basierende Hypervisor-Plattform. Joyent entwickelte sie und kündigte im April 2022 an, dass SmartOS und Triton mit Wirkung zum 1. Mai 2022 zu MNX Solutions wechseln.
- NexentaStor verwendete dieselbe Basis für Storage Appliances. Aus dieser kommerziellen Produktlinie ging illumos hervor.
- Tribblix ist eine kleine Distribution, die von Peter Tribble gepflegt wird, wie weiter unten beschrieben.
- DilOS setzt Debians Paketwerkzeuge auf einen illumos-Kernel.
Wie die Installation eines illumos-Systems heute aussieht
Tribblix ist ein geeignetes Beispiel, weil es klein ist, öffentlich dokumentiert wird und weiterhin Releases veröffentlicht. Milestone 41 für x86 wurde am 5 August 2026 veröffentlicht, und die SPARC-Linie erreichte Milestone 34 am 21 April 2026. Das Projekt beschreibt sich selbst als Retro-Stil mit modernen Komponenten. Es verwendet weiterhin das SVR4-Paketformat von Solaris, statt auf ein neueres Paketsystem umzusteigen.
Die Installation läuft von einem Live-Image. Sie booten die ISO, melden sich als Benutzer jack mit dem Passwort jack an, wechseln zu root und führen das Installationsprogramm für ein Festplattengerät aus. Dies ist der Befehl aus der Installationsdokumentation des Projekts:
./live_install.sh -G c1t0d0Das Flag -G schreibt ein EFI- (extensible firmware interface) Partitionslayout. -b wählt stattdessen das alte MBR- (master boot record) Layout. Die Datenträgernamen folgen der Solaris-Konvention cXtYdZ und nicht /dev/sda. Das ist der erste Punkt, der Ihnen aus der Linux-Welt unbekannt vorkommen wird. Software-Sets werden Overlays genannt und können in derselben Zeile angegeben werden:
./live_install.sh -G c1t0d0 develop desktopNach der Installation ist das Paketwerkzeug zap. Es arbeitet mit Overlays, sodass Abhängigkeiten automatisch für Sie behandelt werden:
zap refresh
zap install-overlay develop
zap update-overlay -aDies sind die von Tribblix veröffentlichten Befehle. Sie laufen auf Hardware oder einem von Ihnen kontrollierten Hypervisor. In einem VPS-Control-Panel finden Sie dafür kein Image, das Sie mit einem Klick bereitstellen können. Diese Lücke beschreibt den tatsächlichen Stand der illumos-Bereitstellung im Jahr 2026.
Warum ZFS und DTrace Solaris überlebten
ZFS verließ Solaris fast unmittelbar nach der Veröffentlichung des Quellcodes. Pawel Jakub Dawidek portierte es auf FreeBSD, wo es seit FreeBSD 7.0 im Jahr 2008 Bestandteil des Systems ist. Die native ZFS-Entwicklung für Linux begann 2008 und führte 2013 zur ersten stabilen Veröffentlichung. Zwischen 2010 und 2013 enthielt illumos die Referenzkopie des ZFS-Quellcodes, weil Oracles Quellcode geschlossen war und jeder andere Port eine Quelle benötigte, aus der er Änderungen übernehmen konnte. Darin liegt der konkrete Wert des Forks: Ohne ihn hätten die Ports keinen gemeinsamen Ausgangspunkt für Zusammenführungen gehabt.
Das OpenZFS-Projekt wurde am 17. September 2013 angekündigt, um diese Ports zu koordinieren. Matt Ahrens, einer der ursprünglichen ZFS-Autoren, gehörte zu den Gründern. OpenZFS 2.0 wurde am 30. November 2020 veröffentlicht. In den Release Notes wird das Ergebnis klar beschrieben: „Das Projekt ZFS on Linux wurde in OpenZFS umbenannt! Linux und FreeBSD werden jetzt aus demselben Repository unterstützt, sodass alle OpenZFS-Funktionen auf beiden Plattformen verfügbar sind.“ FreeBSD 13.0 entfernte seine eigene von illumos abgeleitete Kopie und wechselte zu diesem gemeinsamen Quellbaum.
Die beiden ZFS-Linien sind auf der Festplatte voneinander abgewichen. Die offene Linie blieb bei Pool-Version 28 stehen, der letzten von Sun veröffentlichten Version, und wechselte unter der Platzhalterversion 5000 zu benannten Feature Flags. Ein Pool weist dadurch die von ihm verwendeten Funktionen aus, statt nur eine einzelne Versionsnummer zu verwenden. Oracle erhöhte seine eigenen Versionsnummern weiter, während der Quellcode geschlossen blieb. Ein Pool, der auf einer Seite mit einer höheren Version als 28 erstellt wurde, kann auf der anderen Seite nicht importiert werden. Wenn Sie entscheiden, wo Sie ZFS betreiben, beschreibt wie sich OpenZFS unter FreeBSD und Linux verhält, welche Unterschiede zwischen den beiden Hosts tatsächlich bestehen.
DTrace legte eine kürzere Strecke zurück. In FreeBSD war es seit 7.1 im Januar 2009 standardmäßig enthalten. Apple fügte es in Mac OS X 10.5 Leopard hinzu. Oracle veröffentlichte den DTrace-Kernelcode im August 2017 unter GPLv2. Diese Änderung wurde im Februar 2018 weithin wahrgenommen und beseitigte die Lizenzbarriere für Linux. DTrace wurde nie in den Mainline-Kernel übernommen. Linux-Tracing verwendet in der Praxis eBPF, und bpftrace stellt dafür eine Skriptsprache bereit, die bewusst eng an DTrace-D angelehnt ist.
Das allgemeine Muster ist der entscheidende Punkt, nicht eine Besonderheit von Solaris. Sun veröffentlichte ZFS und DTrace unter einer Lizenz, die es anderen ermöglichte, eine Kopie zu behalten und die Entwicklung fortzusetzen. Als das Unternehmen, das die Arbeit finanziert hatte, die Entwicklung einstellte, wurde die Arbeit fortgesetzt, weil sich der Code bereits in anderen Quellbäumen und in den Händen anderer Entwickler befand. Die Teile von Solaris, die nie geöffnet wurden, einschließlich der geschlossenen Binärdateien, die illumos neu implementieren musste, verschwanden mit dem Unternehmen. Das ändert die Veröffentlichung als Open Source. Derselbe Mechanismus steht hinter der Abstammung von Linux-Distributionen voneinander.
Sollten Sie illumos auf einem VPS betreiben?
Für fast alle lautet die Antwort nein. Nichts im bisherigen Text ist als Empfehlung dafür gedacht. illumos unterstützt nur einen begrenzten Hardwarebereich. Der Grund ist, dass der Treibersatz aus den von Sun unterstützten Treibern und den Treibern besteht, die eine kleine Community seither entwickelt hat. VPS-Anbieter veröffentlichen Images für Linux und BSD. Eine illumos-Installation bedeutet daher meist, dass Sie Ihr eigenes ISO-Image bei einem Anbieter hochladen, der benutzerdefinierte Images erlaubt. Danach müssen Sie prüfen, ob die virtuellen Festplatten- und Netzwerkgeräte erkannt werden. Software von Drittanbietern stammt aus dem eigenen Paketbestand der Distribution oder wird mit Ihrem eigenen Compiler erstellt.
Es gibt nachvollziehbare Gründe für den Betrieb: eine Solaris-Workload, die Sie weiter betreiben müssen, eine bereits eingerichtete Zonen-Umgebung oder ein Interesse am Lesen des Quellcodes. Die oben aufgeführten Distributionen werden gepflegt, und ihre Mailinglisten beantworten Fragen. Das ist etwas anderes als eine Standardwahl für einen neuen Server.
Wenn Sie wegen ZFS hier sind, benötigen Sie dafür kein illumos. Verwenden Sie OpenZFS unter Linux oder FreeBSD. Dort ist es paketiert, dokumentiert und weit verbreitet. Wenn Sie für einen Server die BSD-Variante derselben Familie in Betracht ziehen, beschreibt der praxisnahe Vergleich von Linux und FreeBSD als Serverplattform, was sich im täglichen Betrieb ändert. illumos ist die Ursprungsgeschichte dieser Werkzeuge. Wenn Sie ihre Herkunft kennen, verstehen Sie viele ihrer Eigenschaften besser. Das beginnt damit, warum sich zpool und zfs völlig anders anfühlen als der restliche Linux-Storage-Stack.
FAQ
Ist illumos dasselbe wie OpenSolaris?
Nein. OpenSolaris war das Projekt und die Distribution von Sun, wurde von Oracle übernommen und 2010 eingestellt. illumos ist ein separates Projekt, das am 3. August 2010 angekündigt wurde. Es basiert auf dem zuletzt veröffentlichten OpenSolaris-Kernquelltext, der OS/Net-Konsolidierung. Die erste Aufgabe bestand darin, die proprietären Binärkomponenten zu ersetzen, die OpenSolaris ausgeliefert hatte. Dazu gehörten libc_i18n, der NFS-Sperrmanager, das kryptografische Framework und mehrere Treiber. Nach 2010 stammt kein illumos-Code von Oracle, weil Oracle die Veröffentlichung eingestellt hat.
Warum kann Linux ZFS nicht in seinen Kernel aufnehmen?
Die Lizenzen sind nicht miteinander kompatibel. ZFS steht unter der CDDL. Die Free Software Foundation stuft sie als freie Softwarelizenz ein, die mit der GPL inkompatibel ist. Diese Inkompatibilität wurde aus der MPL 1.1 übernommen. Der Linux-Kernel steht unter GPLv2. In der Praxis wird OpenZFS unter Linux deshalb als externes Kernelmodul ausgeliefert. DKMS erstellt es üblicherweise für jeden installierten Kernel neu. Alternativ kann ein vorkompiliertes Modulpaket verwendet werden. Das funktioniert gut. Das Modul muss jedoch für jeden neuen Kernel neu erstellt werden. Daher kann es einem neuen Kernel-Release um Tage oder Wochen hinterherhinken.
Wird Oracle Solaris noch unterstützt?
Ja. Oracle Solaris 11.4 wurde am 28. August 2018 veröffentlicht und ist das aktuelle Release. Der Premier Support läuft gemäß Oracles Support-Lebenszyklus bis November 2031. Der Extended Support läuft bis November 2037. Oracle entließ am 2. September 2017 den Großteil der Solaris-Teams. Seitdem erhielt 11.4 Aktualisierungen der Support-Repositories, jedoch keine neue Hauptversion. Der vollständige Quelltext wird nicht so veröffentlicht, wie OpenSolaris ihn veröffentlicht hat.
Kann ich illumos auf einem VPS installieren?
Manchmal, aber selten über die Image-Liste des Anbieters. Sie benötigen in der Regel einen Anbieter, bei dem Sie ein benutzerdefiniertes ISO einbinden und eine Konsole verwenden können. Prüfen Sie anschließend, ob die virtuellen Festplatten- und Netzwerktreiber im illumos-Quellbaum die Geräte des Hypervisors erkennen. OpenIndiana und Tribblix sind übliche Ausgangspunkte für eine allgemeine Installation. SmartOS ist dagegen als Hypervisor-Host und nicht als Gast ausgelegt. Testen Sie die Installation in einer lokalen virtuellen Maschine, bevor Sie dafür bezahlen.
Lohnt es sich, DTrace zu lernen, wenn ich nur Linux verwende?
Das zugrunde liegende Modell lässt sich übertragen, auch wenn das Werkzeug selbst größtenteils nicht übertragen werden kann. Oracle veröffentlichte den DTrace-Kernelcode im August 2017 unter GPLv2 und pflegt einen Port für Oracle Linux. Dieser wurde jedoch nie in den Mainline-Kernel übernommen. In der Praxis verwendet das Tracing unter Linux eBPF. Die von bpftrace verwendete Sprache wurde so entworfen, dass sie wie DTrace-D aussieht. Deshalb haben Probes, Prädikate und Aggregationen in beiden Systemen dieselbe Bedeutung. Wer die Denkweise von DTrace erlernt, kann bpftrace-Skripte sofort lesen.