Virtualisation And A Trip To The Zoo

In this article I will continue my playing with VMWare by trying out various miscellaneous operating systems. I won’t bore you with versions of Unix or Linux. I want genuine exotic species of kernel for my zoo, although I am not going to be digging into the kernel behaviour for now.

You will find no Windows, Linux, BSD Unix or SysV Unix here, and it isn’t all Posix based either. You may be surprised by what is out there for free download…

Contents:

  • Minix 3
  • ReactOS
  • FreeDOS
  • Plan 9 from Bell Labs
  • Syllable Desktop
  • AROS
  • Microsoft Singularity (unsuccessful)
  • Haiku
  • FreeVMS

Minix 3

What Is It?

Minix is famously the OS that inspired Linus Torvalds want to write Linux. It started life as a teaching and research tool: an OS microkernel small enough that students could actually study it in detail without being overwhelmed. Minix 3 is different. It is intended to be a real world OS. It is Unix like, in the sense that it is based on the Posix specifications, and it can run X11, but it is not Unix in the same way that Linux is not Unix.

What’s The Point?

The obvious question is: Why do this now, given that Linux and BSD already exist? The answer is that Unix and Linux are both monolithic kernels (even with the loadable modules in Linux) and Minix hopes to demonstrate that microkernels are leaner and more reliable. If successful it will add another viable choice to the Posix based OS ecosystem. In terms of userland, it will not be a culture shock.

Lets Have A Look At It

Installing Minix 3

Minix is downloadable as an ISO. It is not small but that includes all the source code and some additional software. There are instructions for setting up the VMware virtual machine but they seem overcomplicated. I just installed following the on screen instructions. Minix starts by booting off the virtual CDROM and dropping you into a command shell from which you can play with the OS or install it to the hard drive. I chose to install it. The installer is a text mode application but it is pretty easy as there are sensible defaults set which you can confirm by just hitting enter.

Our old friend: TWM

Once installed you log on as root and get a Unix like shell. Firing up the package manager (packman) gives a limited choice of additional applications to install. The X11 package gives you TWM and XDM. It took longer to install than Minx itself did but it worked. All I had to do was set the video resolution in the VMWare settings. The only other window manager offered was EDE. I installed that (and its libraries) but found that it locked the VM up hard when I tried to run it. Perhaps that was just the console, but I couldn’t do anything other than reset the VM. Doing that caused an extensive file system check on reboot which requires manual confirmation to clear inodes. I guess a modern journalled file system is not top on their priority list at the moment.

EDE up and running.

The hard lockup was fixed by disabling sound in the VM settings. Sound seems to be the weakest point in VMWare. I guess it is not a key issue for people running VMs. Anyway, EDE runs. It looks nice although performance is sluggish. It has lots of items on its Start menu but most of them don’t work because the applications are missing. I installed Lynx, the text mode web browser and experimented with some unofficial VMWare Tools, which didn’t do anything interesting.

Feelings

This is a long way from being a distribution that is usable out of the box. It did not seem to perform any better than BSD or Linux, with their evil monolithic kernels. As for reliability, the sound driver issue was not a good sign. I would have hoped that a microkernel would have meant that the sound issue could not bring the whole system down. It certainly brought down enough of it to effectively lock it up, even if the kernel may have survived. The file system didn’t inspire confidence either.

ReactOS

What Is It?

Splash screen

Now for something completely different. ReactOS is an attempt to make an OS truly compatible with Microsoft Windows 2000/XP. Let that sink in for a moment. They want to implement the Windows APIs and make a free OS that can run Windows applications and even Windows drivers. In effect, it hopes to take the Windows APIs and implement them in the way other OSes implement Posix. Of course, they can’t rip off any Microsoft code to do it and they have to take care not to infringe any patents too. How’s that for ambition? So far it is in alpha test.

What Is The Point?

A free Windows clone would obviously be a very useful thing to enable people to move to Open Source platforms while keeping the Windows applications they depend on. It would save a lot of money for a lot of companies if they could use this instead of buying Windows. The real question is whether it can be done.

Lets Have A Look At It

ReactOS, with control panel and regedit.

ReactOS comes as a prebuilt image for VMWare (as well as other types of VM and traditional ISOs) so getting it going was easy. It is small too. It boots very fast, past a sarcastic splash screen based on the Windows 3.1 splash, and into a desktop that is fairly Windows like. There is a Start button, Control Panel, command line with DOS like syntax. This is not just cosmetic, like some Unix/Linux window managers pretending to be the Windows GUI. ReactOS really is like Windows. It has a registry! It has “Documents and Settings” and “Program Files” folders. ReactOS installs into C:\reactos rather than C:\windows but under that there is a c:\reactos\system32.

