Technorati Tags:
systemProfessionals.net,
srinivasan,
anandan,
virtualization,
virtual,
Machines,
Operating System,
OS,
containers,
Virtual Reality,
secondlife,
Microsoft,
VMware,
Denali,
oemu,
mygoya,
Desktop 3. Virtual Machines [VM]: A virtual machine is a way of using one set of hardware to run multiple operating systems. This enables us to use the hardware more efficiently. VM’s allow a company to save money that is spent of new hardware more effectively. Let us imagine a couple of places where this might be useful.
a. A company provides tech support for multiple operating systems where the support personal need to work on all Operating Systems at the same time without shutting down/restarting the OS as the time taken to do so is not productive.
b. A company is developing software and needs to test the product on multiple Operating Systems
c. A person like me who likes to check out multiple operating systems and how they differ at home with just one machine
In all these situations, it is far cheaper to use virtual machines that work by creating virtual containers that can run operating systems inside them. Note all these containers are actually using the same hardware.
This can be implemented in different ways,
a. You install an operating system [mine is Microsoft Vista] on your computer; you then install a VMM or Virtual Machine Monitor like Virtual PC/Virtual Server/VMware Player, etc. This enables you to create/run virtual machines by allocating RAM, Hard disk space etc to the virtual machine. You can now install an OS on this machine and start using it. The advantage of this approach is that you can do this on your existing computer provided you have a decent processor and lots of hard disk space and RAM. You can usually run three or four machines easily if you have 2 GB RAM. Another advantage of this approach is that we use the operating system that we load into the virtual machine “as is” or without changing it. This allows us to run almost any operating system including new versions directly. This is because each machine in the virtual container thinks that it is the only one running on the hardware and thus does not have any problems. The disadvantage of this method is that there is a host OS on which my VMM is installed and then there are the guest operating systems that run over that thus leading to higher processor usage and some amount of delay in responses.
b. The other way of running multiple operating systems on the same machine is to use a VMM but where the operating systems know that they are not, the only Operating Systems using the hardware and that it does not have complete control over the system. This is done by modifying the OS kernel and rewriting it to support virtualization. The advantage of this approach is that the OS works faster and makes better use of the VMM. The disadvantage of this approach is that you cannot use it on any OS but only on those that have been modified to work with the VMM. This results in higher development costs and a delay before an OS can be made available for use. E.g. Denali, etc
c. User Mode: This is a type of virtualization found mostly in Linux Operating Systems. In this method the entire OS runs as an application inside the host OS. Thus it runs at the level of the user and provides excellent security and safety to the host OS. There are some versions that can do the same in windows using a VM tool called Qemu. The type of virtualization used by Qemu is called OS level virtualization or hosted virtualization it is fast as it uses the host to process instructions just like any other application.
d. Hardware Assisted/based Virtualization: Till now we have seen different ways in which virtualization is implemented using software. Now we see a method were the hardware can by design run multiple operating systems at the same time. This means you can use only new hardware [Virtualization capable hardware was available for everyone only in 2007 when it was based on the X86 architecture]. The advantage of this approach is that the VMM runs directly on the Hardware eliminating the need for a host OS. This alone improves the machine speed drastically. Also since the Hardware supports and runs Virtualization it should be possible to isolate and upgrade hardware containers without shutting down all Operating Systems. Microsoft [MS Hypervisor]and VMware [ESX Server]
e. Hybrid Virtualization: Last but not least is hybrid virtualization where the VMM is installed on the host OS but has some layers that work below the OS directly with the hardware. This results in the advantages of being able to run any OS inside a VM while at the same time taking advantage of direct hardware interaction where possible. This is seen in VMM’s like Virtual PC, VMware Server, etc.
f. Desktop virtualization: Opps, I almost forgot this one. Desktop virtualization is like a thin client in the sense that it allows a user to login to another computer/server and use it as if the user was in front of the server/computer, the difference is that unlike a thin client that has only a keyboard/mouse and a monitor connected on a LAN, in desktop virtualization the desktop is accessible from anywhere including other computers, like in a remote desktop or terminal services session. This has now become even more advanced with the introduction of web 2.0 based online desktops that you can access from anywhere as long as you are connected to the net like myGoya