Friday, January 25, 2008

Virtual Machines

This is an article I wrote for a magazine some time ago. I thought of publishing it here. Good for new programmers and computer science students.

In this article I’m going to discuss about what are virtual machines, their uses and the help we can get from them for our software development work. Even if you haven’t heard about virtual machines before, you may find them quite interesting when you get to know about them.

The term “Virtual” means something that does not physically exist. It’s something that allows us to interact with it in an imaginary sense. Consider playing a game. The game world does not really exist but it’s just a simulation that allows us to play in it. In the same manner virtual machines are machines (computers) that exist only as a simulation.

How to create a virtual machine

When you install the necessary software, you can create your own virtual machine on your real computer (on Windows or Linux). This virtual machine can have a RAM, hard disks, a BIOS and other configurations as you specify. Here are some virtual machine software that are currently available:

Commercial. Mainly used on Windows

VMWare Workstation
Microsoft Virtual PC

Free and open source. Mainly used on Linux

Virtual Box

Once you create the virtual machine you can install an operating system to it just as you would do in your real machine. Insert the operating system CD and boot the virtual machine. (The OS on the virtual machine is called the Guest OS. The OS on your real machine is called the Host OS.). You can see the screen of the virtual machine inside a window that appears in your virtual machine software. (See Figure 2)

The Uses

You may wonder what is the use of having a virtual machine on your computer. Well, the use is obvious. You could work on several operating systems at the same time without having to reboot your computer or moving to another real computer at a different physical location.

Suppose you are writing a software or a website on Windows and you want to test it on Linux. With a virtual machine, you can easily switch to the Linux machine (Just like in Figure 2) and test the software on that machine. Of course, modern virtual machine software support drag-n-drop facility so you can easily drag your files into the guest OS.


You can connect your virtual machine to a real network at your home or workplace. So the other machines on your network will see the virtual machine as a real machine. If you don’t have a network, you can create a small network between your real machine and the virtual machine. So you can test your software and do other network related stuff, just as you would on a real network (but no wires involved!).

You have nothing to loose…

Here is the best part about virtual machines. You don’t have to spend money to create them. So you can have any amount of memory or hard disk space you want on the virtual machine in a matter of few mouse clicks. (Of course, it is limited by the hardware configuration of your real machine). So you can experiment on the virtual machine without having to fear about breaking something or corrupting your operating system. If you break it, you can simply delete that machine and create a new one. It’s just simple as that.

So, begin digging. Test some virtual machine software and get a feel of it.

No comments: