Where virtualization is concerned, “free” certainly doesn’t equate with “cheap”. Sun’s VirtualBox is a perfect example of that. For non-commercial use, it’s a cost-free hypervisor that’s feature-robust, offers great performance and stability, and supports a wide-variety of guest operating systems. Read on as we take an in-depth look at all that it offers.
There’s a lot more to VirtualBox than just simply running an OS. There are three other key features that I wanted to focus on for a bit, because they’re all interesting and work well, and have some real use. The first feature is “Snapshots”, and by the name alone, you can probably guess what this feature does. At any point during the use of a VM, you can simply take a snapshot, name it, and return to that exact point whenever you want. Changes you make after that snapshot would be lost if you were to revert back.
What’s the use of this? There are many. Although my example below is nonsense, if you need the OS set up a different way for each scenario you want to deal with, snapshots allow you to do that. If you want two versions of the desktop, one for development, and the other for regular use, that’s no problem. New to 3.1, you can even fork snapshots, meaning that you can load one, work from it, and then save it as a new snapshot.
Another important use is for a Kiosk-style PC, where each time you want to run the OS, it reverts to an initial status. The reasons for wanting this vary, but all make this feature incredibly useful. Want to test out a new script or application that you’re worried might kill the OS? Create a snapshot, then try it, and if that happens, revert. Want to surf websites for things most family members don’t approve of? Alright, I’m not going to encourage this, but you get the point.
Because a snapshot essentially takes a picture of the current state of the machine, it’s easy to expect that it would take a while, but not so. In all my tests, creating a snapshot took no more than ten seconds, and the same goes for restoring it. I’ve used snapshots in other VM’s in the past, and I’d have to say that VirtualBox’s is one of the best solutions simply for its speed. It’s very, very good.
Another feature that seems rather simple, but isn’t, is Remote Desktop. That’s of course the process of connecting to another machine and using its actual desktop, rather than just accessing its files. There are commercial applications on the market that tend to perform a little bit better, but for a free solution, programs like RDP and VNC are decent alternatives. One of the highlights of VirtualBox is RDP support, so I thought I’d give that a try and see just how easy it was to use.
Whenever a VM is running, Windows-only, you can go to the “Device” menu and select “Remote Display”. At that point, the program will kick the feature into gear, and if you go to the main window of VirtualBox, and highlight that VM, the port number being used will be specified there. So from your RDP program, in any OS that has one, you can connect to the IP, and port number, and gain access to the machine.
As seen in the above shot, my RDP client was KRDC, a Linux application, and I connected to a Windows 7 VM on another machine in the room. The performance as a whole wasn’t too stellar, given the fact that the two PCs weren’t far from one another, and I’m not sure whether to blame that on KRDC, or the fact that RDP simply sucks as a protocol. Judging by past experience, I’d have to vote for the latter, but if you’re in need of something like this, the feature is nice to have… that goes without saying.
Because RDP is a Windows protocol, you cannot access a Linux or Solaris VM this way. In that case, you’d have to use a custom solution, like VNC, and specify a different port manually for each VM you will ever need access to. Then from your Windows or Linux host OS, you could use whatever tool it is you use to connect to a VNC machine and should have no problem accessing your VMs.
Last, but not least, we have “Seamless Mode”, which best can be described as a hybrid desktop. This is an excellent feature for those who don’t just want to use a VM, but use both the VM and host OS all at once, without the need of switching back and forth. In the simplest terms, it combines both the VM and host OS together, so that you can quickly access both OSes’ applications at once.
In the example below, I’m running my Linux desktop (KDE) while running my Windows 7 VM in Seamless Mode. As you might be able to tell from the see-thru taskbar in KDE, the desktop seen is from my Linux, while the applications loaded up are from the Windows VM. The only downside to this kind of functionality is that to access the files in your VM, you will have to go to the respective menu of the seamless OS and access the file manager there. The reason things are done this way is that you really, really wouldn’t want the files intertwined on the desktop to avoid potential issues.
Seamless Mode isn’t a feature I particularly care to ever use, but I can see why many people would be drawn to it. The implementation here is very good, and the Windows 7 windows had no redraw issues at all, and move around my screen just as smoothly as my application windows in Linux do. This was really the first time I experimented with Seamless Mode, so I was left impressed overall and would recommend it highly to anyone who doesn’t just want to test out an OS in VM, but use it as their second OS.
That wraps up our look at the three important features I felt deserved some mention, and up to this point, we’ve pretty much covered everything there is to cover from a features standpoint, so with that, let’s move right into my final thoughts to wrap things up.