Virtualisation And A Peek Over The Fence At Unix

I am very much a Linux guy although I used to do a lot of Solaris and even a bit of SCO Opensewer for my sins. Not having looked at anything Unix for a while I thought I should take a look and see what is going on in the world of Unix OSes, rather than just following SCO’s stupid Unix related lawsuits. This would also give me a chance to play with virtualisation a bit, which has to be fun.

In this article I will take a look at VMWare Player, OpenSolaris and FreeBSD. This is not intended to be a review of any of them. Just a quick first impression.

Contents:

  1. Lets Get Virtual With VMWare Player
  2. OpenSolaris
  3. FreeBSD
  4. What’s Going On?


Lets Get Virtual With VMWare Player

After a quick look at virtualisation options, it came down to Oracle (formerly Sun) VM VirtualBox or VMWare Player. VirtualBox seemed likely to be the most tractable but VMWare is the one that has traction in the industry so I went for that. Both of them wanted to insert modules into my Linux kernel, which I was not keen on as I have had trouble with nVidia drivers doing that, so I decided that I would use Windows as the platform, at least for now. I really don’t like to take risks with my day-to-day computing environment, which is Linux, and I didn’t have a spare PC around powerful enough for this.

VMWare Player

The unusual suspects line up in VMWare Player.

VMWare also has a free product called VMWare Server, which will run VMs in the background. This is probably something to play with at another time as it is a stepping stone to their more enterprisey products live vSphere.

After registering myself with VMWare and selecting the options for “I am only interested in free products” and “I do not wish to be called by a salesman”, I downloaded VMWare Player and VMWare Converter. Installing both on 32 bit Windows XP Pro was as easy as pie. As with Linux, it links to the kernel so a reboot was required. I quickly realised that I could only run 32 bit (or less) OS images due to my 32bit Windows version but apart from that it was fine.

OpenSolaris

Oracle makes Solaris 10 available for free download for personal and evaluation use but this apparently comes without patches, except as a time limited trial of the support service, and there is some concern about its ongoing use in this way. Rather than dig into this I decided to go for OpenSolaris, which is the Open Source version. This is still proper Solaris with the full Solaris userland, as well as a lot of GNU stuff. It is what Oracle will be basing Solaris 11 on. In the long term it will probably have a similar relationship to Oracle Solaris as OpenSUSE has to SUSE Enterprise Linux.

The latest stable OpenSolaris release is 2009.06 and it is available as a prebuilt VMWare image from VMPlanet. That was a corner I was happy to cut out at this stage as I was keen to play with the OS itself rather than spend hours pressing Next, Next, Next. The image was accepted by VMWare, which identified it as Solaris 10. VMWare Player does not know about OpenSolaris, of which more later. I gave it 580MB RAM, which is what VMWare recommended for Solaris 10.

Boot

OpenSolaris boots

As I remembered from the old Sparc days, OpenSolaris is not very verbose when it boots. This looks nice but sometimes you wonder if it is doing anything. It displays a back and forth moving indicator but this isn’t tied to any underlying process. In fact, the boot may have stopped with an error. You won’t know until you press a key and it drops you into text mode. Personally, I prefer a very verbose boot. It may look ugly but if anything goes wrong you will know what happened. Whatever you do, the animation should always stop if the boot has stopped, otherwise how is the user going to know anything is wrong? Anyway, OpenSolaris boots very slowly to a nice graphical login screen which I assume to be GDM as Gnome is the only Window Manager present.

Login

You can’t log in as root. You have to login as a user and “su” to root when you need to. This seems like a sensible innovation although sudo is not set up, which is what I would have expected in an environment that discourages use of root. Of course, sudo is installed and you can add users to the sudoers. Logging in as the user gives a pretty nice looking Gnome desktop, eventually.

Solaris Screenshot

OpenSolaris screenshot, showing the package manager and VMWare window, just to prove I didn't steal the screenshot off Wikipedia.

Starting a terminal reveals that the default shell is bash, which is a relief if you ever had to suffer csh, ksh or sh. It did make me realise that the GNU userland was going to make this feel a lot less like Solaris than it used to. That’s probably no bad thing. Those GNU tools were mostly written by people frustrated by the original Unix ones and they are a lot better. Many Solaris admins used to manually load a ton of GNU tools onto their Solaris boxes anyway. This just saves everybody the effort.

The first thing OpenSolaris wanted to do was load an update, which it signalled from the System Tray, just as on most Linux desktops, so I let it get on with it. This involved making a new bootable entry in GRUB (yes, it uses GRUB) in the manner of a Fedora flavoured Linux. The new entry became the default one. I didn’t see the need but this later turned out to be very worthwhile. I rebooted, slowly. Logged in, slowly. And then briefly explored the desktop and had a look in the package manager. It wasn’t very exciting but it did offer OpenOffice, which seemed sensible. The mail client is Thunderbird, which I approve of, rather than Evolution, which I don’t care for.

