Best Free Virtualization Solutions

Introduction

Virtualization is a fancy word, but what it means is that you can encapsulate entire operating systems or parts thereof in a bubble of virtual hardware and software so that it appears like a complete, separate and real physical host to the software contained inside this bubble. Think Matrix.

Virtualization has two dimensions: interaction between the physical host and the virtual host and the interaction between the virtualized operating system and the underlying hardware.

Virtualization software is normally run as an application or a service on top of an operating system, like Windows, Linux, Mac OSX, etc. In technical terms, the physical machine is referred to as the host. Inside the virtual software, an instance of an operating system is executed, which can be similar or identical to the one powering the host. In technical terms, the virtualized environment is known as the virtual machine and the operating system running inside as the guest.

Furthermore, there are different ways the virtualization is brought to realization. There's simple emulation, where hardware and software calls are passed through a translation layer. There's para-virtualization, where parts of the activity inside virtual machines are passed onto real hardware while others are emulated. There's operating system level virtualization, where you boot into a dedicated kernel that permits only same instances of the operating system to run.

Some of these methods can be performed on the fly, without significant changes to the host and its operating system. Others require that you reboot your host into a dedicated instance of your operating system that supports virtualization. Others yet require a complete machine to be used for virtualization only, also known as bare-metal virtualization.

Virtualization software that manages the creation and running of virtual machines, the allocation of resources and the containment is often known as the hypervisor. Some virtualization products can also use the CPU technology virtualization extensions to boost the performance of virtual machines. This is known as hardware-assisted virtualization and make use of technologies such as VT-x (Intel) and AMD-V (AMD).

What is not virtualization?

Some people like to bundle any software that creates an abstraction layer between the operating system and some of the running processes as virtualization. For instance, there's Sandboxie, which can isolate your browsers in discardable containers. Some programs let you freeze your system, so it cannot be modified. Others also allow the use of a so-called shadow mode, where you run normally, however all and any changes are discarded on reboot.

All of these programs have their merits, but they are not considered virtualization technologies, because they do not simulate system calls, nor they allow running complete new instances of other operating systems on top of your host; they only create additional separation layers, mainly for security. Speaking of security ...

Why should you use virtualization?

If security comes first and foremost to your mind - wait just there. We will discuss security in a separate article. But I do want to emphasize that virtualization was not primarily designed for security. It's mainly used for testing, consolidation of hardware and cost reduction, running legacy software, and education. Security is a nice bonus, but there are caveats, which we will elaborate separately.

What do you need to run virtualization technologies?

You will need a physical host of some kind. Depending on the type of virtualization software you choose, it will allow running virtualization software on top of your operating system alongside everything else - or it might require the hardware entirely to itself.

Since you are going to be running additional operating systems on top of your hardware, you will need additional resources, mostly CPU and RAM, to enable that. For example, if you machines has only 2GB RAM and it's already running Windows 7, spawning another instance of some operating system on top of it is going to be a close call, since you will have to dedicate some portion of your memory to the virtual machine. However, if you have 16GB RAM, then you can comfortably spawn four virtual machines with 2GB RAM each, which still leaves you with some 8GB RAM for your host.

Likewise, disk space and disk performance and CPU power are also an important factor. For example, running a mySQL database virtual machine from a 5,400rpm laptop disk is probably not a good idea. Or if you only have one CPU core and you plan on multimedia processing.

Ample resources are important for fast and efficient virtualization. You also want modern processors that support virtualization extensions, so you can enjoy additional benefits, including better performance, but also 2D and 3D graphics and other fancy stuff.

Free software

Now, finally, let's take a look at a few of the available technologies. For each, I will write down a brief explanation, the difficulty in use and setup, the intended audience, pros and cons, and other important details. I will also link to some of my very lengthy tutorials that teach how to setup and use these programs.

VMware Player

VMware Player is a cross-platform solution. It runs as another program on your system. You can use it to create virtual machines and install operating systems as guests. You can also run virtual appliances - pre-created virtual machines with specific uses.

homepage

VMware Player

Audience: new and intermediate users.

Pros: Simple to install and use.

Cons: Limited functionality; no snapshots or folder sharing.

VirtualBox

VirtualBox is a cross-platform technology, currently owned by Oracle, formerly Sun. VirtualBox is similar to VMware Player, but it has a wider subset of features, including a more advanced network stack, unlimited snapshots, some OpenGL and DirectX support, and more. It is quite simple to install and use. You can also use command line for automated deployments. One sore thing is that you cannot take screenshots of your guests. Disk management is somewhat convoluted. You can install Guest Additions to gain USB 2.0 support, shared folders and to boost performance. VirtualBox also has a portable edition.

homepage

VirtualBox

Audience: new and intermediate users.

Pros: Simple to install and use, lots of features.

Cons: No screenshots, importing existing machines is difficult, non-intuitive disk management.

