Virtualization is one of the area I’m really an enthusiast. I’ve tried many solutions from Bosh on iMac G4 and PearPC on my Windows to VMWare and VirtualBox and at last to Xen. In fact, Miroshell’s sever is hosted on a Xen instance. I’ve also tried many emulators for game console like Nintendo 64, Sony Playstation, and many Mame arcade game emulators.
In this article, I’d like to share what I’ve experienced about the vritualization as well as sharing the reason why I chose VirtualBox for my Ubuntu + Virtualization + Windows on HP TX1499US Laptop article.
This is one of the first virtualization solution I tried during their early days. It was pretty good but didn’t impress me too much as it was rather slow. I also didn’t see the need of virtualizing an exact same platform as the host. I thought it was pretty cool to have VMWare boot and I can see like POST (Power On Self Test) and VMWare’s bios and can go into the bios as if it’s a complete computer in a window. I remembered one of my friend trying to write an OS and it hangs on boot. He didn’t know about virtualization before so what he did was he put it on a floppy and boot it and it would crash. I told him about VMWare and he boot VMWare from floppy and turn on debugging and immediately found the issue. Until now, I think VMWare is a good solution, but so far, I failed to see the need to pay them when other open source solution exists that serves my needs.
In my opinion, Bosch is one of the unique virtualization solution. Most virtualization solution emulates the same CPU as the host. Bosch is different in a sense because given any architecture it supports, it always emulates x86 hardware (PC computer as layman say). I think it’s cool. However, Bosh, I think is suitable for enthusiast and hobbyist. I don’t think it is good enough for daily use, mostly because of speed.
PearPC is an emulator for PowerPC platform as used in Mac up to G5. A while back when I purchased my first Athlon 64 computer, I thought it was powerful enough to run emulated hardware. Around the same time, I also bought my first iMac G4 so I had access to Mac OS X. I thought let me try my hands on getting Mac OS X on PC hardware. So I installed PearPC and tried installing Mac OS X. If I remember correctly, Mac OS X installation took about 1 or 3 hours … I don’t remember anymore. I just remember it was very loooooong. However, once the installation is done, it worked fine. It was rather slow, but bearable. It was (and still is, I think) a good solution to emulate PowerPC platform. However, when Apple switched newer Mac to use Intel based CPU, I think there’s almost no reason for people to use or develop PearPC anymore. What other OS do people run on PowerPC platform appealing enough for running it on emulator anyway.
I know QEMU has pretty good emulation, but I have no idea why I’m not really interested in it. I don’t remember if I ever tried it or not. If I did, perhaps only up to booting something and that’s about it. I’m not saying it’s a bad solution. I’m just saying I don’t have interest in trying it for no reasons.
This is one of my favorite emulator. In my opinion, it is a drop-in replacement for VMWare Workstation / Fusion without the $$$. So far, I can’t think of a feature in VMWare Workstation / Fusion that is missing from VirtualBox. In my mind, if you can do it with VMWare Workstation, then you can do it with VirtualBox.
I’ve setup a complex VirtualBox configuration one time at work. The purpose was to learn and test Hadoop. My workstation was an IBM desktop with Pentium 4 and Windows XP Pro with 4GB memory. I had 3 VirtualBox guests running at once to emulate 1 Hadoop server with 3 slaves. The performance was beyond my expectations. I was able to run the Hadoop system to process about 1GB text file (all 3 nodes processing … all 3 VirtualBox guests are processing something and not idling), and I’m still able to work on my workstation. It’s pretty kewl, I think, especially given that at that time, VirtualBox and my CPU doesn’t have support for native virtualization.
The very first time I read about Xen, I could not believe my eyes. I was looking at the virtualized guest speed chart and I’m seeing guest speed of 95% or better. Given my previous experiences was with fully virtualized solutions, I thought this solution must be a breakthrough. Reading through it, I got to find the reason they’re able to run at 95% native speed. What they did was to modify the guest OS so that it’s aware that it is being virtualized. In x86 virtualization, there are some commands that can’t be emulated pretty fast. So Xen’s solution was to make the guest OS aware of it and the end result is that they don’t have to virtualize those hard-to-emulate commands.
However, it comes at a price. Since the guest OS has to be modified, it rules out all proprietary OS like Windows. That means, your choice of OS will be Linux or one of the BSDs. Upon further investigation, it turned out that BSD is not really supported by Xen. So that left us with Linux only solutions.
I got to know KVM late 2008 when I’m setting up my server for production. KVM stands for Kernel-based Virtualization Machine. It requires AMD-V and Intel’s VT capable CPU. I don’t know much about it yet. However, it gets pretty good support as RedHat uses it as default virtualization solution and it also has been included as part of Linux kernel version 2.6.20 onwards. At its core, I think it uses QEMU for CPU emulation. I think KVM is one of the newer players in virtualization market and for now, I’m still loyal to Xen because of its maturity.