Solaris to illumos: the fork that lived
Sun built ZFS and DTrace inside Solaris, then opened the source. Oracle closed it again. The illumos fork is why you can still run both today.
What Solaris and illumos are
Solaris and illumos are two branches of one Unix source tree. Sun Microsystems built Solaris and published most of its source code in 2005. Oracle bought Sun in 2010 and stopped publishing that source, so developers outside Oracle carried the open code forward under a new name: illumos. The operating system itself is niche in 2026. The storage layer and the tracing tool built inside it are not, and that is the reason this history is worth your time.
If you run ZFS on Linux or on FreeBSD, you are running code that was written at Sun for Solaris and that outlived the company, the product line and the licence fight. This post is the story of how that happened, with the dates checked.
Where Solaris came from: BSD, System V and SVR4
Sun Microsystems was founded on 24 February 1982 by Scott McNealy, Andy Bechtolsheim, Vinod Khosla and Bill Joy. Its operating system, SunOS, was derived from BSD (Berkeley Software Distribution), the university Unix line Bill Joy had worked on before Sun existed. The other Unix line was AT&T's System V, sold commercially. Those two branches are the split described in the Unix family tree that ends with Linux, and Sun sat on the BSD side of it for a decade.
In 1987 Sun and AT&T announced a joint project to merge BSD, System V and Xenix into a single release: UNIX System V Release 4, usually written SVR4. On 4 September 1991 Sun announced that SunOS 4 would be replaced by an SVR4-derived system under a new marketing name, Solaris 2. Solaris 2.0 shipped in June 1992, on SPARC hardware only. Sun had changed sides of the Unix split, and its customers had to port their software.
The old name never went away. The kernel kept the SunOS numbering, so Solaris 2.6 ran SunOS 5.6, and Oracle Solaris 11.4 still reports itself as SunOS 5.11. Run uname -a on an illumos machine in 2026 and the first word printed is still SunOS, because illumos inherited the name along with the code.
What Solaris 10 introduced in 2005
Solaris 10 was released on 31 January 2005. It matters here because everything that survived the company was in that release or arrived in one of its updates.
DTrace was written at Sun by Bryan Cantrill, Mike Shapiro and Adam Leventhal, and first became available in November 2003. It instruments a running kernel and running user processes without recompiling anything and without restarting the process you are watching. A probe that you have not enabled costs nothing, because the instrumentation is patched in only when a script asks for it, which is why administrators were willing to use it on production machines. DTrace won the top prize in The Wall Street Journal's 2006 Technology Innovation Awards, and a USENIX STUG (Software Tools User Group) award in 2008.
ZFS was designed at Sun by Jeff Bonwick, Bill Moore and Matthew Ahrens, and announced on 14 September 2004. It merged the volume manager and the filesystem into one layer, which is what lets it checksum every block on read and repair a bad block from a redundant copy. Writes are copy on write: a block is never overwritten in place, so a crash in the middle of a write leaves the old data intact instead of a half written filesystem. Snapshots cost almost nothing, because a snapshot is simply the set of blocks that later writes did not touch. ZFS did not make the initial Solaris 10 release. It shipped in the Solaris 10 6/06 update, in June 2006.
Zones were the third piece. A zone gives one kernel several isolated user spaces, each with its own root filesystem, process table and network configuration. Zones appeared in a Solaris 10 beta build in February 2004 and shipped with the full release. FreeBSD had reached the same idea earlier from a different direction, and the comparison between jails and Docker containers is still the clearest way to see what kernel level isolation actually is. Zones are alive in illumos today and are the foundation of at least one distribution below.
Why Sun opened the Solaris source code
Sun submitted the CDDL (Common Development and Distribution License) to the OSI (Open Source Initiative) on 1 December 2004, and the OSI approved it on 14 January 2005. The CDDL is based on version 1.1 of the MPL (Mozilla Public License). Its copyleft works at the level of the individual file: a CDDL source file must stay CDDL, but the binary built from it can be combined with code under other terms.
DTrace went first. Its source was released under the CDDL on 25 January 2005, on the newly launched opensolaris.org site, six days before Solaris 10 itself shipped. The bulk of the Solaris system code followed on 14 June 2005. ZFS was integrated into the main Solaris development trunk on 31 October 2005 and reached OpenSolaris developers in build 27 on 16 November 2005. OpenSolaris also became a distribution you could install: 2008.05 arrived on 5 May 2008 as a live CD, and 2009.06 arrived on 1 June 2009 with SPARC support.
The licence choice still decides what you can run today. The Free Software Foundation classes the CDDL as a free software licence that is incompatible with the GPL (GNU General Public License), an incompatibility inherited from MPL 1.1. The Linux kernel is GPLv2. That is why ZFS on Linux is built as a kernel module outside the kernel source tree rather than merged into it, and why it is not in the mainline kernel. The decision to publish under any open licence is the one that matters most to the rest of this story, and the history of open source licensing explains why a company would make it at all.
What happened when Oracle bought Sun
Oracle announced on 20 April 2009 that it would acquire Sun for US$7.4 billion, or US$5.6 billion net of Sun's cash and debt. The deal completed on 27 January 2010.
On 13 August 2010 an internal Oracle memo written by Mike Shapiro, Bill Nesheim and Chris Armes was circulated inside the company and then leaked. It stated the new policy directly: "We will no longer distribute source code for the entirety of the Solaris operating system in real-time while it is developed, on a nightly basis." It ruled out further community builds: "We will not release any other binary distributions, such as nightly or bi-weekly builds of Solaris binaries, or an OpenSolaris 2010.05 or later distribution." Open source releases would instead follow shipped products: "We will distribute updates to approved CDDL or other open source-licensed code following full releases of our enterprise Solaris operating system."
On 23 August 2010 the OpenSolaris Governing Board passed a resolution recording that Oracle had not appointed a liaison to the board and had announced the end of the development partnership on 13 August. The board voted to return control of the community to Oracle under the charter Sun had originally written, which dissolved the board.
Oracle Solaris 11 was released on 9 November 2011. On 2 September 2017 Oracle laid off most of the Solaris teams. Oracle Solaris 11.4 was released on 28 August 2018 and is still the current release. Under Oracle's lifetime support policy, Premier Support for 11.4 runs to November 2031 and Extended Support to November 2037. Solaris is therefore a supported commercial product with a published end date, on a release that has been current since 2018.
How illumos started, and why it is called a fork
On 3 August 2010, ten days before the memo leaked, Garrett D'Amore announced illumos. The name joins illum, Latin for light, with OS for operating system, and the project writes it as one word with only the first letter capitalised.
The target was OS/Net, usually written ON: the consolidation that holds the kernel and the core system utilities. OpenSolaris had never been fully open. Several parts shipped as closed binaries that nobody outside Sun could rebuild, including the internationalisation code inside the C library (libc_i18n), the NFS lock manager, the cryptographic framework, drivers such as the mpt driver for LSI host bus adapters, and some SPARC platform code. Replacing those was the project's first job, because an operating system you cannot build from source is not one you can maintain.
D'Amore was careful about the word fork. "We are not a fork today, because of the way we track OS/Net," he wrote, describing a downstream repository that would follow Oracle's tree and could feed changes back upstream. Ten days later the upstream stopped publishing. illumos became a fork by default, because there was no longer anything to track. The core tree, illumos-gate, has passed 23,000 commits as of August 2026 and is still taking them.
Which distributions come from illumos
illumos is not something you install. It is the core tree, and distributions build a usable system on top of it. These are the ones still shipping.
- OpenIndiana was formally launched on 14 September 2010 at the JISC Centre in London, and is the closest descendant of the old OpenSolaris desktop and server distribution. It is a rolling release named Hipster, and the 2026.04 snapshot was published on 5 May 2026.
- OmniOS is a server distribution, now maintained by its community as OmniOS CE after its original vendor stopped work on it.
- SmartOS is a hypervisor platform built on zones. Joyent created it and announced in April 2022 that SmartOS and Triton were moving to MNX Solutions, effective 1 May 2022.
- NexentaStor used the same base for storage appliances, which is the commercial line illumos came out of.
- Tribblix is a small distribution maintained by Peter Tribble, described below.
- DilOS puts Debian's package tooling on top of an illumos kernel.
What installing an illumos system looks like today
Tribblix is the useful example because it is small, it is documented in public, and it is still being released. Milestone 41 for x86 was published on 5 August 2026, and the SPARC line reached Milestone 34 on 21 April 2026. The project describes itself as a retro style with modern components, and it kept the SVR4 package format Solaris used rather than moving to a newer package system.
The install runs from a live image. You boot the ISO, log in as the user jack with the password jack, become root, and run the installer against a disk device. This is the command the project's own install documentation gives:
./live_install.sh -G c1t0d0The -G flag writes an EFI (extensible firmware interface) partition layout, and -b selects the legacy MBR (master boot record) layout instead. Disk names follow the Solaris cXtYdZ convention rather than /dev/sda, which is the first thing that will look unfamiliar if you come from Linux. Software sets are called overlays and can be named on the same line:
./live_install.sh -G c1t0d0 develop desktopAfter installation the package tool is zap, which works on overlays so that dependencies are handled for you:
zap refresh
zap install-overlay develop
zap update-overlay -aThose are the commands Tribblix publishes. They run on hardware or a hypervisor you control. They are not something you will find behind a one click image in a VPS control panel, and that gap is the honest state of illumos deployment in 2026.
Why ZFS and DTrace outlived Solaris
ZFS left Solaris almost immediately after the source was published. Pawel Jakub Dawidek ported it to FreeBSD, where it has been part of the system since FreeBSD 7.0 in 2008. Native ZFS work for Linux started in 2008 and produced its first stable release in 2013. Between 2010 and 2013 illumos held the reference copy of the ZFS source, because Oracle's tree was closed and every other port needed somewhere to pull from. That is the concrete value of the fork: without it, the ports would have had no common ancestor to merge against.
The OpenZFS project was announced on 17 September 2013 to coordinate those ports, with Matt Ahrens, one of the original ZFS authors, among its founders. OpenZFS 2.0 was released on 30 November 2020, and its release notes state the result plainly: "The ZFS on Linux project has been renamed OpenZFS! Both Linux and FreeBSD are now supported from the same repository making all of the OpenZFS features available on both platforms." FreeBSD 13.0 dropped its own illumos derived copy and moved to that shared tree.
The two ZFS lines have diverged on disk. The open line stopped at pool version 28, the last version Sun published, and moved to named feature flags under the placeholder version 5000, so a pool advertises which features it uses instead of a single number. Oracle kept incrementing its own version numbers behind closed source. A pool created past version 28 on one side cannot be imported on the other. If you are choosing where to run it, how OpenZFS behaves on FreeBSD compared with Linux covers what actually differs between the two hosts.
DTrace travelled a shorter distance. It was standard in FreeBSD by 7.1 in January 2009, and Apple added it in Mac OS X 10.5 Leopard. Oracle released the DTrace kernel code under GPLv2 in August 2017, a change widely noticed in February 2018, which removed the licence barrier to Linux. It was never merged into the mainline kernel. Linux tracing in practice runs on eBPF, and bpftrace gives it a scripting language deliberately close to DTrace's D.
The pattern is the general point, not a Solaris one. Sun published ZFS and DTrace under a licence that let other people keep a copy and keep working on it. When the company that paid for the work stopped, the work continued, because the code was already in other trees and other hands. The parts of Solaris that were never opened, including the closed binaries illumos had to rewrite, went with the company. That is what open sourcing changes, and it is the same mechanism behind the way Linux distributions descend from one another.
Should you run illumos on a VPS?
For almost everyone the answer is no, and nothing above is a recommendation to try. illumos supports a narrow range of hardware, because its driver set is what Sun supported plus what a small community has written since. VPS providers publish Linux and BSD images, so an illumos install usually means uploading your own ISO to a provider that permits custom images, then finding out whether the virtual disk and network devices are recognised. Third party software comes from the distribution's own package set or from your own compiler.
There are real reasons to run it: a Solaris workload you need to keep alive, a zones deployment you already operate, or an interest in reading the source. The distributions listed above are maintained and their mailing lists answer questions. That is a different thing from a default choice for a new server.
If you came here for ZFS, you do not need illumos to get it. Run OpenZFS on Linux or on FreeBSD, where it is packaged, documented and widely deployed. If you are weighing the BSD side of the same family for a server, the practical comparison of Linux and FreeBSD as a server platform covers what changes in daily operation. illumos is the origin story of the tools, and knowing where they came from explains a lot of their behaviour, starting with why zpool and zfs feel nothing like the rest of the Linux storage stack.
FAQ
Is illumos the same thing as OpenSolaris?
No. OpenSolaris was Sun's project and distribution, inherited by Oracle, and Oracle ended it in 2010. illumos is a separate project announced on 3 August 2010, built from the last published OpenSolaris core source, the OS/Net consolidation. Its first task was replacing the closed binary components OpenSolaris had shipped, including libc_i18n, the NFS lock manager, the cryptographic framework and several drivers. No illumos code comes from Oracle after 2010, because Oracle stopped publishing it.
Why can Linux not include ZFS in its kernel?
The licences do not fit. ZFS is CDDL, which the Free Software Foundation classes as a free software licence that is incompatible with the GPL, an incompatibility the CDDL inherited from MPL 1.1. The Linux kernel is GPLv2. The practical result is that OpenZFS on Linux ships as an out of tree kernel module, usually built by DKMS against each kernel you install, or as a prebuilt module package. It works well, but the module has to be rebuilt for every new kernel, so it can lag a fresh kernel release by days or weeks.
Is Oracle Solaris still supported?
Yes. Oracle Solaris 11.4 was released on 28 August 2018 and is the current release. Premier Support runs to November 2031 and Extended Support to November 2037 under Oracle's lifetime support policy. Oracle laid off most of the Solaris teams on 2 September 2017, and 11.4 has since received support repository updates rather than a new major version. The full source is not published the way OpenSolaris published it.
Can I install illumos on a VPS?
Sometimes, but rarely from a provider's image list. You generally need a provider that lets you attach a custom ISO and use a console, then check that the virtual disk and network drivers in the illumos tree recognise the hypervisor's devices. OpenIndiana and Tribblix are the usual starting points for a general purpose install, and SmartOS is designed to be a hypervisor host rather than a guest. Test in a local virtual machine before you pay for anything.
Is DTrace worth learning if I only use Linux?
The model transfers even though the tool mostly does not. Oracle released the DTrace kernel code under GPLv2 in August 2017 and maintains a port for Oracle Linux, but it was never merged into the mainline kernel, and Linux tracing in practice runs on eBPF. The language bpftrace uses was designed to look like DTrace's D, so probes, predicates and aggregations mean the same thing in both. Learning the DTrace way of thinking makes bpftrace scripts readable on the first try.