Reactos device handling

The one thing that was not like Windows was the package manager, which did not resemble Add And Remove Programs. It didn’t want to download stuff from the internet so I was not able to install anything. It also lacks a web browser. I ran across quite a lot of graphical corruption on the desktop and in explorer windows. Icons refused to line up right or text was corrupted. Changing screen resolution works but requires a reboot each time. This is very much alpha software.

For a laugh, I tried to install VMWare tools. I had to add a virtual CDROM drive to the VM settings and then it mounted the tools. Running the setup program crashed with a Windows like access violation error. Running the MSI directly brought up the install dialogue, slightly corrupted, and it was possible to go through the install options, so clearly they did a reasonable job of making it Windows Installer compatible. After that it died trying to actually do the install citing the absence of one of the Microsoft runtime packages.

Firefox doesn't look too foxy...

Trying to load the VMWare Tools was pushing it a bit. To give it a fair chance I decided to install some more normal Windows applications: Firefox, Sun Java JRE, MWSnap and TightVNC. Firefox installed. The fonts were wrong and I got a VM lockup after a few minutes. MWSnap installed and worked fine. Java install just hung. TightVNC installed fine. The client fired up OK. The server ran but any attempt to connect to it was refused after asking for the password. After a couple of attempts the VNC server crashed.

Feelings

Clearly this is a lot like trying to run Wine on Linux. In fact ReactOS uses quite a lot of code from Wine. As with Wine, it is truly impressive how far they have got but it is hard to see it ever making a usable system for running most Windows applications. The trouble is that a usable Windows install is more than just the OS. It is a load of Microsoft runtime systems, Internet Explorer, fonts and other stuff. Some of these packages are downloadable and could be installed into ReactOS, although you would probably need a Windows licence to do it all legally. The alternative would be to reimplement everything, greatly expanding the project. Besides, does the world really need another implementation of ActiveX? Many would argue that one was more than enough. As with Wine, ReactOS is probably more use as a tool for getting certain specific applications running than it is as a general purpose Windows replacement, expecting it to run all and any Windows applications.

FreeDOS

The editor in FreeDOS

What Is It?

FreeDOS is a modern attempt to make an Open Source version of DOS that is compatible with MS-DOS but which has decent networking and other modern facilities.

What Is The Point?

There is a lot of legacy software for DOS out there. The Windows command prompt is not genuine DOS and does not run all DOS programs. Sometimes you need a real DOS. FreeDOS is unlikely to get installed on many PCs but it can be used for embedded applications and it can be used in virtual and emulated environments on Windows, Linux and other systems.

Lets Have A Look At It

I downloaded it as an ISO and installed from that. It comes with a lot of additional software and installing takes a lot of confirming that you want stuff to install. It was pretty simple and it worked. It boots using GRUB and its installer has a concept of package dependency. This is not just a clone of traditional DOS.

OpenGEM

FreeDOS comes with a GUI (OpenGEM) and networking support. I couldn’t make the network work and left that for another time. It comes with Doom but it crashes after a few seconds. The kernel error makes it clear how far removed from MS-DOS this really is. Windows 3.11 would install but not run. OpenGEM works, although performance is very sluggish. There are no VMWare tools for OpenGEM and the screen resolution is locked to VGA.

Feelings

FreeDOS seems to be torn between making a DOS that is truly compatible with MS-DOS and adding modern features. The fact that it can’t run Windows 3.11 is worrying. Surely it is the DOS applications that push the OS to the limit, and hence won’t run on Windows, that are the ones people are most likely to want to run on FreeDOS. Still, it is free and it is undeniably DOS. Given that getting your hands on any other type of DOS might be hard these days, it is an important project.

Plan 9 From Bell Labs

What Is It?

Plan 9 from Bell Labs, to give it its full title, was to have been the successor to Unix and everything Unix like. It was designed by Bell Labs in the 1980s to address all the issues that make everything Unix like messy. Things that give computer scientists the yips but don’t really bother anybody else. Everything is addressed through virtual file system objects and everything is accessible over the network (subject to access control, I assume) making distributed applications simple. In theory. It never caught on and has now been open sourced.

What Is The Point?

Er? Anyone know the answer to this? Distributed computing applications, I guess.

Lets Have A Look At It

Plan 9 comes as a fairly small ISO download and a fairly horrible set of installation instructions. There would be bluffing my way through this one, would there? Well, I decided to give it a try.

