LWN.net Logo

Illumos: new hope for the OpenSolaris community?

August 11, 2010

This article was contributed by Koen Vervloesem

On August 3, storage vendor Nexenta Systems hosted a conference call [MP3] announcing Illumos, a project to free the OpenSolaris distribution. Garrett D'Amore, a former Sun and Oracle Solaris developer and now senior director of engineering at Nexenta, disclosed the goal of the project: Illumos will replace all proprietary code that is still in OpenSolaris by open source code. More information can be found in the announcement slides [PDF].

Although its name suggests something else, OpenSolaris has never been completely open source. Some critical components are only available as binaries because of copyright issues. The most critical part is the internationalization (i18n)) framework of libc, but also the NFS lock manager, portions of the cryptographic framework, and numerous critical drivers are proprietary. This presents a lot of challenges to downstream OpenSolaris distributions, such as Nexenta and Belenix. We only have to look at Darwin, Apple's open source part of Mac OS X, to see what the effect can be of some critical components that are closed: Darwin never really took off as an independent operating system.

So the first short-term goal of Illumos is open sourcing all of OpenSolaris, or more correctly: all of OS/Net (ON), which is the OpenSolaris kernel, C library, drivers, and some basic commands. Illumos will track OpenSolaris ON closely, but will replace all closed bits by open source alternatives, while still staying 100% ABI compatible. Right now, Illumos libc is completely open: Garrett developed libc_i18n by borrowing code from FreeBSD, picking up a little from NetBSD, and finishing it with his own code.

At the moment, Garrett's code is the only one that has been integrated in Illumos, but there are a number of other projects that are near to integration. For example, Anil Gulecha developed GRUB and boot graphics, Steve Stallion and David Gwynne have been working on some open source replacements for drivers, Roland Mainz, Olga Kryzhanovska and Rich Lowe have replaced some user-space utilities, and Jörg Schilling has been working on archivers.

But even when all these projects get integrated, there is still the issue that only Sun's proprietary compiler Sun Studio can currently build a bootable OpenSolaris kernel. The intention is to enable a fully open toolset, probably using GCC. So a fully open source self-hosting OpenSolaris derivative is not yet possible, but it should become a reality by the end of 2010. A preliminary version of Illumos using the closed bits and compiled with Sun Studio already boots.

A fork or not a fork?

So Illumos is not really a fork, it's more of a downstream project that is happy to contribute to upstream ON. Oracle employee Joerg Moellenkamp explains the situation like this:

When you really want to call it a fork, then it's a fork of the OS/NET consolidation, not of the kernel. I think of it as a set of changes to the vanilla Solaris kernels like they exist in the Linux world (All vendors have their own kernels with modules that aren't in the mainline kernel and nobody talks about a forked Linux).

However, the ability to fork is important for OpenSolaris, as Bryan Cantrill explains:

OpenSolaris didn't go far enough: even though the right to fork was understood, there was not enough attention paid to the power to fork. As a result, the operating system never quite got to being 100% open: there remained some annoying (but essential) little bits that could not be opened for one historical (i.e., legal) reason or another. When coupled with the fact that Sun historically had a monopoly or near-monopoly on Solaris engineering talent, the community was entirely deprived of the oxygen that it would have needed to exercise its right to fork.

So although Illumos is not aimed at creating an OpenSolaris fork, according to Bryan the power to fork is essential for the vitality of the OpenSolaris community. Jörg Schilling looks at this in an historical context:

After some years, the community still had problems to contribute into the OpenSolaris code base from Sun. As Sun did publish source and binaries for OpenSolaris on a regular [basis], nobody was interested in a fork. Then Oracle bought Sun and stopped publishing binaries for recent OpenSolaris releases and stopped talking to the community at the same time. Now more and more people started to talk about forking, but they felt helpless.

A lack of communication

Jörg is right in his description. When Oracle acquired Sun, they talked a lot about MySQL and Java, but said virtually nothing about (Open)Solaris. In February 2010, Peter Tribble complained that Oracle hadn't even mentioned the distribution in a five-hour webcast after the acquisition of Sun. And at the times they did mention OpenSolaris, it was in vague terms. For example, at the OpenSolaris Annual Meeting on IRC in February 2010, Oracle's Dan Roberts said:

Oracle will continue to make OpenSolaris available as open source, and Oracle will continue to actively support and participate in the community. [...] Oracle will also continue to deliver OpenSolaris releases, including the upcoming OpenSolaris 2010.03 release.

