SSD Nodes Learn Hosting plans →
Gidsen Matt ConnorDoor Matt Connor

Het verschil tussen Solaris en illumos uitgelegd

Ontdek hoe de overname door Oracle leidde tot de splitsing tussen Solaris en illumos. Leer waarom ZFS en DTrace vandaag de dag nog steeds voortbestaan dankzij deze open source fork.

Wat Solaris en illumos zijn

Solaris en illumos zijn twee takken van dezelfde Unix-broncode. Sun Microsystems bouwde Solaris en publiceerde het grootste deel van de broncode in 2005. Oracle kocht Sun in 2010 en stopte met het publiceren van die broncode, waarna ontwikkelaars buiten Oracle de open code voortzetten onder een nieuwe naam: illumos. Het besturingssysteem zelf is in 2026 een nicheproduct. De opslaglaag en de tracing-tool die erin zijn ingebouwd zijn dat niet, en dat is de reden waarom deze geschiedenis de moeite waard is.

Als u ZFS op Linux of op FreeBSD draait, gebruikt u code die bij Sun voor Solaris is geschreven en die het bedrijf, de productlijn en het licentieconflict heeft overleefd. Dit bericht vertelt het verhaal van hoe dat is gebeurd, met gecontroleerde jaartallen.

De oorsprong van Solaris: BSD, System V en SVR4

Sun Microsystems werd op 24 februari 1982 opgericht door Scott McNealy, Andy Bechtolsheim, Vinod Khosla en Bill Joy. Het besturingssysteem, SunOS, was afgeleid van BSD (Berkeley Software Distribution), de universitaire Unix-lijn waaraan Bill Joy werkte voordat Sun bestond. De andere Unix-lijn was System V van AT&T, dat commercieel werd verkocht. Deze twee takken vormen de splitsing die wordt beschreven in de Unix-stamboom die eindigt bij Linux, en Sun bevond zich tien jaar lang aan de BSD-kant hiervan.

In 1987 kondigden Sun en AT&T een gezamenlijk project aan om BSD, System V en Xenix samen te voegen tot één release: UNIX System V Release 4, meestal geschreven als SVR4. Op 4 september 1991 kondigde Sun aan dat SunOS 4 zou worden vervangen door een van SVR4 afgeleid systeem onder een nieuwe marketingnaam: Solaris 2. Solaris 2.0 werd in juni 1992 uitgebracht, uitsluitend voor SPARC-hardware. Sun was van kant gewisseld in de Unix-splitsing en klanten moesten hun software porteren.

De oude naam is nooit verdwenen. De kernel behield de SunOS-nummering, waardoor Solaris 2.6 op SunOS 5.6 draaide en Oracle Solaris 11.4 zichzelf nog steeds identificeert als SunOS 5.11. Voer uname -a uit op een illumos-machine in 2026 en het eerste woord dat wordt afgedrukt is nog steeds SunOS, omdat illumos de naam samen met de code heeft geërfd.

Wat Solaris 10 in 2005 introduceerde

Solaris 10 werd uitgebracht op 31 januari 2005. Dit is hier relevant omdat alles wat de onderneming overleefde, in die release zat of in een van de updates daarna verscheen.

DTrace werd bij Sun geschreven door Bryan Cantrill, Mike Shapiro en Adam Leventhal, en werd voor het eerst beschikbaar in november 2003. Het instrumenteert een draaiende kernel en draaiende gebruikersprocessen zonder iets opnieuw te compileren en zonder het proces dat u monitort te herstarten. Een probe die u niet heeft ingeschakeld kost niets, omdat de instrumentatie alleen wordt gepatcht wanneer een script erom vraagt. Dit is de reden waarom beheerders bereid waren het op productiemachines te gebruiken. DTrace won de hoofdprijs bij de Technology Innovation Awards 2006 van The Wall Street Journal en een USENIX STUG (Software Tools User Group) award in 2008.

ZFS werd bij Sun ontworpen door Jeff Bonwick, Bill Moore en Matthew Ahrens, en aangekondigd op 14 september 2004. Het voegde de volumemanager en het bestandssysteem samen tot één laag, waardoor het elk blok bij het lezen kan controleren op checksums en een beschadigd blok kan herstellen vanaf een redundante kopie. Schrijfacties zijn copy-on-write: een blok wordt nooit op de oorspronkelijke locatie overschreven, waardoor een crash tijdens het schrijven de oude data intact laat in plaats van een half geschreven bestandssysteem achter te laten. Snapshots kosten vrijwel niets, omdat een snapshot simpelweg de verzameling blokken is die door latere schrijfacties niet zijn gewijzigd. ZFS zat niet in de initiële Solaris 10-release. Het werd meegeleverd in de Solaris 10 6/06-update, in juni 2006.