Intalling Plan 9

It boots off the virtual CDROM, very slowly, producing cryptic messages with long pauses so you can’t tell if it has hung. After a while it comes up with a menu with an option to install. After choosing that, and confirming some stuff about hardware devices, it quickly loaded a GUI, of sorts, called Rio. The installer is already running. Apparently all I had to do is keep pressing enter and accepting defaults to get it installed. In practice I had to refer to the instructions a few times. The install seemed to go OK but it refused to reboot, with the boot loader claiming that there was nothing bootable. It also complained about the BIOS and the disks. Maybe I installed the bootloader wrong or maybe there is something fundamental it doesn’t like about the VM settings. Still, it wasn’t a complete waste of time as I picked up a few things along the way:

  • The file server is called Fossil. Unlike Linux, there are no separate virtual file systems for stuff like /dev and /proc. It is all Fossil. Fossil is the guardian of the actual file system.
  • The permission model seems to be Unix like.
  • The administrative user is called “glenda” after Glenda the Plan 9 bunny. Way to sell an OS guys! Ever wonder why nobody took you seriously?

Plan 9 running Rio. Showing Acme and Term

Clearly I needed a plan B for Plan 9. I downloaded a pre-installed VMWare image for Plan 9. This worked like a dream. I was booted and logged in as glenda in seconds. Before playing with Plan 9, I looked at the difference in the VM settings. The downloaded VM had a customised BIOS of some sort. Beyond that it didn’t look significantly different from my one.

The first thing to get my head around was Acme. Acme is a shell, file manager and editor all in one. Think Norton Commander as written by a sadist. Actually, Emacs is a better comparison as I have absolutely no idea what is going on. It is a completely unfamiliar visual paradigm. It is like using a computer for the first time. Fortunately there is help information. Once I accept that I have to learn how to use the mouse from scratch I start getting a few very basic things done. Sometimes things happen which I don’t expect. I get as far as working out how to make a command shell window and what “snarf” means. It means “copy”. I have no idea what “plumb” or “send” do. I decide that is enough for now.

Feelings

To early to say anything about Plan 9. I haven’t really started to get my head round it yet. I am not loving Rio or Acme though. These GUIs seem to have diverged from the mainstream GUI visual paradigm at a very early stage of its development, before things like window widgets came in, and headed off sharply at ninety degrees.

Syllable

What Is It?

Syllable is an OS that started life as an Amiga-OS clone and grew to be mostly Posix based. It has the GNU toolset so it feels a lot like Unix. As with Linux and Minix, it is not actually Unix. (More to the point, it isn’t Plan 9. I like it already.) There is a desktop and a server version, which are apparently not binary compatible. I tried the desktop.

What Is The Point?

It is supposed to be really lightweight (e.g. 32-64Mb RAM). Possibly attractive for embedded applications and netbooks. Could possibly be ported to run on phones.

Lets Have A Look At It

Syllable desktop

It is downloadable as an installable ISO or a VMWare image. I took the VMWare image. It was quite small. It boots like lightning. First Grub as the bootloader, then a load of diagnostics scroll up the screen on a blue background (a sort of “Blue Screen Of Life”) and then a login window. Logging in is almost instantaneous. This really is fast!

I am pretty sure that this is not X11, just from the speed. The process list confirms this. There is no sign of an X server running. Increasing the screen resolution works. Changing the window widgets also works. There is a web browser called Webster. This is not lightning fast but it works reasonably well on standards compliant sites, displaying Wikipedia without problems, but struggling with microsoft.com and adobe.com. There is no Flash support. I am not sure what rendering engine it uses but it isn’t as good as Firefox, Opera or even Konqueror. There is also a very basic POP3 mail client called Whisper.

Webster web browser

Additional software is downloadable from Syllable’s website. Quite a lot of what you might expect in a Unix like OS is not in the basic install so this is where to get things like Perl. Of course, nothing fundamentally X11 based is available. I tried installing Minesweeper. Installing an application is a matter of unzipping it (from the shell) and then dragging it into the Applications folder. That makes it available on the menus. The shell is Bash by the way.

Feelings

This is really impressive. It is incredibly fast but it gives up a lot by eschewing X11. I can’t see it running OpenOffice any time soon, but if you really are pushed for resources this isn’t at all bad. I could see this being credible for use on phones and PDAs. The web browser needs a better rendering engine though or to be replaced altogether (e.g. with OWB, see AROS below).

AROS

What Is It?