Almost half a year later, there hasn't been an OpenSolaris 2010.03 (which was due in March 2010); there still isn't a newer release than OpenSolaris 2009.06. Oracle didn't respond to an open letter by Ben Rockwood, a respected OpenSolaris community member. In April 2010, Oracle stopped shipping free OpenSolaris CDs. In general, Oracle's silence continued, and a lot of community members were getting fed up with the insecurity. This led the OpenSolaris Governing Board to the decision to issue an ultimatum to Oracle: if Oracle doesn't appoint a liaison who has the authority to talk about the future of OpenSolaris by August 16, the OGB will disband itself. OGB chair John Plocher explained the issues:

Without the Oracle part of the partnership at the table, there is effectively nothing for the OGB - or development community - to do. The flagship OpenSolaris distro is absent, the IPS [Image Packaging System] repositories are stagnant, the build instructions no longer work for the sources that exist, even the architectural reviews of community-developed components are being held behind Oracle's closed doors. It is as if the spirit of open, collaborative development centered around the Solaris operating system has died.

Oracle's communication blackout, combined with its disengagement from and disenfranchisement of the community has made it extremely difficult for the OGB to continue in its role of being an advocate for the collective improvement of OpenSolaris.

Oracle didn't respond to the ultimatum, and the long radio silence about the future of OpenSolaris has already taken some victims. PulsarOS, a file server operating system, has switched from OpenSolaris to Linux. The high-integrity operating system AuroraUX was first an OpenSolaris distribution but has quietly shifted to become a DragonFlyBSD derivative. And the other OpenSolaris derivatives are stagnant or only reach a small niche, with the exception of Nexenta.

The community

