Sun’s VirtualBox is a tool I’ve come to rely on for virtualization, and I seriously rely on virtualization. What is virtualization and why do I rely on it so much? Virtualization, in the most basic possible sense of the not-really-a-word, is a method of running one or more operating systems inside another wholly separate operating system. I rely on it so much, because honestly, I have multiple geek personalities to deal with. One of me has a long history of geeking out to windows tech and is an avid gamer so it is essential to my computing well-being that I keep a decent Windows-based PC around. Yet, another me has hefty development interests Linux and Open-source technologies. I don’t see that changing anytime soon, and I have a lot of work ahead of me to bring those skills on par with my lengthy experience in Microsoft technology. Furthermore, I’m certain there are me’s out there that I haven’t even met yet.
VirtualBox solves this problem for me(s) elegantly. My Desktop is a 64bit Windows 7 machine with a healthy 8gb of ram and a roomy hard drive. This is my primary machine for both work and play. My secondary PC is a Laptop running 64bit Linux (Ubuntu), with 3gb of ram and a 500gb drive. It’s feasible that I could use each machine dependent on what technology I needed at the time, but that plan is better on paper than it is in practice.
For one, not only would I hate to run every single piece of Microsoft-dependent software I could possibly need on my daily-use PC, some of them are just downright incompatible with each other. Even if they did play nice together, the whole of it would represent a serious deterioration in available local resources which is not so good for my happiness. Besides, I’ve never managed to shake my operating system re-installation habit that has become an almost Pavlovian response to sluggish Windows computing even though, admittedly, Microsoft OSes have gotten a lot better than they once were. Regardless, the rigorous demand on local resources and my compulsion for total drive wipes combined with what would be a delicate and time-consuming installation process is, quite frankly, a recipe for disaster. The bare truth of it all is, I need more than one Windows environment. Unfortunately, I need more than one Linux environment as well. I’m not so proud that I can’t admit being neck deep in an open-source learning curve. I’m still experimenting and I fully expect to engage in some catastrophic mistake-making. I need an experimental environment, a stable development one, and a working production one as well.
Thanks to virtualization, I can satisfy all these demands on a single computer. The only hurdle is storage capacity, and current hard drive sizes make that mostly moot. With 8gb of RAM, I can even run several of these environments concurrently.
For example, I have several Windows-based Virtual Appliances (or machines). One is a functional backup of my previous web server running 32bit Windows 2003/SQL2000/Cold Fusion, another is a 64bit Windows 2008 R2 MOSS 2007 development environment, and last one is a 32bit Windows Vista general .NET development platform. I’ll probably have a 4th one once MOSS 2010 ships. As it stands right now, I’m using the old 2003 server as a staging area for .NET apps I write on from the Vista machine, and it is not uncommon for both of those to be running at the same time.
As far as Linux goes, I have 2 virtual appliances. The first is a replica of my current co-located web server powered by Ubuntu 8.04 LTS. It serves the dual purpose being both a living back-up of my production environment as well as proving ground for new development. My second appliance is an Ubuntu 9.10 desktop machine that is in the process of becoming my PHP, Ruby, and Python development environment. Both of those run simultaneously nearly 100% of the time. The kicker is, I still have enough free resources to take a game-break now and then, and I’m not talking about solitaire.
It gets better. Not only is VirtualBox free, it is also cross platform. That means that I can export my virtual appliances from either my Windows Desktop or my Linux Laptop and import them to the other. If I need to take my Windows show on the road, I simply import the appropriate appliance to my Laptop, and off I go.
Truthfully though, VirtualBox isn’t the only application that can do all that. I think the more recent VMWare Player is quite capable of doing that much. The one thing I love about VirtualBox though, is its “Seamless Mode”. Seamless mode is kind of hard to explain, but essentially it is a way of running a virtual appliance so that it feels as though you are running two operating systems at once. It simply adds a new taskbar or set of taskbars to your normal operating system interface. This is a fantastic way to run two distinct graphical environments. Whether I am are doing cross-platform work, client-server development, or just looking to experience a new OS from the comfort and safety of familiar ground, VirtualBox’s Seamless Mode is pure awesomeness.
I think a couple screenshots might be in order, to really drive it home. In both examples, we have a 64bit Ubuntu 9.10 virtual appliance running on a Windows 7 Host. The first shot is the standard mode, with Ubuntu running in it’s own window. The second is Ubuntu running in Seamless Mode right over the top of the Windows 7 interface. Click each thumbnail for a full size image (1920×1080 PNG > 1mb).
How cool is that? If you didn’t see anything nifty, look closer. In the second image, you will notice the Ubuntu (Gnome) menu bar extended across the entire screen, with the Ubuntu task bar sitting comfortably on top of the Windows 7 taskbar at the bottom. The fully accessible Windows Desktop peeks out from between them.
It was a total “Wow” moment for me the first time I experienced it and I’ve been hooked ever since.
Now, VirtualBox isn’t exactly perfect, but the development of this application is very active and it seems to get better with each release, and they are definitely frequent. Seamless Mode has it’s own limitations too. For example, the Guest OS (the virtual appliance machine) doesn’t span across multiple monitors, or at least it didn’t the last time I tried. Also, you have to get used to how window focus works, meaning that when you click on a guest OS window, all visible elements of the guest OS butt in front of the host OS windows, though of course, the reverse is not true. Then in order to access the desktop of the guest OS, you have to rely on browsing tools. All are mainly usability concerns that you quickly acclimatize too. Still though, even with the occasional rough spots, VirtualBox is a shining example of greatness in free (and largely Open Source) software.
You can download VirtualBox here – http://www.virtualbox.org/wiki/Downloads


1 Comment until now
[...] About « I Love VirtualBox [...]
Add your Comment!