AROS is an AmigaOS clone. Unlike Syllable, which has morphed into a Unix like OS, AROS aims to move forward within the Amiga architecture and maintain binary compatibility with AmigaOS 3.1. It is Alpha software.

What Is The Point?

Keeps legacy Amiga software running. It is another lightweight desktop OS. Possibly useful for embedding.

Lets Have A Look At It

AROS is distributed under the name ICAROS Desktop. There is a full and a light version. I downloaded the light one. This is a live CD that is also installable, like Ubuntu Linux. The manual suggested a 4GB hard disk but that was clearly excessive. I gave it a 2GB virtual hard drive and 256Mb RAM. After GRUB, it fired up at a ludicrous resolution so I set it down to 1024×768 in the VM settings. This booted into a desktop with a unusual red mouse pointer. The cat’s eye at the bottom is an enhanced “Start button” but some functions, like shutting down, are only available by right clicking on the Wanderer bar at the top. There is a MacOS like duality between the Wanderer at the top, which functions as the menu bar for whatever application is in focus, and the launcher bar at the bottom. I am not a great fan of this because I feel that their remits overlap too much.

Before installing I take a look at the manual. This is impressive. It is a well written, 45 page, illustrated PDF with a good, direct style explaining what everything is and how to do stuff. It even explains how to build a PC from scratch to be AROS compatible. I have seen much worse manuals on commercial products. That said, I ignored the advice to make two partitions and just partitioned the virtual disk by taking the default of a single partition and steaming through the install.

AROS with OWB

After installing it asked a few questions about internationalisation and preferences and then I was at the desktop. There is a lot installed including many games. This “light” version seems quite complete to me. My virtual disk is about 600MB. Everything is quite fast. The shell has partially Unix like command syntax and Unix like file permissions. The web browser is called Orygin Web Browser (OWB) and, after taking a long time to launch the first time seems snappy enough. It renders microsoft.com quickly and correctly. There is, of course, no Flash. Doom is installed and runs tolerably smoothly. One or two of the applications hang and I couldn’t see how to kill them. Everything got a bit confused and I had to reboot the VM. I suspect that the system is not strong on process management.

Feelings

Although this is an Amiga clone it does not feel too ancient. I guess this shows how far ahead of the game Amiga was. This does show its Alpha staus at times but there is immense scope here. It is fast and usable. It is almost as fast as Syllable. The web browser is much better but the desktop less coherent. The compatibility with Amiga applications can only help. I do feel that they install far too much software by default, even in the “light” version. A lighter install and a package manager for adding software would be better. I preferred Syllable but this is still impressive.

Microsoft Singularity (unsuccessful)

What Is It?

Singularity is an experimental OS from Microsoft. It is “Shared Source” not Open Source. What this means is that they want people to help them develop it while retaining exclusive rights to commercial exploitation. It is not a full, usable OS. It is a research project. It is nothing to do with any current or future version of Windows. It may end up forming the basis of a replacement for Windows as part of the Midori project. It could just as easily turn into “Plan 9 from Microsoft”.

What Is The Point?

The idea is to build a microkernel OS which runs C# bytecode (managed code) at almost all levels, possibly coming up with the basis of a new commercial OS and proving that there is more to Microsoft than Windows and MS Office.

Lets Have A Look At It

The Blue Screen Of Never Alive In The First Place

Singularity comes as an installable ISO that is also runnable directly in Microsoft Virtual PC. Maybe it functions as a live CD. The VMC file indicates that it wants 512MB RAM and does not seem to set up a virtual hard drive. I make a VM for it and give it a virtual hard drive it can use if it wants to. It fires up a bootloader but dies trying to load the OS. Apparently it dies in VirtualBox and Bochs too.

Editing the BIOS settings in a futile attempt to appease Singularity

I Google (not Bing!) the error and discover that this is apparently to do with ACPI. Other people have had partial success by patching the ISO. Microsoft seem entirely uninterested in the issue and keep pointing people at Microsoft Virtual PC.

Editing the ISO would be a real pain so I go into the VM’s BIOS and try to disable ACPI there. There isn’t an option for this but it is cool to be fiddling around in the BIOS of a virtual PC anyway.

That is as far as I want to go with Singularity. Maybe I will try Microsoft Virtual PC out one day, but not now. I don’t want to invest time in Virtual PC as I hope to move all my VMs to a new Linux box at some point in the future. Obviously that can’t happen if they are in Virtual PC.

Feelings

As a cynic, I can’t help wondering whether making an OS that only boots on Microsoft’s own virtualisation platform was part of the research remit. OK. That’s unfair. Compatibility is not a pressing issue on a research OS like this. Mandating a limited test platform is fair enough at the early stages. They have only been working on it since 2003.

