I have been getting both interested and confused by the Solaris ecosystem recently. A lot has changed since Oracle bought Sun, but they still have a lot of excellent code. In many ways, I am more attracted to Solaris than to GNU/Linux because it has a clean, neat kernel with excellent performance, produced in a well-organised way, and offering a slightly smaller set of drivers with enterprise-quality. All the time we spend thinking about Xeons and Opterons, we forget that Sun has some serious expertise in the ultra high-end sector with their SPARC processors in some (old) top supercomputers and large clusters. Their ZFS filesystem is the most advanced filesystem for datasets between 1–500Tb, and the Solaris kernel is engineered for matching scalability and handles large multiprocessors very well. Maintainability, bounded worst-case performance, and stability are more important than hacks for speed. On the other hand, Linux is a crazy, creaky mess; a chaotic pool with hugely varying quality, swaying and creaking under the load. For a blade, it is familiar and used widely enough to pick up the bugs, but it does not scale in the same way and offers no guarantees of performance like Solaris. That is, Linux is implemented by cobbling together enough bits and pieces to run a load of sixteen core severs on a network; Solaris actually runs on big computers with thousands of cores using fast interconnects and distributed filesystems.
The history though is complicated. I don’t think I can pretend to give an accurate representation of what went on in the past, but the upshot is that most of the things you will read about in articles from last year are gone. The old distributions like OpenSolaris are dead, as Oracle is moving development back behind closed doors. The upshot, as far I can understand it, is as follows:
The old code is still all around, for old installations mainly. Don’t assume any project you see is still being updated though.
Solaris is the upstream. Sun makes Solaris, and all code ultimately is coming from them. Solaris 11 is the current version, each release comes with source code, though the code is only made public after each release. So, Sun is releasing no new code until the next version comes out.
This is the primary distribution: the release by Sun of a server-oriented operating system.
A group called the Illumos foundation has a fork. The Solaris code is forked, and open-source components are written by this group to remove the binary blobs Solaris comes with. The result is an open source kernel, and the same foundation also produces the main open source distribution: OpenIndiana, a full system (intended to replace former OpenSolaris) with comparable quality and scope to Solaris but offering free updates and security fixes.
The kernel Illumos is releasing is the starting point for all the other open Solaris-based distributions. Various groups are doing that, offering alternatives and derivatatives to OpenIndiana, including BeleniX, and SchilliX. These are to OpenIndiana as Ubuntu is to Debian.
The other interesting thing going on is work by Nexenta to support a Linux zone. Linux has this flying-by-the-seat-of-the-pants architecture where it all kind of hangs together if someone packages a working
libcfor you with the kernel. Solaris is rather more encapsulated, enabling operating-system-level virtualisation. Applications are compiled for some interface, which the system translates into kernel calls. Solaris uses this to run RHEL applications alongside Solaris ones, and provide all you need for full virtualisation in a much lighter way than conventional virtualisation when the security of a fully-locked down virtual machine is not needed.
The upshot is: Nexenta is a corporation focussing on the use of Solaris in high-capacity storage servers, and has two current offerings: Nexenta Core Platform, a Solaris-like release using the Illumix kernel including Linux zones (a Branded Zone, or BrandZ); secondly, their money-spinner is charging for NexentaStor, a distribution built on top of the NCP. NexentaStor is actually free unless you have more than 16Tb of storage per server.
The user system they used to offer is no longer updated.
Finally, distributions are starting to emerge based on the NCP, like StormOS. The aim is offer an Ubuntu repository to NCP users with all the packages available. Some need special treatment to integrate with Solaris management commands, some need some work to compile, but most are being gradually ported in a mostly-automated way. Unfortunately, while Nexenta provides the tools and automation for this to happen on a large scale, only this one project seems to be doing it, and it is a one-man effort. (In fact, Nexenta is getting customers and hiring now, and have picked up this chap, Andrew Stormont, as well as former Sun experts.)
Nexenta itself is rather under-manned, and these could all be wonderful projects if they had some users and developers. Unfortunately, despite the difficulty of getting applications to compile and run on the insane structure of Linux, with its creaky, wacky interface, the tools we have like
autoconfmanage to do the impossible and keep it all running. So, we all stay on Linux like sheep because it can be made to work.
As far as I understand it, those are our options at the moment: An unpatched express edition of Solaris itself; OpenIndiana or one of its variants which provide all your favourite software like KDE by porting to a Solaris userland; or a Nexenta platform with a Solaris kernel but offering a zone with the same GNU userland as GNU/Linux.
Efforts at offering really large selection of good software on non-Linux open source platforms has largely failed in the past, for the simple reason that most software is written for the GNU environment, so getting it to work on anything else takes work. FreeBSD is the only real success story, because they have a large enough community to deal with the mess of maintaining patches for ports of every common piece of software. Generally, this approach has not worked much in the past. (For various reasons, I am not a huge convert to FreeBSD.)
The alternative approach is to use GNU environment on top of some other system instead of using it as GNU/Linux. (Note this is the Nexenta approach.) For example, Debian GNU/Hurd, which never got going; GNU/*BSD has been tried various times, but without much success. Recently however, Debian GNU/kFreeBSD (the the k[ernel of] FreeBSD) has excitingly gained enough momentum to actually become usable, so there is in fact this one other alternative which could lead to an offering of a huge quantity of software on top of a non-Linux kernel. What Nexenta offers is an encapsulated GNU environment on top of Solaris using its virtualization features, but will not offer a distribution like GNU/kFreeBSD because of legal issues with
I have tried to like the post as thoroughly as possible in my aim to produce a useful overview of the current landscape. What I cannot offer is any recent use of Solaris, so take it all with a grain of salt: this is what I felt I needed to look up to get started with knowing where to go.
So, I know what the next operating system I will install is, in any case. There is suddenly some relative momentum here, and something great could come of it. Apologies for my Linux bashing—you know I love it really.