Virtualization at Home
I’ll try to keep this post readable, but you need to have at least an intermediate knowledge of computers to follow along. A few years ago, people in the tech world started catching onto the benefits of ‘virtual machines’ to help loosen the link between hardware and software. Virtual machines are entire computers that are implemented through software. In other words, the end result of a virtual machine in Windows is a computer screen in a window on your Windows desktop that is running totally unaware of the fact that its contained within another machine.
For software developers, the benefits are vast. First of all, chicks dig virtual machines. Secondly, you gain the ability to distribute, swap, and create entire machines with the click of a few buttons. These virtual machines run on virtualization software like VMWare, that was once just marketted for testing software easily in different operating systems, but now has become a staple many IT infrasturctures.
Its a great step in the right direction for IT, but what about everyone else? What about the ‘I just check my email and surf the web’ group that wants to boast to their friends about their awesome Virtual Machines. Is there any practical use for the average home user? Unfortunately the benefits generally don’t outweigh the costs of setting up such an environment. The only exceptions are if you want to do it for fun, try to impress your spouse, or have very specific computer usage patterns that fits with the concept of virtual machines.
First I’ll go over the basic steps for setting up a virtual machine. If you’re planning to setup this sort of environment for yourself, find some more detailed instructions. These steps are just to give you an idea of whats involved with setting up the environment:
- Download virtualization software - There are two solid options here. VMWare’s stuff, and Microsoft’s Virtual PC 2007. I will proceed with the assumption that Microsoft’s package was chosen because its free, and its more home user friendly (in my opinion).
- Setup a Virtual Disk - Not as complicated as it sounds. Just tell Virtual PC that you want to create a virtual disk file on your hard drive. You tell Virtual PC how big you want it to be, and where you want to put it. The end result is one giant file on your hard drive that represents your entire virtual machine’s disk.
- Setup an operating system on the virtual disk - This is the big step. Since you setup a blank virtual disk and have it running on a virtual machine, you’ve essentially got a brand new (virtual) computer with no software, including no Windows. This is also the step that costs users the most since they need to find a licensed version of Windows laying around in their house. If you’ve got an old version of Windows 2000 or something, then this is the time to dust it off and set it up.
The process takes about 2 hours for the first time around. The end result will be a virtual Windows desktop running on your actual desktop. Great, right? Now what are you supposed to do? In the IT world, we would use this opportunity to install a database for very specific data or possibly a web server that we can use to distribute to different machines. But what about the home user? Just another box to check email and surf the web? Like I said early on, the benefits generally don’t outweigh the costs for the average home user, but maybe some pros and cons will help give you some idea of whats possible:
Benefits
- Truely independent environments - This is a really neat use of virtual machines. In the past, I’ve heard many novice computer users ask me, “how can I let people use my computer, but not be able to see my stuff?” The concept of a “Windows user account” is very weak, because the entire machine is shared between users aside from a small set of settings and a documents folder. Everything else is accessible to all users, and in the home edition of XP and Vista, theres nothing you can do about it.
Now imagine the question answered with two level of Windows. When you turn your computer on, you get prompted for the shared username and password, the one you give to your spouse and children. After logging in, you have a desktop with one icon per family member. Each icon opens up a virtual computer, and when the virtual computer boots up, you are prompted for your personalized username and password. Now you have an environment that is 100% independent from the environments of the other users in your family.
In the past, this was a crazy idea because it involves a tremendous amount of hard drive space. But nowadays, a 500gb hard drive costs as much as a modest mouse. Space is no longer a concern. Licensing windows remains an issue so that is where having old copies of operating systems is a good idea.
- Backups - Remember when your hard drive crashed a few years ago and you lost all of your wedding pictures so you had to go to your friends and syphon their pictures to restore your album? What about those terrible 80s songs that you downloaded from Napster? Napster’s gone now, how are you supposed to get them back? For months after the crash you always remembered something else that you lost, and the same thought goes through your head; “I should have done a backup.”
Do you remember why you didn’t, and still haven’t, done a backup? Because you’ve got no damn idea what a backup is or how to perform one. Your friend told you to 10 years ago to “put it on a CD.” Put what on a CD? You want to put your entire computer on a CD, but you figure out after a while that its not possible for an entire computer to exist on a CD. You can buy software like Norton Ghost, but are you really confident that you’ll know how to restore the backup if your drive crashes?
With virtual machines, your entire computer exists as a file. A backup of your system only involves one step: copying this file somewhere else, like on an external HD. You can even setup windows scheduler to run the backup every night, just one copy command and you’re done. Heck, keep 5 copies and roll them so you can backup your system to 5 days ago, before you opened that v1@grA cialis email that caused your computer to experience unwanted side effects. Now when you have a hard drive crash, you just restore your main system, install Virtual PC, and get your virtual machine backup from that external HD. You’re up and running again.
- Portability - iPods and notebook computers might have you thinking that the word ‘portable’ means ’small’, but thats not the case. Portable is actually something that can be moved or transported quickly and easily. In this case, we’re talking about virtual machines. The portable nature of a virtual machine lies with the fact that the entire machine is contained within a single binary file. As large as this file may seem, it can be moved around on its own, and loaded up anywhere with a Windows operating system.
So lets think up a scenerio where this would come in handy. Christmas time is a great example. Its January 22nd, you’ve got a 5 hour drive to the inlaws and your wife is standing at the door with suitcases and trying to get the kids to stop crying while you finish up the big presentation thats due on the 28th. You don’t own a laptop, and you want to bring your work with you so you can get stuff done while your wife talks about your back hair and digestive irregularities to her family besides the christmas tree. So you start unplugging your desktop and asking your wife if her parents have a power strip, which would be completely unnecessary if you were using virtual machines.
With virtual machines, you simply take your virtual disk file, load it onto your son’s iPod, and load it up on your inlaw’s machine. Its like taking the entire computer with you. Every computer with Windows XP or greater can run Virtual PC. Now when your father-in-law walks in on you looking at porn on his computer and asks, “are you looking at porn on my computer?!” You can respond, “No, I’m looking at porn on my VIRTUAL computer.” before you start looking for hotel rooms on your virtual computer.
Downsides
- Gaming - Well, every silver lining has a dark cloud. If you’re an avid video game player that loves the high quality graphics of recent games, don’t try to run a virtual machine. These machines have strong performance for business applications but sharing video resources with your host machine makes high end games a bit of a nasty experience.
- Licenses - Microsoft isn’t in the charity business, so acquiring licenses for each installation of an Operating System is no trivial matter. If you’re interested in setting up XP or Vista on your virtual machine then you better get ready to pay for it. If you’re not interested in paying, and don’t have old copies of windows lying around, the good thing is that there are free linux based operating systems you could potentially fall back on.
There you have it. I’ve just started experimenting with virtual machines for home use myself, and it really requires a new mindset to fully understand the benefits. I only listed what I could here, I’m sure that there are many more interesting uses for these virtual machines depending on one’s degree of technical abilities.
ilamankad wrote:
dev made me read it
Posted 24 Dec 2007 at 12:26 pm ¶
Manoj wrote:
It is readable, Devbhai!! Well, that sounds interesting. I guess Uday and I will try it!! Thanks.
Posted 10 Feb 2008 at 2:31 am ¶
Mark wrote:
Soooo I take it you are in favor of Virtual Machines?
You don’t mention what’s involved with doing this for Macs though… I’m sold on the idea, but I don’t have a Home PC… so what do I doo?!?!?!?
Posted 27 Aug 2008 at 11:48 am ¶
Richa wrote:
Well I think what Dev says is correct. Virtual machines are useful for developers and IT organizations, but not so much for the home user, and the technical knowledge setting one up requires defeats most laypeople.
That said, a few comments on setting up virtual machines on a Mac:
1. Don’t use Virtual PC. Microsoft doesn’t support it anymore, and it’s dog slow.
2. Parallels is very useful (and more importantly, dead easy to set up), and I used it for a while, but for the true portability lover, VMWare is the way to go. VMWare is available for Windows, Mac OS and Linux, and so is great for developers who increasingly need to use some combination of multiple systems to get their jobs done. What’s more, a Windows user can set up a VM to house an Oracle database, for instance, but then can transfer it to their Mac OS or Linux-using colleagues with a single file transfer, and a guarantee that it will work seamlessly.
In my case, I run Leopard with an installation of Windows XP in VMWare Fusion (the latter costs you about $80), so I can develop using the power of Unix in Mac OS, but test my web applications in IE when I need to. Windows when I need it, out of the way when I don’t. What could be better?
Posted 28 Aug 2008 at 8:56 am ¶