Zones waren het derde onderdeel. Een zone geeft één kernel meerdere geïsoleerde gebruikersomgevingen, elk met een eigen root-bestandssysteem, procestabel en netwerkconfiguratie. Zones verschenen in een Solaris 10-bètaversie in februari 2004 en werden meegeleverd met de volledige release. FreeBSD was eerder vanuit een andere invalshoek tot hetzelfde idee gekomen, en de vergelijking tussen jails en Docker containers is nog steeds de duidelijkste manier om te zien wat isolatie op kernelniveau daadwerkelijk inhoudt. Zones zijn vandaag de dag nog steeds aanwezig in illumos en vormen de basis van ten minste één distributie hieronder.

Waarom Sun de broncode van Solaris openstelde

Sun diende de CDDL (Common Development and Distribution License) op 1 december 2004 in bij de OSI (Open Source Initiative), en de OSI keurde deze goed op 14 januari 2005. De CDDL is gebaseerd op versie 1.1 van de MPL (Mozilla Public License). De copyleft-werking is van toepassing op het niveau van het individuele bestand: een CDDL-bronbestand moet CDDL blijven, maar het daaruit gebouwde binaire bestand kan worden gecombineerd met code onder andere voorwaarden.

DTrace was de eerste. De broncode werd op 25 januari 2005 vrijgegeven onder de CDDL op de nieuw gelanceerde website opensolaris.org, zes dagen voordat Solaris 10 zelf werd uitgebracht. Het grootste deel van de Solaris-systeemcode volgde op 14 juni 2005. ZFS werd op 31 oktober 2005 geïntegreerd in de hoofd-ontwikkelingstak van Solaris en bereikte OpenSolaris-ontwikkelaars in build 27 op 16 november 2005. OpenSolaris werd ook een distributie die u kon installeren: 2008.05 verscheen op 5 mei 2008 als een live CD, en 2009.06 verscheen op 1 juni 2009 met ondersteuning voor SPARC.

De licentiekeuze bepaalt nog steeds wat u vandaag de dag kunt draaien. De Free Software Foundation classificeert de CDDL als een licentie voor vrije software die incompatibel is met de GPL (GNU General Public License), een incompatibiliteit die is overgenomen van MPL 1.1. De Linux-kernel is GPLv2. Dat is de reden waarom ZFS on Linux wordt gebouwd als een kernelmodule buiten de broncodeboom van de kernel in plaats van erin te worden samengevoegd, en waarom het niet in de mainline-kernel zit. De beslissing om onder een open licentie te publiceren is wat het meest van belang is voor de rest van dit verhaal, en de geschiedenis van open source-licenties legt uit waarom een bedrijf dit überhaupt zou doen.

Wat er gebeurde toen Oracle Sun overnam

Oracle kondigde op 20 april 2009 aan dat het Sun zou overnemen voor 7,4 miljard US dollar, of 5,6 miljard US dollar netto na aftrek van de contanten en schulden van Sun. De deal werd afgerond op 27 januari 2010.

Op 13 augustus 2010 werd een interne memo van Oracle, geschreven door Mike Shapiro, Bill Nesheim en Chris Armes, binnen het bedrijf verspreid en vervolgens gelekt. Hierin werd het nieuwe beleid direct uiteengezet: "Wij zullen de broncode voor het gehele Solaris-besturingssysteem niet langer in real-time distribueren terwijl het wordt ontwikkeld, op dagelijkse basis." Het sloot verdere community-builds uit: "Wij zullen geen andere binaire distributies uitbrengen, zoals dagelijkse of tweewekelijkse builds van Solaris-binaries, of een OpenSolaris 2010.05 of latere distributie." Open-source-releases zouden in plaats daarvan volgen op uitgebrachte producten: "Wij zullen updates voor goedgekeurde CDDL- of andere open-source-gelicentieerde code distribueren na volledige releases van ons enterprise Solaris-besturingssysteem."

Op 23 augustus 2010 nam de OpenSolaris Governing Board een resolutie aan waarin werd vastgelegd dat Oracle geen contactpersoon voor de raad had aangesteld en op 13 augustus het einde van het ontwikkelingspartnerschap had aangekondigd. De raad stemde ermee in om de controle over de community terug te geven aan Oracle onder het handvest dat Sun oorspronkelijk had opgesteld, waarmee de raad werd ontbonden.