Running “uname -a” identified the kernel as SunOS 5.11, which seemed a little premature.

VMWare Tools

VMWare Tools are a small package of tools that install into the guest OS making it more cooperative with VMWare. They let the mouse pass in and out of the guest OS without you needing to toggle it manually. They improve memory sharing and some other low level stuff.

Installing these was problematic. To be fair to VMWare, the tools are written for Solaris 10 not OpenSolaris so there was no reason to expect that it would work.

Mounting the tools ISO was initially problematic and I assumed that the Automounter was dead (I never got on very well with the Automounter) but this actually seems to be due to the way the virtual CDROM on the VM was set up. Putting it back to normal and rebooting fixed that. I unpacked the installer for the tools into /tmp and that is when the trouble started.

First up the tools would install but not configure because the version of X11 is now 7.4 and Solaris 10 only had 7.1 so the tools don’t have a version for that. That was solved by going into the tools install structure and symlinking 7.1 to 7.4. I also had to make a folder for where Solaris 10 would have installed CDE as the configuration process writes to that. That was a long shot but it worked, or rather it configured successfully. That’s when I hit the second problem…

After a reboot X11 was severely corrupted, not at the GDM login screen but when it tried to start the user’s desktop. Clearly it was trying to use a video mode that VMware could not emulate. After a nasty digression that briefly rendered the VM unbootable, I found that you have to set the screen resolution in the VM settings to a fixed resolution rather then leave it as automatic. After that the desktop started and amazingly the VMWare tools worked. I could pass the mouse in and out of Solaris without toggling. The VMWare Toolbox didn’t want to run though…

Solaris screenshot

Solaris is not happy!

Now that’s the Solaris I know and love! Clearly they need to work on backwards compatibility a bit.

The Nasty Digression

I actually ran into something rather nasty. When the X11 was corrupt, I initially didn’t realise that I could get out of it by SSHing in from Windows and rebooting from the shell, so I powercycled the VM. This rendered it unbootable. All it would say is that it couldn’t start the console but it didn’t say why. It wanted me to fix it in single user mode but I had no idea what it wanted me to do. I rebooted and chose the first of the GRUB boot options. This worked. The system booted, made me reload the patch, made a third boot entry and I was back in business.

Even so, it didn’t inspire confidence. In these days of robust journalled file systems power cycling a machine should not render it unbootable unless it was right in the middle of installing/upgrading a very critical component. Even Windows is able to survive a reset pretty much all the time. (Insert your own joke here. I can’t be bothered.)

Feelings

My feelings about Solaris are mixed. It is very slow and very heavy. The desktop is nice but that is Gnome not Solaris. CDE is gone (Hooray! I always hated that. OpenWindows was faster and vastly easier to use.) The combined GNU and Solaris userland will be popular. As always, users will need to take care not to get mixed up. (e.g. Which version of “tar” am I running today?). The package manager looks nice and simple. The packages still have stupid names. All in all, if I was a Solaris user I would be looking forward to getting my hands on an official release. Combined with OpenOffice it is a credible desktop. Gone are the days where a Solaris user needed a Windows PC just to do Office stuff. Is there anything here to tempt a Linux user across? Maybe, but I haven’t seen it yet.

FreeBSD

FreeBSD is the BSD variant I have heard mentioned the most so it was the one I decided to try. I found a prebuilt 32bit VMWare image of FreeBSD 8.0 from Thought Police so I downloaded that. Other images were described as “minimal” but this wasn’t. VMWare accepted it with out complaint, although it was in a slightly older image format. It came configured for 256MB RAM which I left as it was.

Boot

The boot could not be more different than Solaris. It was very verbose and very fast; scrolling detailed diagnostic information up the screen faster than there was any hope of reading it. I know some people find this messy but I like it. It means that if it does fail you will have a screen full of good clues as to what went wrong. Once booted you get the standard text mode login prompt.

Login

The system has no qualms about logging you in as root. Logging in gives you a page of information about where to find help and then drops you at the command prompt. The shell seems to be csh although it may well be tcsh in disguise. Either way, I still don’t like it. Even Solaris has thrown csh overboard now. Isn’t it time to put the final nail in its coffin? The rest of the userland is BSD and is in no way objectionable and mostly familiar to a Linux user.

So what next?

A quick poke around shows no Perl and no X11. This may not be a minimal install but it is still pretty basic. Also the network hasn’t come up. Or rather it has but it hasn’t done DHCP. Running “dhclient le0” manually gets us on the network. Sorting it out to do DHCP automatically can wait. Lets steam on.