The Illumos project (which Garrett started about two months ago, even before the OGB's ultimatum) wants to tackle these issues, not only by writing code but also by building an independent community. In this first phase, Garrett will serve as the benevolent dictator of Illumos, but this dictatorship is a temporary measure. He will appoint some initial members for an Administrative Council, which will work on non-technical matters such as defining a code of conduct. Garrett is not only head of this Administrative Council, but also the technical lead: head of the Developer Council. This will be made up of developers with commit rights, and it is a meritocracy: anyone can join in and will be judged by their code. Development will be consensus driven, but the technical lead is the final arbiter if consensus is not possible. A process to replace the technical lead will be discussed in the future.

Nexenta is currently the main sponsor of Illumos (Garrett's efforts have been funded by Nexenta), but the goal is to have a code base that is free from the control of any company. Corporate entities are welcome, though, to contribute. About one week before the launch of Illumos, Garrett invited Oracle to participate in Illumos. He contacted Bonnie Corwin, but she told him that she simply did not know who was responsible for decisions relating to OpenSolaris. She also said that she would endeavor to find out, but Garrett hasn't heard anything back. Right now Illumos has about a dozen developers, many of them well-known people in the OpenSolaris community, working for Nexenta Systems, hosting company Joyent, Greenviolet, Belenix, Schillix, and Everycity.

Some have argued that Illumos is purely driven by emotional feelings about OpenSolaris, by people who can't stand thinking about the death of the operating system, but this is far from true. For example, Nexenta and Joyent really depend on OpenSolaris for their business. They obviously don't like that they ultimately depend on what Oracle decides to do with OpenSolaris. So from a business point of view, it makes perfect sense that they want to free OpenSolaris and create an active developer community, independent from Oracle's good will. If they succeed, these companies can be much less concerned about their business continuity.

Of course, they have much less development manpower than Oracle (the vast majority of OpenSolaris development has always come from paid Sun/Oracle engineers), but they have some really good ex-Sun developers, like Garrett D'Amore (Nexenta's senior director of engineering), Richard Elling (Nexenta's senior director of solutions engineering), Bryan Cantrill (Joyent's vice president of engineering), and so on. Other notable backers of Illumos are Dennis Clarke, who is the founder of the Blastwave project, and Jörg Schilling, who built the first OpenSolaris distribution (Schillix) even before Sun did. By uniting manpower in an open source community, they can tackle their shared concerns together.

From source to distribution

This isn't the first time that an external code repository was created by the OpenSolaris community. For example, the Genunix web site that was created in 2006 at the request of the OpenSolaris Community Advisory Board (the precursor of the OpenSolaris Governing Board) maintained an independent SVN repository for some time, and they also have some Mercurial repositories, for instance for OpenSolaris OS/Net. The latter is an active clone that tracks Oracle's repository.

However, the repository of Illumos is the first one that will be backed by substantial development by non-Oracle people. This allows OpenSolaris distributions that adopt Illumos as their base to depend less on Oracle. Illumos is also insurance against Oracle pulling the plug on OpenSolaris: if Oracle stops supplying the source code to OpenSolaris, distributions can still build upon Illumos. Of course, the project would then become an OpenSolaris fork by necessity, and it's uncertain whether it has the critical mass to continue without Oracle.

For now, it's just a project of open sourcing the whole OS/Net code, but in time Illumos also wants to become a repository for experimental innovations and patches that are not accepted by Oracle. For instance, integration of other architectures like S390, PowerPC, or ARM could be possible in Illumos, because OpenSolaris has no interest in other architectures than x86/x86_64 and SPARC.

All source code that will be integrated into Illumos will first be restricted to BSD/MIT licenses and CDDL (Common Development and Distribution License) with a signed SCA (Sun Contributor Agreement), which gives Sun and the contributor joint copyrights on the code. Other possibilities for licenses are still under investigation, and a critical requirement is of course that the license must be acceptable for merging back into the upstream OpenSolaris code. Illumos is looking specifically at the Apache 2.0 license, because, in Garrett's words, "it offers the freedoms of BSD/MIT without the baggage of copyleft, while still providing a protection against submarine patenting." Moreover, Garrett pinpoints one property that he prefers in any license used in Illumos:

Ideally I'd like it also affords the same privileges to everyone else as to Oracle. This makes the CDDL with SCA somewhat problematic, so I am encouraging folks to look at alternatives.

Illumos is focused only on ON, so it's not an OpenSolaris distribution. However, the project may expand in the future and host some affiliated projects, such as Illumos distributions. For example, there could be a binary ISO with a minimal Illumos system to bootstrap a real Illumos distribution. Although Garrett is a Nexenta employee, Illumos is not focused on Nexenta: for example it imposes no specific package manager, although it has a preference for IPS (Image Packaging System), the OpenSolaris package management system. IPS manifests are the canonical data format in Illumos, but there's a tool to generate .deb files from IPS, which Nexenta uses for its OpenSolaris/Ubuntu hybrid. This system can be extended to generate RPM, SVR4, or any other type of packages from the IPS packages. This is a choice that each derivative distribution can make.

Too little, too late?

In the Linux world, Illumos wasn't received with much enthusiasm. For example, according to Joe "Zonker" Brockmeier OpenSolaris should really die, and he calls Illumos "a misguided attempt to keep the Solaris legacy OS alive for another generation". While Zonker rightly questions Sun's strategy with respect to OpenSolaris, your author finds this death wish to be a bridge too far. But no one can deny that Illumos will face a lot of issues.

A project to liberate OpenSolaris probably should have happened five years ago when Sun released the bulk of the Solaris system code. If Illumos had started then, right from the start of OpenSolaris, the closed bits would have been replaced by now, with less hurdles for OpenSolaris derivatives and a more open community as its consequences. So one could ask the question: is Illumos coming too late? The OpenSolaris community has already lost a lot of users and derivatives because of the uncertain future of the distribution, and only time will tell whether Illumos can still change this downward trend.


(Log in to post comments)

Illumos: new hope for the OpenSolaris community?

Posted Aug 12, 2010 12:29 UTC (Thu) by ctwise (subscriber, #10952) [Link]

Based on yesterday's roadmap from Oracle it looks like Illumos will have to become a fork. Oracle is apparently making all new development proprietary. So whether Illumos wants to fork or not, they become a fork the instant Oracle makes their next release.

If the Illumos developers truly believe that the Solaris kernel offers something that the Linux kernel does not, then they should be prepared to take on the entire kernel development process.

Illumos: new hope for the OpenSolaris community?

Posted Aug 16, 2010 7:48 UTC (Mon) by hein.zelle (guest, #33324) [Link]

Could anybody summarize what it is that makes opensolaris worth maintaining in this situation, e.g. compared to linux as an alternative?

I hardly know solaris apart from working on a sun mainframe for some time. Are there things opensolaris is particularly good at? Is it a matter of familiarity that makes people want to use that system? Other technical or usage merits? Available software that somehow can't work on linux or alternatives?

Illumos: new hope for the OpenSolaris community?

Posted Aug 16, 2010 9:35 UTC (Mon) by CChittleborough (subscriber, #60775) [Link]

OpenSolaris has some really nice features, including:
- ZFS, an advanced file system with an integrated storage manager
- DTrace, a universal tracing tool
- Doors, the best IPC facility out there for Unix/Linux
- Service Management Facility
- Solaris Containers
(Wikipedia has articles about all of these. The article about Doors is named "Doors (computing)". Disclosure: I started that article.)

I'm not sure about SMF, but IMO the other items in that list are better than their Linux equivalents (at least for now -- when btrfs is officially released, I expect it to outshine ZFS).

Features like these are aimed at people running high-end servers, not desktops. If you ever have to use Solaris, as opposed to administering it, the first thing to do is install the Gnu userland utilities.

Illumos: new hope for the OpenSolaris community?

Posted Aug 16, 2010 20:52 UTC (Mon) by hein.zelle (guest, #33324) [Link]

Thanks. I forgot about ZFS, should have thought of that with all the btrfs talk. I'll take a look at the other points.

> Features like these are aimed at people running high-end servers, not
> desktops. If you ever have to use Solaris, as opposed to administering
> it, the first thing to do is install the Gnu userland utilities.

That's indeed what I remember doing when I was working on that Sun machine - notably the file utils, tar and find.

Illumos: new hope for the OpenSolaris community?

Posted Aug 17, 2010 3:42 UTC (Tue) by jtc (subscriber, #6246) [Link]

Anybody know how likely it is that Oracle could decide to sue the companies working on Illumos (following the same pattern they are with Android/Java)? Might they have patents that they might be able to interpret as being infringed upon by this project? (I know it's a different situation than the Java/Dalvik issue, but it seems that some pretty far-fetched reasons for patent infringement claims have surfaced and been taken seriously by the courts in the last decade or so.)

Illumos: new hope for the OpenSolaris community?

Posted Aug 24, 2010 10:44 UTC (Tue) by Duncan (guest, #6647) [Link]

I'm by no means either a lawyer or a license expert, and even less so on (I forgot the name) the license Sun used for OpenSolaris, but from what I've read on the topic (partly in the context of the ZFS GPL2 license incompatibility, thus making it Linux kernel licensing incompatible), one thing they did that the GPL2 didn't do, is include language specifically designed to address patents. While how far the fork could diverge and remain within that safety net I'm not going to even venture a guess at, it does seem they should be safe enough at least as long as they stay relatively conservative in their "creativity". Of course, if that's indeed a limiting factor of the patent coverage, it's something Oracle could well be counting on to limit viability, longer term.

I'd certainly do well my legal consulting before I ventured to use the code for other purposes, however, even if explicitly covered by the same license.

(That's where Google got into trouble, as they explicitly chose NOT to go with Sun's chosen GPL+classpath-exceptions, since it would limit people building proprietary code on it and they didn't believe that was commercially viable, while attempting and failing to come to an agreement with Sun on a commercial Java license, as well. So Google's not even covered by the implied patent coverage of the GPL2. And given that they /did/ try to negotiate a Java license and did a reimplementation when that failed, Oracle would at least at at first glance have a genuine reason for the treble damages for deliberate infringement claim that they're making. FWIW, I don't believe Oracle's as much a bad guy here as they're being made out to be, particularly as the case could be seen as direct support for the GPL, given Google's explicit choice NOT to abide by the terms of the GPL under which Java was open sourced. That's also likely why OIN, the SFLC, etc, aren't speaking out. Google clearly took liberties with the code and license here, and arguably Oracle has every right to nail them for it. OTOH, it may well be that Google clean-roomed it well enough that the copyrights don't apply and avoided the specifics of the patents. I don't think anyone outside of Google itself really knows how well they did that, and they may have simply decided it was an untested legal area and they'd take their chances. That would appear to be what the court case is likely to turn on, from my specifically not professionally qualified viewpoint. It certainly doesn't seem anything like another SCO to me, nor, really, does there seem any indication Oracle is headed that way, because their OpenSolaris repositioning could in fact be seen as choosing to more directly support Linux at least on the open source front, as well, while keeping Solaris more proprietary. Time will tell, I guess.)

Duncan

Illumos: new hope for the OpenSolaris community?

Posted Aug 25, 2010 20:18 UTC (Wed) by foom (subscriber, #14868) [Link]

Google used Apache Harmony for their class library, they didn't implement it from scratch.

If people in the Open Source community really think it's just fine and dandy to go after someone for patent violations when they use Apache-Licensed software but not GPLv2 licensed software, I don't know what kind of principals they're basing that on...

Google didn't take any "liberties" with Java's code and license, they implemented a *brand new* virtual machine which doesn't run Java bytecode at all (Dalvik), a Java->Dalvik translator, and ran the Apache Harmony Java class libraries through the translator.

But even if they did actually implement a new JVM from scratch, (like, say, GCC did with GCJ), I still don't see how you can say that they don't deserve any sympathy from the open source crowd.

I can see no argument that they deserve to be "nailed" for what they did, or even for what they might have done but didn't actually.

Illumos: new hope for the OpenSolaris community?

Posted Aug 25, 2010 21:26 UTC (Wed) by Trelane (guest, #56877) [Link]

Could you kindly point out specifically who and where (with relevant quotation and citation) someone claimed that it was "just fine and dandy to go after someone for patent violations when they use Apache-Licensed software but not GPLv2 licensed software"?

Thanks!

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds