(Before I start on the review proper, a quick note about the name: VirtualBox is no longer distributed under the Innotek banner, but is instead now owned by Oracle, having spent the intervening period under Sun's control. It's the same program, however, albeit somewhat updated.)
Every so often you come across a program that is so good that you wonder why you didn't find it earlier - an example might be the tremendous freeware image editing program for Windows, Irfanview. Just occasionally, though, what you have found is so staggeringly useful that it actually changes the way you work with your computer, to the extent that you miss it hugely when you're working somewhere it's not installed. Firefox is a commonly quoted example of this, but Oracle's VirtualBox is also such a program, and if anything it is even better. I'd certainly miss Firefox were it not there, but Internet Explorer is a better program these days than it used to be, and I could cope. If I were deprived of VirtualBox, it would cause considerable annoyance almost every day.
VirtualBox is a "virtualisation" application. That may not sound very exciting, but in fact it's a big thing: in essence this means that you can use it, provided you have a sufficiently powerful computer, to run other operating systems. That's not the clever bit. The clever bit is that you can do so *while still running your native OS*, and switch between them at the drop of a hat. You can even transfer files between your main system (referred to as the "host" OS) and the one you are using VirtualBox to run (the "guest" OS). Well, I say "the one", but actually if your computer has the oomph, you can run multiple guests simultaneously, and thus make your PC into a far more powerful and versatile system than you might have imagined it could be.
As a practical example, I'll describe what I sometimes do on my own PC. My usual OS is Ubuntu Linux 10.04, which I like, but sometimes I want to run a Windows XP program. What do I do? I could set up a dual-boot system and reboot into Windows, but that's a pain and I can't (easily) get at my Linux files while I'm in Windows. VirtualBox allows me to install XP to a "virtual hard disk" in my Linux partition, and run it from there - all the while keeping Ubuntu going. I also have Puppy Linux, a small and very fast distribution, running at the same time, also from VirtualBox. Three OSes at once, with no hardware alterations whatsoever and no particularly technical stuff to keep them going; they just run until you tell them to stop. If you can install the average application yourself, then you can install and run this; its installation procedure is straightforward, and certainly far easier than that of another popular virtualisation product, VMWare.
Now, you may be starting to think that I have a supercharged, cutting-edge system. Not a bit of it: it's a three-year-old Core 2 Duo with 2 GB of RAM. And here's the thing: it can handle the above *easily*; in fact I could probably add another OS or two, if they weren't too demanding and if I reduced the RAM available to the others. Via the fairly simple setup menu within VirtualBox, I allocate 512 MB of my memory to XP and 256 MB to Puppy (which doesn't need much space), leaving a little over a GB for Ubuntu - ample for most uses. VirtualBox will warn me if it thinks I'm not leaving my host OS enough room to operate reasonably, and will actually stop me from reducing its resources so much that it won't work at all. I can also select how much video memory I want to allocate, whether or not 3D is enabled, whether to use multiple cores (if the host machine has them) and so on.
At this point I should point out that there are two versions of VirtualBox. (Actually three, if you count the paid-for boxed version that comes with support, but I have no experience of that one.) The better-featured one is distributed under what Sun calls a "Personal Use and Evaluation Licence" (PUEL), which explained simply means that you can use it freely as an individual - or in an academic environment - but you can't redistribute it. There is also an open-source version (distributed under the popular GPL licence - version 3 for those to whom this matters) which of course *can* be redistributed, but this is somewhat cut down. It still works very well, but some features are omitted, the most important of which to most people will be support for USB peripherals.
There are, unsurprisingly, certain legal aspects you need to be aware of when running outside OSes under a host OS using VirtualBox. If, like me, you run Windows XP, then (unless you have an unusual licence) it has to be installed directly on to a virtual hard disk from an original Windows CD - yes, you can do this under VirtualBox too - and you cannot have that copy of XP installed anywhere else. If you meet those criteria, then there's no problem, and I can vouch for the fact that Windows under VirtualBox happily passes the "Windows Genuine Advantage" validation process. Mac OS X is another matter, unfortunately: Apple, being even greater control freaks than Microsoft, only allow OS X to be installed on Apple hardware, so you can't (legally) use VirtualBox to run it on a PC. A shame.
Since VirtualBox is free to download (in either version), there is little to lose by having a go. The easiest way to try it out is by using a version of Linux as a guest OS, since those are mostly free and with no legal barriers to using them in this way. You have two main choices: you can install from CD (yes, exactly the same CD you'd use for installing the thing on your physical hard disk), but this is rather slow. A better way is to search for "VirtualBox images". This will lead you to sites that provide files ready set up for use with VirtualBox, which can simply be "slotted into place" using VirtualBox's own settings menus, and can then be called directly to boot you into a ready-made Linux desktop. The feeling of power and excitement when you do it for the first time is quite something!
At this point in a review I'd normally stop and run through some of the product's drawbacks, but in truth VirtualBox doesn't really have many, once you've become comfortable with how it works - except for an annoying tendency to interfere with wireless connectivity under Vista hosts. It's startlingly fast - guest OSes run at very nearly full speed. It's nice to look at. It behaves itself in terms of loading and shutting down without fuss. It's extremely stable - you happily can leave a guest OS running for days, flicking back and forth between it and the host numerous times. It allows you to create a "sterile area" to try things out, since any nasties that might get on to you guest OS system can be zapped either by shutting down VirtualBox, rolling it back to a previously saved "snapshot" point or in the worst case deleting the virtual hard disk file. And, of course, it costs nothing.
VirtualBox is available from its official website (see below for the address) for Windows (32- or 64-bit), OS X, various distros of Linux, Solaris and OpenSolaris host systems. It's not a huge download - for example, the Windows executable is about 75 MB - and so shouldn't take too long to grab on a half-decent broadband connection. I really cannot see a reason why anybody with the slightest interest in running more than one OS would want to be without this program, unless perhaps they are lucky enough to be able to afford one of the professional-grade virtualisation programs from other companies. This is about the easiest five-star rating I've ever awarded to any piece of software.
The purpose of VirtualBox is that you can have a virtual operating system inside an operating system. Some Linux users use this so that they can use Windows programs without having to setup a dual boot and have to restart each time they require something done on Windows.
Some other people use it to test their cross platform software out on different operating systems. Some use it to test out suspicious files. You can create virtual machines for lot of different operating systems and you can run it in seamless mode so it feels like you have the two operating systems in one.
The setup of virtual machines is very easy and user friendly. It is pretty self explanatory and you can choose set hard drive limits and RAM. You basically install it as if you had just built a computer. It can be quite useful to testing dodgy programs or using programs that only work on a certain OS on another.
If, like me, you have been intrigued by the phenomenon that is Linux, and the whole subject of Open Source and "Free" software then you might have thought about giving it a try. Linux is an Operating System, in other words, it does just what Microsoft Windows does, but differently. Also, it's free, unlike just about anything from MS, and has a reputation, deserved or undeserved, for being more secure and being kept much more up-to-date with fixes due to the wealth of people prepared to contribute their time and skills for the common good.
Linux supports all of the usual types of software you may want to use, such as Word Processors, Spreadsheets and Office Productivity tools in general, Media Players, Photo Editors, Web Browsers, Email Clients and so on. None of these will have been sourced from MS as, until recently, MS and the whole Open Source community in general and the Linux community in particular were at [undeclared] war. So, all of this software comes from other sources and most of it is free and, in my opinion, better than the equivalent MS offerings. Internet Explorer v Firefox is a case in point.
I have also been concerned about the vulnerability of computer systems, particularly home systems, especially in the face of the ever more sophisticated attacks of those whose intentions are less than honourable and in some cases down-right criminal. I recently wrote about the new breed of virus, the "Rootkit" and a piece of software from Panda that I found that is designed to seek and destroy them.
Of course, despite all best efforts, it is still possible for these unpleasant pieces of code to get onto your machine and to embed themselves in your systems, to secretly "look over your shoulder" and spy out all of your most personal details, to use in ways you would otherwise wish. So, how to protect yourself without having to continually keep reinstalling your computer from scratch so as to ensure that nothing lurks in the darkest depths?
Fortunately the first and second issues can be addressed with the same solution. It's called Virtualisation (or Virtualization for our cousins across the pond) Software.
So, what is Virtualisation? Well, suppose you wanted to try out Linux so as to see what it might do for you. First you need a spare computer. Do you have one? Maybe you're lucky and have an old one lying about that you can use. It probably doesn't have the most up-to-date hardware and probably not the greatest amount of memory or the largest hard drive.
Linux has the benefit that it will run on something less than the computer behemoth that Windows requires, especially if you are trying to run Vista, but even so, the days when you could run Linux on an "electric typewriter" are long gone, at least, they are if you want something to use where you don't have to be a Computer Guru.
Having another computer to use is a good idea but it does have the drawback that you need somewhere to locate it. Also, now you have to boot up two machines and swap between the two if you have software upon which you still rely that isn't on the other computer. Not a very user-friendly way of working.
So, what if you could have both systems on the same machine at the same time? Well, you can. It's called Dual-Booting. You split the Hard Disk (using software such as Partition Magic) so that in one partition you have your existing system and in the other you have your new system, for instance Linux.
At boot up time you are offered the choice of which you want to run, e.g. Windows or Linux, and you start up whichever you choose. A good solution but one where you can only run one at a time and you have to dedicate a fixed amount of disk space for the new system, whether or not you are using it all. So, a solution but hardly an ideal one.
This is where Virtualisation Software comes to the rescue. There are software applications that you can install that will give you all of the benefits of a dedicated computer, concurrent running with existing systems, flexible disk space usage and ring-fenced operation to keep in any unwanted intruders. By "keep in" I mean stopping them from attacking anything else.
What it does is enable you to create a "Virtual Computer" in the form of a Virtual Machine (VM). A Virtual Machine looks in all respects to a [Guest] Operating System like Linux installed in it as though it is a genuine, dedicated computer. It isn't though. It's simply a piece of software that listens to all the attempts by the [Guest] Operating System to talk to the [Host] computer hardware, such as your monitor, mouse, keyboard and network and enables them to talk to one another securely.
What the software does, though, is to fence in the Virtual Machine and prevent it (unless you say so) from talking to the Host in which the Virtualisation software is running, for instance, Windows and all its applications, files and folders. It can run several Virtual Machines all at the same time but it will still enable you to keep each one isolated from the rest so that there is no prospect of "cross-infection".
One you may have heard of is making big headlines at the moment. It's called VMware. It's owned by a company called EMC. They are proposing to float it on the stockmarket in its own right (whilst presumably retaining a controlling interest) and expect to make hundreds of millions. From this you will assume that the software isn't free, and you would be correct.
They have a version called VMware Workstation that is the edition that you and I would use on our personal PCs. It isn't free for personal use. A copy costs $189. You can get the VMware Player for free but you still need a copy of VMware Workstation to build your virtual computer image in the first place. VMware is very good. I have been using it for many years on my office computer but then I didn't pay for that copy; the company did!
Another option is Microsoft's Virtual PC. This is free. You can download it from the MS website. I did, to try it out as a Virtual Machine environment for a copy of Linux (Ubuntu - www.ubuntu.org). Surprise, surprise, it wouldn't run Linux. I never really thought that it would. You don't really expect MS to make it easy for you to run Linux in the Windows world do you? You might suddenly realise how good Linux is and decide that you can do without MS and their over-priced software.
So, finally we come to the subject of our discussion. VirtualBox (www.virtualbox.org).
I came across VirtualBox purely by accident, serendipity as it turned out! VitualBox is free software for personal use and for evaluation and is available in versions that can run on Windows, Apple's MacOS and on various "flavours" of Linux, including Red Hat, openSuSE and Debian. It is produced by a German company called innotek GmbH. It will act as host to Virtual Machines running a whole range of Operating Systems, from Windows (Vista all the way back to Windows 3.x and even MSDOS), OpenBSD and more varieties of Linux than you can shake a stick at.
My base system runs on an Acer TravelMate 8204WLMi with an Intel Dual Core 2.0Ghz processor, 2Gig of memory and a 160Gig hard drive, so, plenty of oomph. I have my hard drive divided up into two partitions, a C: and a D: drive, the C: for all of my applications software and the D: for all of my data files. That way, if the C: drive gets corrupted for any reason and I have to completely reinstall the Operating System, I don't lose any of my data, which I regularly back up in any case.
On this I run WindowsXP. Application-wise I'm almost exclusively non-MS compliant! I use Mozilla Firefox not Internet Explorer, Mozilla Thunderbird not Outlook Express, OpenOffice not MS Office (or even, heaven forbid, MS Works). So, why do I even run MS Windows? Because it came with the machine. So, I am very familiar with the sort of software applications that typically come with a Linux system.
I downloaded VirtualBox and it installed as clean as a whistle. I started it up for the first time and was presented with a window that in layout looked not unlike the VMware Workstation with which I was already familiar.
The top toolbar has just three options: File, Machine and Help. File offers the options of Virtual Disk Manager, Preferences and Exit whilst Machine duplicates almost all of the icons beneath of New, Settings, Delete, Start and Discard. The Machine menu adds only Show Log. For all normal purposes, all you would want to use is accessible via the icons.
The first thing you will want to do is to define a new Virtual Machine and install into it a new Operating System. I was preparing to install Ubuntu 7.04, the latest GA (Generally Available) release. So, I clicked New. This presents you with a Wizard that leads you through the process of defining a "container" for the new environment.
First of all you give a name to the new Virtual Machine so as to identify what system you have running in it. I chose something very imaginative - Ubuntu! Here you can also chose to identify the machine with a type of environment. I chose Linux 2.6 as this is the base Linux kernel that sits at the heart of Ubuntu. It's not important what you call it. It's really only an identifier.
Next you can choose how much computer memory you want to have VirtualBox tell the Guest Operating System it has to play with. You can set this to be as much or as little as you like. It doesn't have to be the same as the amount you actually have. You should choose the amount recommended by the distributor of the Operating System you are trying to install. I chose 256Mbs for Ubuntu. That's probably too much.
Next you set up the Virtual Hard Disk. This is not a real hard disk nor even a partition. It is simply a single file, a Windows file in my case, which acts as a container for every component of the Guest system. Starting from scratch, one will not already exist, so you click the New button and get offered the chance to define this file as Dynamically Expanding or Fixed-size. I can't think of any reason why you wouldn't choose the former as that will enable the most efficient use of disk space. However, it does mean that VirtualBox must manage "overflows" by adding additional space, so the file can get fragmented if you are continually blowing its size.
You can choose a starting size anything from 4Mbs up to 2Tbs but in practice it will be limited to how much free disk space you have. You can also choose where you want it located. The default will be in your Documents and Settings folder on the C: drive but you can put it where you want.
And that's about it. Couldn't be simpler. You now have a Virtual Machine. The next step is to configure it to receive the new Operating System. You do this by clicking on the Virtual Machine name on the left to highlight it and then click on Settings.
Here you have a list of options but the one in which you will be most interested is CD/DVD-ROM. By default it will point to your actual CD/DVD drive because this is where you would place the CD/DVD containing the installation for your new Operating System. However, you don't have to install it this way.
Most distributions are downloaded in the form of an ISO file. You can certainly burn this to a CD or DVD and install it this way but VirtualBox offers you the option of directing the request to the actual ISO file image and to read it as though it was a genuine CD or DVD. This is by far the easiest way but don't forget, after you have completed the installation, to come back to the Setting menu and redirect the CD/DVD back to the real one, otherwise it will be the installation disk image that is presented each time you start the Virtual Machine.
Now, just click the Start icon and you will get a new window in which the installation of your new Operating System will proceed. From that point onwards you just continue as though you were installing on a dedicated computer. I installed Ubuntu in about 45 minutes, without a hitch, although how long it takes will depend upon how fast your actual computer is. The next time you start the Virtual Machine it will be with your newly installed Operating System.
This is now just a vanilla system and there will be some restrictions. For instance, on my computer the maximum screen resolution offered by Ubuntu was 1024x768. Bearing in mind that the resolution on my screen in Windows is 1650x1050, the Ubuntu window got a bit lost in the middle. To get it to go bigger, and also to enable a few other benefits, you have you install the Guest Additions. This you can only do after you have completed the install of the base Operating System and brought it to life.
VMware has a similar feature but I have to admit that installing VMware's "additions" is a fair bit easier than is VirtualBox's. To install the Guest Additions you have to choose the "Install Guest Additions..." option from the Devices toolbar button of the running Guest's window. That puts an icon for the ISO image file of the Guest Additions CD on the Guest's Desktop. The rest of the process I'm not going to detail here since it depends entirely upon what guest Operating System your are installing. There is plenty of guidance on the VirtualBox Forum website, including entries from yours truly. Suffice to say that not all went smoothly but that wasn't any fault of VirtualBox.
You now have a fully operational guest running your chosen Operating System and it will behave exactly as though it was running on a machine all of its own. You can even run it at Full Screen by setting the screen resolution to be exactly the same as the actual screen. In this mode it looks like it is all that you have running. You can get in and out of Full Screen mode with certain customisable key combinations and in doing so you can minimise your Guest and still have it running in the background whilst you use your Host system for other things. Swapping backwards and forwards really is that easy.
What makes it so secure is that everything that the Guest is is contained within the file you set up when you defined the Virtual Hard Disk. Taking a copy of that file in the Host system means that you have something the state of which you can guarantee without having to reinstall from scratch. Should you get your Guest system corrupted by a visit to a dodgy website, for instance, then deleting the "in use" file and creating a new one from the backup will put all to rights. This is why it is so secure. What, Me Worry? (With apologies to MAD magazine).
Of course, this does not mean that you shouldn't use all the security software you can on your Guest. You would be daft not to. But, if all else fails you can give the Internet villains the old two-finger salute. Of course you may well receive files into the Guest that you may want to use on the Host, once you have made absolutely sure they're safe. That could include trying it out on the Guest first, to see what happens. If disaster, restore from backup. If success, pass to Host. The proviso for this is that, of course, Guest and Host must be the same Operating System, otherwise you can't really try it out.
I really love VirtualBox and will be using it more and more in future. So, remember...
Practice Safe Surfing.
UPDATE ~ March 2009
They liked it so much they bought the company! Sun that is. VirtualBox has now been bought by Sun and is available from them, still as free software. Let's hope that innotek's innovation only benefits from Sun's financial clout.