First of all… what is a virtual machine?

Virtual machines, many times referred to as Vms are software applications that create a specific environment that basically mimics computer hardware. The meaning of such software is actually easy to figure out right from their names. They can be used to install and run operating systems. An operating system running “inside” a virtual machine is usually called a “guest OS” while the the operating systems installed on the actual computer is called the “host OS”.

Inside a virtual machine, you run the guest OS on a virtual hard drive, which is actually a big file stored on the actual hard drive inside your pc. This offers a really nice and easy way to run multiple operating system on a single physical computer, at the same time, without the hassle of partitioning, rebooting or doing other complicated operations.

Usually, people use VMs’s as they need to run software that their main operating system cannot run, learn using different operating systems or just try certain software in a safe, sandboxed environment.

virtual_machines

The act of using a virtual machine will usually be referred to as “virtualization” as well. That’s basically a shortcut to saying that you have a specific software installed on your computer that you can use as a standalone computer… but a very virtual one.

Some enthusiasts that haven’t played with a virtual machine before and are anxious to experience with one might have a pretty natural question to ask at first: “If I can run an extra operating system on my pc, how many of them could I actually run?”

Well, the answer is quite simple: it really depends on the physical resources your personal computer has. Because each virtual machine uses your pc’s CPU, RAM, space on hard drive and other resources. So if you will want to experience and see if you can beat some record of number of guest operating systems you could run at the same time on a single computer then… have fun!

The most popular (and free) virtual machine apps of the moment

Luckily, when it comes to VM options, you can’t complain. There are plenty available and most of them are free, especially for Linux users. So you shouldn’t have a problem finding a solution that’s best fitted for your needs.

Which one should you use? Well, the answer is pretty much based on the reason for which you’re going to use a virtual machine. If you’re just giving it a try, it’s the first time you’re going to run a guest OS, then most likely you should go for VirtualBox which is definitely the lightest and easiest to set up and run.

For advanced virtualization capabilities and for experienced users QEMU (especially if you’d run it on an ARM device) and KVM are going to be the best options out there.

So let’s go take a closer look at the options enumerated above and some others. 

containers-vs-virtual-machines

1. VirtualBox

VirtualBox is extremely popular for 3 reasons: it’s open-source, completely free and easy to install. It doesn’t have a paid version that could stress you later on with stuff like “upgrade for extra features” and such. It is particularly suitable for running both 32 and 64-bit operating systems, either Windows, different Linux distros or others.

It offers versatile virtualization, making possible to run pretty much any operating system you could think of (not those intended for ARM devices though). Coming with software and hard assisted virtualization and storing virtual machines as disk images makes backing up and migrating to other pcs or VM applications very easy.

It can be download right away from http://www.virtualbox.org/wiki/Downloads and installed without much hassle even by total newbies.

2. KVM

KVM is an abbreviation of Kernel-based Virtual Machine which is actually a fork of the QEMU project, working in conjunction with that tool, providing extra options and features beyond it’s native VM functionality.

Although KVM requires a bit more knowledge to install than VirtualBox, dealing with para-virtualized drivers, it’s actually a very popular choice especially due to it’s great speed and stability which are both at higher levels than what VirtualBox provides.

In order to start playing with KVM you’ll have to see if your hardware is suitable for hardware virtualization by running the following command in your terminal:

sudo apt-get install cpu-checker

If the response is “KVM acceleration can be used”, then you can step forward with installation by running the following command:

sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils

Then you can find the Virtual Machine Manager shortcut on the desktop that you can use to run your newly installed VM.

3. QEMU

Finally, here’s QEMU, which is the right choice if you’d like to run an ARM operating system, such as Raspbian, Android or something like RISC OS.

QEMU stands for “Quick Emulator” and is quite easy to set up. Some guest operating systems can be downloaded with QEMU built in which is actually rather nice. QEMU is in fact a hypervisor, a tool for managing hardware virtualization and can be installed with a single command:

sudo apt-get install qemu qemu-kvm libvirt-bin

4. VMware Fusion and Parallel Desktop are two popular VM applications that you can use to run guest operating systems having Mac OS X as host OS.

VMware Fusion has to be purchased in order to be used on Mac OS and although it implies a cost it is a pretty polished piece a software you’ll find quite nice.

Parallel Desktop is also a software aimed at Mac users which means it is also more polished than the average free VM options such as the ones mentioned above.