October 13, 2006

Nexenta combines OpenSolaris, GNU, and Ubuntu

Author: Joe 'Zonker' Brockmeier

What do you get when you combine OpenSolaris, the GNU utilities, and Ubuntu? Nexenta -- a GNU-based open source operating system built on top of the OpenSolaris kernel and runtime. I took the Alpha 5 release out for a spin to see how well it's progressing. It might sound like an odd combination, but after more than a year of development, it actually works well, and is shaping up to be a very interesting operating system.

Nexenta's Alpha 5 release is available as an installable ISO, live CD, or VMware image. I opted for the installable ISO.

I tested Nexenta under VMware and on a Pentium 4 notebook with 1GB RAM, an ATI Radeon R250, Intel sound card, built-in RealTek Ethernet, Intersil Prism wireless, and 60GB hard drive.

The Nexenta installer is a basic text-mode installer that's similar to Ubuntu's old text-mode installer. It asks a couple of questions about partitioning, the time zone, networking, and user setup, then copies files for about 20 minutes. I've installed various releases of Solaris and OpenSolaris over the years, and I was pleased that Nexenta is much easier to install than its Solaris cousins.

The only sticking point is the disk partitioner. Nexenta uses a less-than-friendly text menu partitioner that's even less intuitive than fdisk. If the user sticks with the default "take over the entire disk" option, it's easy as pie, but manual partitioning is going to be a bit unpleasant for anyone without prior Linux and/or Solaris experience.

Device support

The only device that Nexenta didn't detect and configure at all was my wireless card, which isn't surprising, since wireless support under OpenSolaris is not as far along as Linux's wireless support. The OpenSolaris kernel seems to have only partial support for the built-in RealTek Ethernet. It worked under Nexenta, but was only configured for half-duplex instead of full-duplex mode -- but the NIC works in full-duplex mode just fine under Linux.

The upshot of being stuck with half-duplex is that network transfer speeds were terrible under Nexenta on my laptop when compared with Linux. Copying a 538MB ISO between my desktop and the laptop usually takes a few minutes when I'm running Ubuntu on the laptop -- but when using Nexenta, it took much, much longer.

After the install, there wasn't much left to do. Nexenta had detected my peripherals and had configured sound and video correctly. I was impressed, since more than one Linux distro has had trouble with correctly configuring video on the laptop. The default resolution for the laptop is 1400x1050, and a lot of distros want to default to 1280x1024 or even 1024x768.

The OS has good support for USB devices, though the kernel doesn't seem to support as many filesystems as Linux. Case in point -- I can connect my HFS+ formatted iPod to Ubuntu and listen to MP3s stored on the device in Rhythmbox or amaroK. On Nexenta, I can see that the iPod was detected by checking the dmesg output, but Nexenta doesn't mount the filesystem.

However, Nexenta did just fine when it came to mounting the memory card from my camera in a USB reader, and also had no problems with adding a USB mouse in the middle of an X session.

It looks like support for CD burners is also a bit behind what Linux offers. Nexenta includes CD- and DVD-burning capabilities via Nautilus, but it didn't recognize my CD burner, which has always worked fine with Linux distros.

When Solaris and GNU meet

From the end user's perspective, the desktop environment is familiar. Nexenta uses a vanilla GNOME 2.14.1 install, though you should be able to install other desktops on the system. Nexenta includes the kubuntu-desktop meta-package, but it fails to install due to a bunch of unmet dependencies.

With the default install you have GNOME, Firefox, OpenOffice.org, Rhythmbox, Totem, Gaim, and other desktop productivity applications that you'd expect under Linux. You also have the system management utilities that you have with Ubuntu and GNOME -- Synaptic for managing packages, the Network Settings applet, User and Group applet, and so forth. Like Ubuntu, Nexenta uses sudo for administration, so you need to provide your user password rather than the root password to perform administrative tasks.

Though Nexenta's package repository isn't as complete as Ubuntu's or Debian's, it does have a good collection of applications available using Synaptic or apt-get. I checked the repositories and was even able to install Macromedia Flash, which I didn't expect to find. If the Sun folks are really interested in luring Linux users over to Solaris or OpenSolaris, they should take a cue from Nexenta and adopt APT and dpkg for their package management.

Things are a little different under the hood, when compared with Linux. For example, Nexenta's directory structure is slightly different than your average Linux distro's. Users' home directories are found under /export/home rather than /home, and Nexenta includes a few top-level directories you don't have under Linux, such as /kernel and /devices. Device names are different, and services are managed using the svcs utility.

Nexenta also mixes the standard GNU utilities with Solaris utilities. Utilities like ps, top, and ifconfig are the Solaris/Berkeley variants, while some utilities, such as procinfo, sar, and iostat, are not available at all. This is probably because many of the tools, like the sysstat package that includes sar and iostat, are Linux-specific.

Yet the default shell is GNU Bash, and the majority of utilities are the GNU versions. Nexenta also includes the standard vi by default, rather than linking vi to Vim as Ubuntu and many other Linux distros do. Vim is still included in the default install, though.

I noticed that many of the man pages for utilities are missing from Nexenta, but that's probably just because the system is still in early development.

On the plus side, Nexenta includes one of the Solaris/OpenSolaris killer applications, DTrace. DTrace isn't of much interest to end users, but it's a great application for sysadmins and developers who want to observe the operation of applications or the system itself in great detail. I'm not a DTrace expert, so I downloaded a few scripts from the OpenSolaris DTrace pages, and they ran just fine under Nexenta.

Nexenta also provides access to the Zones feature found in Solaris/OpenSolaris, which provides an easy way to set up and manage multiple Nexenta environments on the same server. It's not difficult to set up a Zone following the documentation on the Nexenta Web site, and it shouldn't take more than half an hour to get a virtual host configured and installed.

Is Nexenta worth trying?

Nexenta is still considered alpha software, but I had very few problems using it. Based on my experience, Nexenta is stable enough to use every day, if you don't mind a few rough edges.

From the desktop user's perspective, Nexenta really doesn't offer anything over using Ubuntu. It has a lot of the same features, but falls down a bit on hardware support and package selection.

On the other hand, if you're a developer or want to try out DTrace and Zones, then Nexenta is a compelling operating system -- and probably a bit more fun to use as a workstation/desktop OS than OpenSolaris.

It's a shame that the licensing issues prevent porting DTrace and Zones to Linux, but until that's sorted out, Nexenta provides the most user-friendly OpenSolaris-based OS that I've tried. I won't be switching my main workstation to Nexenta, but I do plan to keep the Nexenta image available under VMware Server.

Click Here!