Oracle Solaris 11 werd uitgebracht op 9 november 2011. Op 2 september 2017 ontsloeg Oracle het merendeel van de Solaris-teams. Oracle Solaris 11.4 werd uitgebracht op 28 augustus 2018 en is nog steeds de huidige release. Onder het lifetime support-beleid van Oracle loopt de Premier Support voor 11.4 tot november 2031 en de Extended Support tot november 2037. Solaris is daarom een ondersteund commercieel product met een gepubliceerde einddatum, op een release die sinds 2018 actueel is.

Hoe illumos is ontstaan en waarom het een fork wordt genoemd

Op 3 augustus 2010, tien dagen voordat de memo uitlekte, kondigde Garrett D'Amore illumos aan. De naam combineert illum, Latijn voor licht, met OS voor operating system; het project schrijft het als één woord met alleen de eerste letter als hoofdletter.

Het doel was OS/Net, meestal geschreven als ON: de consolidatie die de kernel en de kernsysteemhulpprogramma's bevat. OpenSolaris was nooit volledig open geweest. Verschillende onderdelen werden uitgebracht als gesloten binaries die niemand buiten Sun kon compileren, waaronder de internationalisatiecode in de C-bibliotheek (libc_i18n), de NFS lock manager, het cryptografische framework, drivers zoals de mpt-driver voor LSI host bus adapters en bepaalde SPARC-platformcode. Het vervangen daarvan was de eerste taak van het project, omdat een besturingssysteem dat u niet vanuit de broncode kunt compileren, niet onderhoudbaar is.

D'Amore was voorzichtig met het woord fork. "Wij zijn vandaag geen fork, vanwege de manier waarop wij OS/Net volgen," schreef hij, waarbij hij een downstream-repository beschreef die de tree van Oracle zou volgen en wijzigingen terug naar upstream zou kunnen sturen. Tien dagen later stopte de upstream met publiceren. illumos werd automatisch een fork, omdat er niets meer was om te volgen. De kern-tree, illumos-gate, is in augustus 2026 de 23.000 commits gepasseerd en ontvangt nog steeds nieuwe bijdragen.

Welke distributies zijn gebaseerd op illumos

illumos is geen besturingssysteem dat u direct installeert. Het is de kernbroncode (core tree) waarop distributies een bruikbaar systeem bouwen. Dit zijn de distributies die momenteel nog worden uitgebracht.

  • OpenIndiana werd officieel gelanceerd op 14 september 2010 in het JISC Centre in Londen en is de meest directe afstammeling van de oude OpenSolaris desktop- en serverdistributie. Het is een rolling release genaamd Hipster, waarvan de 2026.04 snapshot werd gepubliceerd op 5 mei 2026.
  • OmniOS is een serverdistributie die nu door de community wordt onderhouden als OmniOS CE, nadat de oorspronkelijke leverancier de werkzaamheden eraan had gestaakt.
  • SmartOS is een hypervisor-platform gebouwd op basis van zones. Joyent heeft het ontwikkeld en kondigde in april 2022 aan dat SmartOS en Triton per 1 mei 2022 zouden overgaan naar MNX Solutions.
  • NexentaStor gebruikte dezelfde basis voor storage-appliances; dit is de commerciële lijn waaruit illumos is voortgekomen.
  • Tribblix is een kleine distributie die wordt onderhouden door Peter Tribble, hieronder beschreven.
  • DilOS plaatst de pakketbeheertools van Debian boven op een illumos-kernel.

Hoe de installatie van een illumos-systeem er tegenwoordig uitziet

Tribblix is een nuttig voorbeeld omdat het compact is, publiekelijk gedocumenteerd is en nog steeds wordt uitgebracht. Milestone 41 voor x86 werd gepubliceerd op 5 augustus 2026, en de SPARC-lijn bereikte Milestone 34 op 21 april 2026. Het project omschrijft zichzelf als een retro-stijl met moderne componenten en heeft het SVR4-pakketformaat van Solaris behouden in plaats van over te stappen op een nieuwer pakketsysteem.

De installatie verloopt via een live-image. U start de ISO op, logt in als gebruiker jack met het wachtwoord jack, wordt root en voert het installatieprogramma uit op een schijfapparaat. Dit is het commando dat de eigen installatiedocumentatie van het project voorschrijft:

./live_install.sh -G c1t0d0

De vlag -G schrijft een EFI (extensible firmware interface) partitie-indeling, en -b selecteert de legacy MBR (master boot record) indeling. Schijfnamen volgen de Solaris cXtYdZ-conventie in plaats van /dev/sda, wat het eerste is dat onbekend zal overkomen als u afkomstig bent uit de Linux-wereld. Software-sets worden overlays genoemd en kunnen op dezelfde regel worden benoemd:

