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 systemsDatabase virtualization - the separation of the database layer, which lies between the storage and application layers within the application stackNetwork virtualization - creation of a virtualized network addressing space within or across network subnetsApplication virtualization - hosting of several applications in an environment independent from the underlying OSNow 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 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.