Haiku

What Is It?

Haiku is a clone of BeOS seeking to build on its legacy. It is an Alpha release.

What Is The Point?

It claims to be a fast efficient and lightweight OS for general desktop use. It has a database like file system and cites other BeOS features worth preserving.

Lets Have A Look At It

Haiku desktop

Haiku is downloadable as a VMWare VM. The OS claims to only need 128MB of RAM but the VM is configured for 512MB. I drop it down to 256MB. The VM has a 600Mb fixed size virtual hard disk in it and a second disk which starts small and can grow. It boots fast into an attractive desktop with BeOS like tabs on each window. The performance moving windows about is sluggish though. Bringing up a command terminal gives a shell which identifies as “/bin/sh” but seems to be Bash. The shell is Unix like, as are the file permissions. There is no sign of X11 on the process list. This setup is quite similar to Syllable; Unix like but without X11.

Haiku's web browser

The feather in the top right corner is the “Start button”. There are plenty of applications to launch. Running applications accumulate their icons underneath it. The web browser calls itself “Bon Echo” but it is clearly Firefox 2. Obviously this does a better job at rendering complex sites than Webster in Syllable but overall performance is quite sluggish and there is still no Flash. This, and applications like WonderBrush (the Paint program), are noticeably slow to launch. That said, the whole OS can reboot in a very few seconds.

Feelings

This does not seem as ruthlessly optimised for speed as Syllable or AROS but there is definitely potential here. Going with Firefox instead of writing a new web browser may have been a smart move. Nothing about it screams “Alpha software”. I am impressed.

FreeVMS

What Is It?

FreeVMS is an open source implementation of VMS for x86 processors. The project is at an early stage and it is not clear how actively it is being developed. It provides a kernel and a DCL command shell. There is no GUI at this stage.

What Is The Point?

OpenVMS, the only other implementation, is proprietary and doesn’t run on x86 processors. It is available for free personal use but serious users have to pay serious money. A free implementation for X86 would save people money and allow the use of more standard hardware. Serious users can’t run production systems in an emulator. There is also the fear that HP might not develop OpenVMS for ever so having an alternative in the pipeline is important.

Lets Have A Look At It

I didn’t fancy compiling from source so I downloaded its two disk image files (32 bit versions) intended for the use in Bochs. a.img is the boot floppy. c.img is the hard disk. I made a VMWare VM and give it a.img as its virtual floppy. This fires up Grub before complaining that there is nothing to boot on the hard drive, so I know that a.img works OK. The next step is to convert c.img into something VMWare can use as a hard disk. VMWare converter doesn’t convert raw images so, after trying and failing in Qemu, I download StarWind Converter (a Windows only freeware tool for converting between VMware, Microsoft and raw disk images). This very quickly makes a VMDK file. I add this to the VM as a virtual hard disk, replacing the original virtual hard disk, and it boots FreeVMS. After some warnings and debug messages, I get a DCL command prompt. It works!

DCL prompt in FreeVMS

I type “help” but there isn’t any. I type the only other DCL command I can remember, “dir”, and am rewarded with a plausible list of files, prefixed by what looks to be some debug output. The numbers after the semicolons on the files are their version numbers. VMS keeps a count of how often a file is updated and can keep a certain number of prior versions, which is actually quite advanced when you consider how old it is.

I was never asked to log in so I wonder what happens if I try to log out. “Logout” causes a kernel panic. I find a DCL command reference and reboot the VM so I can try a few other commands. “show memory”, produces memory information. “show” hangs the system will a “null pointer dereference” error. I try a few other show commands, some work and some don’t.

Feelings

If I was serious about learning VMS again (I used it a bit when I was at university) then I would feel obliged to get the free personal download of OpenVMS and run it in an emulator. This is simply too early in its development to be any use. None the less, it is impressive to see it boot at all. It will be interesting to see how this progresses.

What Does This All Mean?

When I started this article is was only going to have 4 or 5 operating systems on it. I was amazed at how many more I kept on discovering. I may yet come back and add a few more.

I was also amazed that so many people are ignoring Windows and Linux to write their own OSes for their own reasons. I was amazed at the diversity of what I found. Most of all, I was amazed at how good some of this stuff is.

What Next

I think the next step is probably to move on from virtualisation to emulation, either in Bochs or Qemu. That will provide many more OSes and legacy systems to investigate. I may even be able to get OS/2 working one day.

Advertisements

April 30, 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: