Here is a post to prove that I am still a Software Engineer. 😉
Before starting, just think about the following questions..
- How will you reduce the hardware expenditure in your organization? Obviously, without reducing man power and selling the hardware 😀
- While developing a module, after reaching a milestone, have you ever tried to modify something in an effort to improve the solution and screwed up the whole thing and started from scratch?
- In such cases, have you ever said something like, “Damn!!! (Sometimes non-parliamentary words ;)) If at all I could save my work and restart from THAT point!!!”
- Let us say, you want to try out some system level programming and scared to try on your machine?
- Lets say, I have machine. I want to distribute it to somebody without him or me spending any money on hardware (Similar to 1st point)
The answer for all these is Virtualization.
What is Virtualization? In my words..
It is a technology where you create a computer using Software. This machine will do ALL the tasks done by a normal machine. This machine is called as a Virtual Machine (VM).(Atlast, I think I could explain it in layman terms.)
Lot of vendors provides software that creates Virtual Machines. To name a few software to create Virtual Machines: VMware, XEN.
These software provides easy ways for you to create virtual machines (provided you have an OS CD/DVD). Using these software, you can say, get me a machine with XX GB Hard disk, XX GB RAM, X processors. Obviously, you need to have enough Hard disk, RAM and processing power on the host machine.
A few terminology:
Host machine -> The machine that runs your VM
Guest machine -> The VM itself.
For creating an OS using the above mentioned software, you need to enable Virtualization in the BIOS of your host machine. You can google for the steps to enable virtualization in your machine as the steps vary depending on vendors.
One of the advantage of virtual machines is, You can take snapshots of the Virtual machine. So, whenever you think that you have reached a milestone, you can take a snapshot of the machine and revert to it whenever you want.
For doing my UT, I’ll just install OS, Install pre-requisite software, Test our product. In each stages, I’ll take snapshot. So that I don’t have to redo the whole thing from scratch. (Acting clever :D)
This post is just an Intro about Virtualization. Soon, will write a post about creating a Virtual Machine (VM) online in around 10-15 minutes and download it and start using it.
In short, I’ll Be Back!!! 😀