./live_install.sh -G c1t0d0 develop desktop

Na de installatie is de pakketbeheerder zap, die werkt met overlays zodat afhankelijkheden voor u worden afgehandeld:

zap refresh
zap install-overlay develop
zap update-overlay -a

Dit zijn de commando's die Tribblix publiceert. Ze draaien op hardware of een hypervisor die u beheert. Ze zijn niet te vinden achter een 'one-click'-image in een VPS-configuratiescherm, en dat gat is de eerlijke status van illumos-implementatie in 2026.

Waarom ZFS en DTrace Solaris hebben overleefd

ZFS verliet Solaris vrijwel direct nadat de broncode werd gepubliceerd. Pawel Jakub Dawidek porteerde het naar FreeBSD, waar het sinds FreeBSD 7.0 in 2008 onderdeel is van het systeem. Het werk aan native ZFS voor Linux begon in 2008 en resulteerde in 2013 in de eerste stabiele release. Tussen 2010 en 2013 beheerde illumos de referentie-kopie van de ZFS-broncode, omdat de tree van Oracle gesloten was en elke andere poort een bron nodig had om van te synchroniseren. Dat is de concrete waarde van de fork: zonder deze hadden de poorten geen gemeenschappelijke stam gehad om tegen te mergen.

Het OpenZFS-project werd op 17 september 2013 aangekondigd om deze poorten te coördineren, met Matt Ahrens, een van de oorspronkelijke ZFS-auteurs, als een van de oprichters. OpenZFS 2.0 werd uitgebracht op 30 november 2020 en de release notes verwoorden het resultaat helder: "Het ZFS on Linux-project is hernoemd naar OpenZFS! Zowel Linux als FreeBSD worden nu ondersteund vanuit dezelfde repository, waardoor alle OpenZFS-functies op beide platforms beschikbaar zijn." FreeBSD 13.0 liet zijn eigen, van illumos afgeleide kopie vallen en stapte over op die gedeelde tree.

De twee ZFS-lijnen zijn op schijfniveau uit elkaar gegroeid. De open lijn stopte bij pool-versie 28, de laatste versie die Sun publiceerde, en stapte over op benoemde feature flags onder de placeholder-versie 5000. Hierdoor adverteert een pool welke functies deze gebruikt in plaats van één enkel nummer. Oracle bleef zijn eigen versienummers verhogen achter gesloten broncode. Een pool die voorbij versie 28 is aangemaakt aan de ene kant, kan niet aan de andere kant worden geïmporteerd. Als u kiest waar u het wilt draaien, behandelt hoe OpenZFS zich gedraagt op FreeBSD in vergelijking met Linux wat er daadwerkelijk verschilt tussen de twee hosts.

DTrace legde een kortere afstand af. Het was in januari 2009 standaard in FreeBSD 7.1 en Apple voegde het toe in Mac OS X 10.5 Leopard. Oracle bracht de DTrace-kernelcode in augustus 2017 uit onder GPLv2, een wijziging die in februari 2018 breed werd opgemerkt en de licentiebarrière voor Linux wegnam. Het is nooit gemerged in de mainline-kernel. Linux-tracing draait in de praktijk op eBPF, en bpftrace voorziet dit van een scripttaal die bewust dicht bij de D-taal van DTrace ligt.

Het patroon is het algemene punt, niet specifiek voor Solaris. Sun publiceerde ZFS en DTrace onder een licentie die anderen toestond een kopie te behouden en eraan door te werken. Toen het bedrijf dat voor het werk betaalde stopte, ging het werk door omdat de code al in andere trees en andere handen was. De onderdelen van Solaris die nooit werden vrijgegeven, inclusief de gesloten binaries die illumos moest herschrijven, verdwenen met het bedrijf. Dat is wat open-sourceverandering teweegbrengt, en het is hetzelfde mechanisme achter de manier waarop Linux-distributies van elkaar afstammen.

Is het verstandig om illumos op een VPS te draaien?

Voor vrijwel iedereen is het antwoord nee, en niets van het bovenstaande is een aanbeveling om dit te proberen. illumos ondersteunt een beperkt aantal hardwareconfiguraties, omdat de driverset bestaat uit wat Sun destijds ondersteunde, aangevuld met wat een kleine gemeenschap sindsdien heeft geschreven. VPS-providers bieden images aan voor Linux en BSD; een installatie van illumos betekent daarom meestal dat u uw eigen ISO moet uploaden naar een provider die aangepaste images toestaat, om vervolgens te ontdekken of de virtuele schijf en netwerkapparaten worden herkend. Software van derden is afkomstig uit de pakketset van de distributie zelf of moet door uzelf worden gecompileerd.