You may also want to read:

How to install VirtualBox Guest Additions

VirtualBox networking & sharing tutorial

VirtualBox 4 review

VMware Server

VMware Server is a cross-platform solution designed as a technology demonstrator for the much more expensive ESX. It has two versions - 1.x.x, which runs with local console and 2.x.x, which runs with a Web console. VMware Server has its own networking stack, limited snapshot capability, but it comes without 3D support. The Server can create virtual machines or run appliances. There's also a powerful command line. You can install VMware Tools to boost the performance of virtual machines.

homepage

VMware Server

Audience: intermediate or advanced users.

Pros: Powerful network stack; ability to connect to remote hosts, command line.

Cons: Not easy to setup, especially on Linux, no 3D support, no folder sharing, limited snapshot capability.

You may also want to read:

How to install VMware Tools

How to setup VMware Server on Ubuntu

VMware ESXi

ESXi is a bare-metal hypervisor with a reduced subset of features compared to ESX. It requires its own host to run and has a locked-down console that you can manually enable. You cannot take screenshots or movies of your virtual machines and migration/cloning is by hand only. You do get memory sharing for improved RAM utilization, a powerful monitoring and management, and command line with ssh, when unlocked. You can install VMware Tools to boost the performance of virtual machines. In some cases, the installation is automatic. Para-virtualization mode is also supported.

homepage

VMware ESXi

Audience: advanced users or professionals.

Pros: Powerful, extended virtual machine options.

Cons: Dedicated hardware, lots of resources, not easy to setup or run.

You may also want to read:

How to clone virtual machines in ESXi

VMware ESXi tips and tricks

Kernel-based Virtual Machine (KVM)

KVM is a virtualization technology for UNIX-like operating systems only. It can be run in either the hardware or emulation mode, however without CPU extensions, the performance will be abysmal. KVM is designed for command line use, but it does have a decent management interface, which allows starting and stopping virtual machines, taking screenshots and more.  The interface known as Virtual Machine Manager (VMM) is also used to control Xen virtual machines. Local and remote use are supported. There's a known conflict with VirtualBox, but it can be resolved relatively easily.

homepage

KVM

Audience: advanced users or professionals.

Pros: Complete control and flexibility, very good performance.

Cons: UNIX-like only, requires virtualization technology extensions to work properly, emphasis on command line, several command-line utilities that can be confusing, not easy to setup or run.

Introduction to KVM

KVM & VirtualBox - side by side

KVM bridged networking tutorial

Xen

Xen is a virtualization technology for UNIX-like operating systems. It must boot in its own instance of kernel to work. The emphasis is on command line, with several utilities available, but it is also possible to use the VMM. Officially, Xen has been supported by openSUSE for many years and has recently been adopted into the mainline kernel release. Xen can run in hardware-assisted or para-virtualized modes, but the latter is extremely buggy to setup and run, with limited CD-ROM support and networking support. Xen also exists as live CD version and bare-metal hypervisor. Numerous third-party management tools are available.

homepage

Xen

Audience: advanced users or professionals.

Pros: Complete control and flexibility, very good performance, built-in kernel support.

Cons: UNIX-like only, para-virtualization mode is buggy, emphasis on command line, several command-line utilities that can be confusing, not easy to setup or run, must boot its own instance of the kernel.

Introduction to Xen

Other solutions

There are many other solutions, which I have not listed here, but we will see them in the future, like for instance Parallels Virtuozzo and OpenVZ and VirtualBox-based VMlite. Several image building and remastering solutions also exist, which sort of lean into the gray area between virtualization and thin clients. Linux also allows spawning operating system containers directly on modern kernels. And let's not forget cloud technology and cloud-like virtualization. We will talk about all these in the future, too.

You may also want to spare my Virtualization section a longer, deeper look, as it has some fifty guides and tutorials on a wide range of virtualization technologies and products, including online solutions and payware programs.

Conclusion

I believe this article will be useful to some of you. It introduces a wide range of virtualization technologies, on all levels - from newbie to expert. All of these solutions are free for personal use, however the hardware requirements, the ease of use and setup and the available set of features will determine what you need or want.

As a rule of thumb, most people will get by with either VMware Player or VirtualBox. Linux users might prefer KVM and possibly Xen. Power users might also want to take a look at the other available VMware products.

I hope you enjoyed it.

Cheers,

Dedoimedo

 

About the author:
Igor Ljubuncic aka Dedoimedo is the guy behind dedoimedo.com. He makes a living out of his very hobby - Linux, and holds a bunch of certifications that make a nice pile in the bottom drawer.

Share this
4.60494
Average: 4.6 (81 votes)
Your rating: None

Gizmo's Freeware is Recruiting!

Gizmos Needs YouShare your knowledge of free software with millions of Gizmo's readers by joining our editing team.  Details here.