Virtualization Actually Works!
I had wanted to have a full time Linux desktop for about a year now. I think I've gotten to a point with Linux that I'm comfortable enough to use it for development. The problem is that I manage a Windows network and I work solely from a laptop. (Surprise! I'm pretty stubborn about my computer setup; I likes what I likes.)
I'd used Cygwin before but it always seemed... clunky at certain things like, well, everything. It really does works though and it's pretty nice for doing things like integrating SpamAssassin into Exchange, which is also a pretty cool exercise, just not for a full desktop experience.
Because of that, I was a little skeptical about the whole virtual machine thing. It sounds like a good idea, having another operating system installed on top of another, but until I recently tried it I just didn't really understand how cool it really is.
First, some details. My personal computer is a Gateway MT6705 with 2GB of RAM running Vista Business. I use the classic theme, fuck you Aero, to keep my computer snappy too. After boot up my computer has 1.5GB of RAM available.
With those specs, my biggest concern was performance; it didn't really make sense that my computer would still be usable when a virtual desktop was running.
Then I remembered that "usable" is a relative state. Right now, I'm using the fastest computer I've ever used, so I'm already accustomed to crappy performance. Plus, I'm already running a stripped down version of the latest, stable, Windows so the only place to go was a lower end operating system. The biggest question then becomes "What virtual machines do I want to run?".
The first place I went was VMware; I still wasn't sure all the details and as usual Wikipedia left me with questions. VMware offers a workstation version that costs $189 at the moment with a free trial to check it out. They also have a free virtual machine client, VMware Player. Unfortunately, when I was researching the two products the VMware site wasn't allowing downloads so I couldn't check it out.
Instead, I moved onto VirtualBox; and I'm really happy I did. VirtualBox is a free virtual machine that is also open source. According to their site:
VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL). See "About VirtualBox" for an introduction.
Presently, VirtualBox runs on Windows, Linux, Macintosh and OpenSolaris hosts and supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, Server 2003, Vista), DOS/Windows 3.x, Linux (2.4 and 2.6), Solaris and OpenSolaris, and OpenBSD.
VirtualBox is being actively developed with frequent releases and has an ever growing list of features, supported guest operating systems and platforms it runs on. VirtualBox is a community effort backed by a dedicated company: everyone is encouraged to contribute while Sun ensures the product always meets professional quality criteria.
On this site, you can find sources, binaries, documentation and other resources for VirtualBox. If you are interested in VirtualBox (both as a user, or possibly as a contributor), this website is for you.
Installation was easy; just like any other Windows program really. It's definitely worth while to read through manual before diving into the install though; they have some conventions that are really useful to know before diving in.
To install a virtual machine you're essentially installing the operating system onto a your hard drive so the process can take a little time. I was able to get Fedora 10, Windows XP and Windows 7 (yup, Windows 7!) running in a long night.
The way it works is that you allot a set amount of your spare system resources to each of your virtual machines. So, for example, I set Windows XP to have 1 GB of RAM and 10GB of hard drive space and VirtualBox only allows that virtual machine to those specs.
VirtualBox handles the resource detail pretty elegantly; in that it doesn't use the resource until it needs it. This means that instead of instantly having 10GB of your hard drive used up VirtualBox will only use the amount already taken. You can tweak the settings for a VM whenever you want so you can get just the right mix.
That does make me think my current setup isn't really the best. Specs aside, which are a pretty big issue for me at the moment, running Windows Vista as my base Operating System is kind of wasteful. I'm thinking it might be a good idea to upgrade my computer, I've had this laptop for over 2 years and 64 bit is pretty appealing, or more likely, downgrade to Windows XP or a base Linux install and run virtual machines full time.