Virtualization Software for Linux

Virtualization Software for Linux: In computing, virtualization has been described in a variety of ways. But to simplify its meaning or to make it more casual I should say; virtualization is creating a virtual (not actual) form of a stuff to make it into something that is functional and efficient. For example, you create or virtualize an operating system to make it run as guest inside the host operating system without the need for additional hardware.

Some other forms of virtualization:

Server virtualization - emulation of server resources that includes individual physical servers, processors, and operating systems

Database virtualization - the separation of the database layer, which lies between the storage and application layers within the application stack

Network virtualization - creation of a virtualized network addressing space within or across network subnets

Application virtualization - hosting of several applications in an environment independent from the underlying OS

Now that you know a few things regarding virtualization, let us talk about the advantages of using it.

One of the main reasons why virtualization was invented is to save time and money. Virtualization makes it possible to reduce the number of computer hardware, servers and data centers but still caters to various software workloads thus reducing the cost of maintenance, manpower, and energy consumption. Through virtualization, time consuming tasks like monitoring, upgrading, and software configuration can be conveniently and quickly handled. Virtualization is also utilized to provide better security and stability. Like, if one virtual machine is hacked, only that particular VM is compromised while the others are safe and secure. Also, a software bug on one VM will not affect other virtual applications or operating systems. Software developers make use of virtualization by testing their programs across different platforms through virtual machines.

Let us take a look at some of the most popular virtualization software available for Linux:

VirtualBox is currently my favorite virtualization software and used it mainly for trying different Linux distributions, testing codes, and running Windows as guest operating system on my Ubuntu workstation. Some of its supported guest OS are BSDs, OS/2 Warp, Windows, Solaris, Haiku, Syllable, ReactOS and SkyOS. VirtualBox supports hardware virtualization for both the Intel VT-x and the AMD AMD-V extensions. Hard disks are emulated in one of three disk image formats: VirtualBox Virtual Disk Image (VDI); VMware Virtual Machine Disk Format (VMDK); and Microsoft Virtual PC VHD format. This means that a VirtualBox virtual machine can use disks that were created in VMware or Microsoft Virtual PC aside from its own native disk format.

Xen is a hypervisor that supports x86-64, Itanium, PowerPC 970, and IA-32 architectures. It can run a number of guest operating systems on a single computer hardware simultaneously. Xen utilizes a form of virtualization known as paravirtualization, which means guests run a modified operating system using a special hypercall ABI in place of specific architectural features. Because of this, Xen can achieve high performance even on x86 host architecture that is known to have an issue with traditional virtualization procedures.

Based on the Linux kernel and operating system, OpenVZ is an operating system-level virtualization technology. Compared with VirtualBox and Xen, it is quite limited in the sense that it requires both the host and guest OS to be Linux. OpenVZ features a physical server than runs multiple isolated operating system instances, known as containers, Virtual Private Servers (VPSs), or Virtual Environments (VEs). Every container is an isolated entity, and functions extensively as a physical server would.

QEMU is a processor emulator that depends on dynamic binary translation to obtain reasonable speed while maintaining portability. It supports the emulation of a number of different architectures, which include IA-32 (x86) PCs, x86-64 PCs, MIPS R4000, Sun's SPARC sun4m, Sun's SPARC sun4u, ARM development boards, SH4 SHIX board, PowerPC, ETRAX CRIS and MicroBlaze architectures. Together with CPU emulation, it offers a set of device models, allowing it to run a wide array of unmodified guest operating system. QEMU also features an accelerated mode for supporting a mixture of binary translation for kernel code and native execution for user code.

Bochs is a Mandriva-owned, portable x86 and x86-64 IBM PC compatible emulator and debugger mostly written in C++. It supports emulation of processor, memory, disks, display, Ethernet, BIOS and other common computer hardware peripherals. Bochs is widely used for hobbyist OS developing since it features error reporting and dump files that other emulators might not have.

Linux-VServer is a virtual private server utilization achieved by adding operating system-level virtualization functionalities to the Linux kernel via kernel level isolation. Virtual private servers are typically used in web hosting services, where they are effective in separating customer accounts, pooling resources and housing any possible security breaches. Linux-VServer is able to run multiple virtual units at once, with each unit adequately isolated to guarantee the required security while using resources efficiently.

Kernel-based Virtual Machine (KVM)
KVM is a Linux kernel virtualization infrastructure that features native virtualization using Intel VT-x or AMD-V. Paravirtualization support is available for Linux and Windows guests using the VirtIO framework, which includes a paravirtual Ethernet card, a disk I/O controller, a balloon device for adjusting guest memory-usage, and VGA graphics interface using VMware drivers.

When we talk about virtualization software, we should not fail to include VMware. VMware offers a number of virtualization products that include VMware Workstation, VMware Server, VMware ESX, etc. Its desktop application runs on Microsoft Windows, Linux, and Mac OS X, while its enterprise software, runs directly on server hardware without needing an additional peripheral operating system.

There are still plenty of virtualization software for Linux that I failed to mention. So I would like to ask you to contribute or share with us your favorite Linux virtualization solutions via comment.


  1. Good post. I use VMware most of the time but I'm also starting to like VirtualBox because its very efficient and simple to use.

  2. AnonymousJuly 16, 2010

    I've always liked VirtualBox, but I will try some other ones you mentioned.


  3. AnonymousJuly 17, 2010

    It's amazing how easy is KVM for using today. Just install kvm and virt-manager, and go. Even for installing Windows.
    Virtualbox was my long-time favorite. Not anymore.

  4. VirtualBox is my choice. It is very easy to keep your VMs at your USB or pen drive, take it wherever and if you quickly need to do something, you can always install for free on machine and get to work in minutes.

  5. My favourite is virt-manager and (k)qemu although I haven't really tried the others recently.

  6. It's funny that today if you run any OS in another OS we call it "virtualization".

  7. AnonymousJuly 19, 2010

    Yeah Grant, what happened to the days when I emulated a Mac on my Amiga? ;-)

  8. AnonymousJuly 19, 2010

    Good article. There is also lxc Linux Containers. Like OpenvVZ and Linux-VServer, it is operating system-level virtualization, but without kernel patching. Fairly new and immature but very promissiong.

  9. AnonymousJuly 19, 2010

    I use Proxmox VE: openvz and KVM with a very userfriendly gui!!!

  10. I vote Proxmox VE 2.0. its awesome!! and has the Turnkey linux repo already in there!!!! TKL is AWESOME!!!!

  11. Though it's commercial, VMWare can't be beat for stability, robust suite of features and applications, and compatibility with hardware, especially when it comes to Windows. I love VirtualBox for it's open source flexibility, and impressive features. Being able to use it anywhere is a big plus for portability, but VMWare really can't be beat, in far too many ways, out of all the countless hours I've spent testing VM software. Big con is you gotta be able to afford it or have a sponsor (your workplace) buy it for you. And it's generally not hard to convince most any company to make the purchase either, it's easy to sell.