I would like X11 and VMWare tools. The VMWare tools installer is written in Perl by the way so we are going to need that. At this point I do a bit of Googling and discover that extra packages can be installed with pkg_add. “pkg_add -r perl” and “pkg_add -r bash” demonstrate that this works easily enough. In fact, it was so easy that I didn’t visit the full package handling interface straight away.

FreeBSD command prompt

It is time to get old skool with FreeBSD. Note: Those Window decorations are from VMWare. FreeBSD is in righteous text mode.

Another thing that was not running was the SSH server. I guess this was off for security reasons. This gave me a reason to visit the system configuration utility, sysinstall. This is very much like SUSE’s YaST in that it combines many admin tasks in one interface. I like that. Even in text mode it is easy to use. This is where you find the actual UI for package management.

FreeBSD configuration utility

System configuration utility: Old Skool interface but useful.

Getting X11

My mission now was to get X11 without turning the system into a slug like Solaris. “pkg_add -r xorg” seemed almost too good to be true but it worked. Actually, it took a few attempts to get it to download everything due to FTP timeouts but it came good in the end. startx worked but dropped you into TWM.

TWM: The (original) Window Manager. I don't mind old skool but TWM is pretty much impossible to use for anything. It only knows one mouse button!

TWM is not my idea of fun so “pkg_add -r xfce” was the next port of call. This installed a really ancient XFCE but it worked. Comically, it had an old Netscape button on the launcher. “pkg_add -r firefox” drew a blank but Seamonkey installed fine, albeit a little out of date, and it was easy to update the button to make it launch that instead. (BTW, I actually like and use Seamonkey. Firefox and Thunderbird are good but I like the integration.)

Still old skool even in X11: an ancient but perfectly usable XFCE. Also a working VMWare Toolbox putting Solaris to shame.

One advantage of such an incredibly old Window Manager is that it really flies. Back when that was written 256MB of RAM was more than you could hope for. With no pointless animations each action is performed almost instantaneously. This is no Gnome.

We have also saved on weight by not installing XDM. I guess it would be harmless to do so but there is no great pain to logging in in text mode and typing “startxfce”.

VMWare Tools

Now that X11 and Perl are on the system installing VMWare Tools should be easy. Mounting the tools is a matter of doing “mount /cdrom” (no Automounter here) and then unpacking the package to /tmp. The install failed the first time citing a prerequisite package it needed. One pkg_add later we were ready to try again and it worked. After restarting X the mouse pointer passed in and out as required.

Feelings

I like FreeBSD. Everything is very 20th Century Unix, which is fine because I am used to that. I don’t think that a less experienced user would like it in this particular form but I am pretty sure that it can be installed with X11 out of the box. This image was clearly intended for use as a server. That said, I do believe in having a minimal X11 desktop, or at least the X11 libraries so that graphical apps can be run remotely, available even on servers.

The speed is truly impressive. It is obviously faster than any Linux I have seen recently, even Linux with a lightweight desktop. In fact, what it reminded me of most was my first ever Linux, SuSE 5.2 from March 1998. That isn’t necessarily a bad thing. Would I ever switch? Put it this way: If Linux were to follow Solaris lumbering down the route of heaviness then I am pretty sure that I could run FreeBSD (with Bash as my default shell and a more modern XFCE) and be perfectly happy. After all, I practically live in Seamonkey and OpenOffice anyway.

What’s Going On?

Clearly Solaris is a slug (at least on low end hardware) and Linux is not as fast as it used to be. The question here is Why? What are they getting for their extra CPU cycles? The answer always cited is “enterprise features” but do these enterprise features have to slow a system that is not using them? What about Window Managers and Desktop Environments? Why do some of them dwarf the operating systems they run on and even the applications they run? Are we enabling too many things by default which most users don’t want? What does BSD not do to make it so much faster? Is it anything vital? Who has the right feature/performance point?

I don’t know the answers to any of that but I do think that now is a great time to salute the POSIX specification, The Open Group, X.Org, the Regents of UCB, Richard Stallman, Sun/Oracle, Novel, IBM and Linus Torvalds for giving us a choice. We have a choice of Kernels and a choice of userlands with a choice of shells, a choice of X11 implementations and a choice of Window Managers. We have all these choices linked by standardised specifications so that we can mix and match more or less as we see fit. We also have a choice of licence models, a choice of support arrangements and a choice whether to pay for software or use free alternatives.

Here’s to choice!

Advertisements

April 20, 2010. IT, Sensible, Virtualisation.

Leave a Comment

Be the first to comment!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback URI

%d bloggers like this: