2005-11-06

OpenSolaris + Ubuntu = Nexenta

For years I've always bought the latest Sun Solaris operating system release hoping it would be better than the last. It doesn't even seem to gradually get better. It seems like every improvement they make is offset by some other part which has become worse.

So, they finally decided to infuse some new blood into the system by releasing most of the system, as OpenSolaris, under their CDDL open source license. CDDL is not exactly a very good open source license, mind you. But does qualify as open source nonetheless. I can assure you that I won't be abandoning my Linux systems for OpenSolaris. But I am very glad to see Solaris finally being improved in a way that makes sense.

Aside from the OpenSolaris project itself there is a recent spin-off called Nexenta. Nexenta seems to me to be the perfect solution to the problems with Solaris. Nexenta is based on Ubuntu Linux but they have replaced the Linux kernel with the OpenSolaris kernel. Ubuntu Linux is derived from the Debian Universal Operating System. Debian is based on the GNU system. Debian doesn't mandate any specific kernel or applications although it currently favors Linux. Instead Debian is built around the idea of alternatives. You can swap out components to fit your business or personal needs around this basic GNU system. As such, Debian currently provides Linux, FreeBSD, NetBSD, and GNU Hurd kernels and roughly 18,000 applications to run on them. If Nexenta succeeds then Debian would provide a fully functional OpenSolaris kernel in a future release. Nexenta has simply built packages for the OpenSolaris kernel and system utilities which integrate into the Debian OS.

I think that Sun should take a long hard look at what Nexenta is doing and strongly consider pursuing a similar course. Debian truly is the way forward. Debian provides a rock upon which all other operating systems can be built.

This is idea of building a GNU system on top of Solaris is nothing new, really. Indeed, before Linux, much of GNU itself was built on SunOS and Solaris. But now the whole process can be legal and formalized into outside projects. Since the late 1980s nearly everyone who purchased a Sun system would go through a several day long ritual of augmenting/replacing the Sun software with GNU software. To the extent that Sun eventually started including much of GNU on companion CDs. Many of the GNU utilities are superior to Sun's own software. Sun has areas where they excel. However, they are but a few people in a vast sea of developers working on this sort of software. Most of the Solaris applications have become outdated as they focused on niche areas. Meanwhile, the rest of the world has continued developing, refining and often replacing those applications with better versions.

Sun has promised great things by moving their desktop away from CDE (Common Desktop Environment) on to the newer GNOME. Solaris 10 included GNOME as its default work environment. Or, at least enough of GNOME to make you scream, "What were they thinking when they did this!" Sun neglected to port many important features from CDE to GNOME. Worse, GNOME on Solaris 10 had nearly all of the good GNOME software replaced with lousy Sun Java software that barely even functioned at all. You might wait several minutes for a simple note pad or calculator to load as all of the Java infrastructure bootstrapped itself behind the scenes. The reason they did this, I've heard them claim, is to delay porting those programs to Solaris and/or their SPARC CPU. They wanted to get the infrastructure correct before they attempted to port the applications.

But I think that misses the point. They shouldn't have to port thousands of applications to Solaris. Nearly all of these applications are written according to POSIX, Single UNIX Specification, and Linux Standard Base. These are ISO standards, like it or not. Solaris should be changed to support those standards and then all of the applications will work mostly unmodified. You might need little tweaks here or there. And if those are common tweaks across many applications then a library can be built to abstract the differences.

And this is exactly the sort of environment Debian provides. The net result is that, with few exceptions, you can run the same program from the same Debian package on any system regardless of which kernel is in use. There is no porting required at all because all of the various kernels have binary-compatible programming interfaces. In effect one program runs everywhere.

I do wish Sun could find some way to release Solaris under the GPL license but perhaps that will come with time. It's not as simple as one might think to release something under GPL. They probably don't even have sufficient legal rights to the code to make that leap. However, perhaps with time, problematic code can be replaced. Maybe it never will. Getting the ideas behind the code out into the public mind is a great start.

Labels: ,