Er zijn valide redenen om het te draaien: een Solaris-workload die u in de lucht moet houden, een zones-implementatie die u al beheert, of interesse in het bestuderen van de broncode. De hierboven genoemde distributies worden onderhouden en hun mailinglijsten bieden ondersteuning bij vragen. Dat is echter iets anders dan een standaardkeuze voor een nieuwe server.

Als u hier bent gekomen voor ZFS, dan heeft u daarvoor geen illumos nodig. Gebruik OpenZFS op Linux of op FreeBSD, waar het als pakket beschikbaar is, gedocumenteerd is en op grote schaal wordt ingezet. Als u de BSD-kant van dezelfde familie overweegt voor een server, dan behandelt de praktische vergelijking tussen Linux en FreeBSD als serverplatform wat er verandert in het dagelijks beheer. illumos is de oorsprong van deze tools, en weten waar ze vandaan komen verklaart veel van hun gedrag, te beginnen bij waarom zpool en zfs totaal anders aanvoelen dan de rest van de storage-stack in Linux.

FAQ

Is illumos hetzelfde als OpenSolaris?

Nee. OpenSolaris was het project en de distributie van Sun, die door Oracle werden overgenomen. Oracle beëindigde het project in 2010. illumos is een afzonderlijk project dat op 3 augustus 2010 werd aangekondigd en is gebouwd op basis van de laatst gepubliceerde broncode van de OpenSolaris-kern, de OS/Net-consolidatie. De eerste taak was het vervangen van de gesloten binaire componenten die OpenSolaris bevatte, waaronder libc_i18n, de NFS lock manager, het cryptografische framework en diverse drivers. Sinds 2010 is er geen code van Oracle meer in illumos terechtgekomen, omdat Oracle de publicatie ervan heeft stopgezet.

Waarom kan Linux ZFS niet in de kernel opnemen?

De licenties zijn niet verenigbaar. ZFS gebruikt de CDDL, die door de Free Software Foundation wordt geclassificeerd als een licentie voor vrije software die incompatibel is met de GPL; een incompatibiliteit die de CDDL heeft geërfd van de MPL 1.1. De Linux-kernel is GPLv2. Het praktische gevolg is dat OpenZFS op Linux wordt geleverd als een out-of-tree kernelmodule, die meestal door DKMS wordt gebouwd voor elke geïnstalleerde kernel, of als een vooraf gebouwd modulepakket. Dit werkt goed, maar de module moet voor elke nieuwe kernel opnieuw worden gebouwd, waardoor deze dagen of weken kan achterlopen op een nieuwe kernelrelease.

Wordt Oracle Solaris nog ondersteund?

Ja. Oracle Solaris 11.4 werd uitgebracht op 28 augustus 2018 en is de huidige release. Premier Support loopt tot november 2031 en Extended Support tot november 2037 onder het lifetime support-beleid van Oracle. Oracle ontsloeg het merendeel van de Solaris-teams op 2 september 2017, en 11.4 heeft sindsdien updates via de support-repository ontvangen in plaats van een nieuwe grote versie. De volledige broncode wordt niet gepubliceerd op de manier waarop OpenSolaris dat deed.

Kan ik illumos op een VPS installeren?

Soms, maar zelden via de lijst met images van een provider. U heeft doorgaans een provider nodig die het toestaat om een eigen ISO te koppelen en een console te gebruiken. Vervolgens moet u controleren of de virtuele schijf- en netwerkdrivers in de illumos-boom de apparaten van de hypervisor herkennen. OpenIndiana en Tribblix zijn de gebruikelijke startpunten voor een algemene installatie, en SmartOS is ontworpen als hypervisor-host in plaats van als gast. Test het in een lokale virtuele machine voordat u ergens voor betaalt.

Is het de moeite waard om DTrace te leren als ik alleen Linux gebruik?

Het model is overdraagbaar, ook al is de tool dat grotendeels niet. Oracle bracht de DTrace-kernelcode in augustus 2017 uit onder de GPLv2 en onderhoudt een port voor Oracle Linux, maar deze is nooit samengevoegd met de mainline-kernel. Linux-tracing draait in de praktijk op eBPF. De taal die bpftrace gebruikt, is ontworpen om op de D-taal van DTrace te lijken, waardoor probes, predicaten en aggregaties in beide hetzelfde betekenen. Door de denkwijze van DTrace te leren, zijn bpftrace-scripts bij de eerste poging leesbaar.

#solaris#illumos#unix-history#zfs#dtrace