Monday, 20 April 2009

What is a Virtual Machine on Linux (Virtualization in Linux)

With Virtualization, you can run unmodified operating systems - including all of the software that is installed on them - directly on top of your existing operating system, in a special environment that is called a "virtual machine". Your physical computer is then usually called the "host", while the virtual machine is often called a "guest".

Virtualization allows the guest code to run unmodified, directly on the host computer, and the guest operating system "thinks" it's running on real machine. In the background, however, Virtual Machine intercepts certain operations that the guest performs to make sure that the guest does not interfere with other programs on the host.


The techniques and features that Virtual Machine provides are useful for several scenarios:

1. Operating system support. With Virtual Machine, one can run software written for one operating system on another (for example, Windows software on Linux) without having to reboot to use it. You can even install in a Virtual Machine an old operating system such as DOS or OS/2 if your real computer's hardware is no longer supported.

2. Infrastructure consolidation. Virtualization can significantly reduce hardware and electricity costs. The full performance provided by today's powerful hardware is only rarely really needed, and typical servers have an average load only a fraction of their theoretical power. So, instead of running many such physical computers that are only partially used, one can pack many virtual machines onto a few powerful hosts and balance the loads between them.

3. Testing and disaster recovery. Once installed, a virtualization and its virtual hard disk can be considered a "container" that can be arbitrarily frozen, woken up, copied, backed up, and transported between hosts.one can save a particular state of a virtual machine and revert back to that state, if necessary. This way, one can freely experiment with a computing environment.


Techniques used by Virtual Machines

There are some techniques used by Virtual machines to emulate Operating System on other System Operating:

1. Paravirtualization. In the computer world, paravirtualization is a virtualization technique that show software interface to the Virtual machine which are same to the actual hardware but not identical.
2. Dynamic Recompilation. This technique were part of some Virtual machine, where System is recompiled as a part being executed before the program. By compiling before executing, System can bring the result code to the run-time program environment, and wish in resulting more efficient code from information explotation which is not provided by traditional static compiler.
3. Emulation. A technique allowing computer program to run in other platform (Computer Architecture or Operating System), although the program was created on different platform.
4. Dynamic Translation. Just-in-time compilation (JIT), known as dynamic translation, is a technique to increase bytecode-compiled programming systems performance, by translating running bytecode to native machine code. JIT was created according two idea on run-time environments, those are bytecode compilation and dynamic compilation.


Some examples of virtual machine, their licenses and operation methods:
1. Bochs, LGPL license, Emulation.
2. DOSBox, GPL license, Emulation using Dynamic Translation or interpretation.
3. DOSEMU, GPL Version 2 license, Hardware Virtualization.
4. GXemul, BSD license, Emulation using Dynamic Translation
5. PearPC, GPL license, Emulation using Dynamic Translation.
6. Qemu, GPL/LGPL license, Emulation and Virtualization.
7. VirtualBox, GPL version 2; full version with extra enterprise features is proprietary (free for personal and educational use and evaluation), Virtualization.
8. VMware Workstation Proprietary license, virtualization.




Reference:
1.Sun xVM VirtualBox User Manual Version 2.1.2. 2004-2009 Sun Microsystems, Inc. http://www.virtualbox.org
2. Info Linux, January 2006 Edition. www.infolinux.web.id
3. Comparison of virtual machine. Wikipedia. Retreived on 13 August 2008.

No comments: