Dedicated Virtual Machines

The other day I had a conversation with a coworker about Windows 7 and it’s “innovative” XP mode. I put the word “innovative” in quotation marks because the only innovative thing about it, is the idea of bundling a free virtual machine with a Microsoft OS in order to break backward compatibility. As you may know, I’m a big supporter of virtualization and I’m thrilled to see the slow moving (glacial pace) behemoth such as Microsoft adopting it in such a clever way.

Of course this was pretty much the first time my coworker heard about virtualization and I quickly had to dispel his newly found appreciation for Microsoft by pointing on my screen. I was like “Dude, I’ve been running Windows XP in a VirtualBox on my Ubuntu box for years now. This is how I get the best of both worlds – I get to rely on Linux OS for stability, security and wealth of open source tools and applications, and at the same time I have access to Windows only apps such as Visual Studio, Excel, Monarch. My VM allows me to develop in C# using Visual Studio Express and test my app in an environment that is almost identical to the production without actually having to log out of Ubuntu.

When I started messing around with linux I used to dual boot my machines. I no longer do that. My boxes are either straight Windows or straight Lixux. If I need Windows compatibility on a Linux box I just fire up a VM – which is actually faster and more convenient than rebooting the system.

Microsoft’s decision to bundle XP mode in their new OS release shows that virtualization technology is slowly becoming commonplace tool, rather than just a curious oddity. Windows is using it to solve a particular problem – namely braking backwards compatibility. I envision that in the near future we will see it employed to solve even more trivial problems.

For example, I’d love to see virtualization used to simplify application or development environment setup. I’m pretty sure most of us encountered this issue before. It is probably the most commonly experienced by Windows developer, but it can occur in just about any environment. You know what I’m talking about, right?

I’m talking about code which only compiles under a specific version of the compiler. Compiling it in the most recent release results in a spectacular failure. So you essentially have to download and install a 5 year old version which is known to have serious bugs, and security issues.

I’m talking about project files that can be opened only in the 6 year old Visual Studio version that can’t even be downloaded or purchased anywhere. You have to borrow the only remaining installation CD copy from Johnson on the second floor along with the CD key scribbled on the back of an envelope.

I’m talking about a code that requires you to install an ancient version of PHP and then copy over the php.ini from the production system, and then re-create the intricate tree of include and temp folders and their permissions to even start working.

These things happen all the time – usually on poorly maintained projects from hell. In an ideal world we would not need to deal with these situations. Sadly we do not live in an ideal world. Virtualization could alleviate some of the frustration involved in working on a project like that. Instead of taking hours to tweak your workstation to mirror the original development environment, you could just use a VM.

Imagine this scenario – you get assigned to the project from hell, and the project manager would simply takes a snapshot of his environment and gives it to you. You fire it up on any machine, and you are ready to go. You take that environment with you whenever you switch computers. And if you want to work from home one day, it is not a problem. You just put the VM image on a CD or a flash drive, and boot it up on your home machine. You don’t even have to be running the correct OS, and you don’t have to make any changes to your system. It just works. How awesome could that be?

We developers are not the only ones who could benefit from it. Recently I have been working with an application from hell that was released by a certain bank that hall remain nameless. This application is essentially an Excel plug in which is the most flaky and temperamental piece of software that I have seen in years. Basically if you want to use it, you have to be running Windows XP, Microsoft Office 2003 Professional and .NET Framework 1.1.

If you have Vista you won’t even be able to install it. If you happen to have Office 2003 Small Business or Office 2007 Professional or anything in between you are shit out of luck. If your computer downloads one of the hotfix updates for .NET 1.1 the whole thing is going to literally explode in your face. It’s a nightmare – especially since we have been slowly migrating everyone to Office 2007 for the past year or so. Now we are forced to downgrade these folks.

I wish I could just set up a virtual machine with a pre-configured instance of this plugin and hand it out to people. It would really make my life so much easier. Sadly, I don’t think we are at this stage of VM adoption yet. I actually hit a brick wall even trying to explain this idea to some of my coworkers. The truth is that most people don’t understand virtualization until you actually show it to them. And even then, they only half grasp what exactly did they just see.

There were other significant problems I noticed beyond the need to train the staff on VM use:

  1. Licensing: I’m pretty sure that issuing a copy of Windows XP and Office 2003 Pro inside of a VM would require some special licensing agreement with Microsoft. I have not looked into it, but chances are that no existing licensing scheme covers anything like it, and the whole operation would simply be illegal.
  2. Deployment: – virtual machine images are still huge – several GB each. I really don’t see an efficient way to distribute these to people electronically – especially to remote employees who never visit the office. Downloading these files would be a major pain in the ass due to their size. And of course if bunch of people tried downloading them at the same time it would probably make our servers to slow down to a crawl. I can see a scenario where we would eventually settle down on mailing these things out on flash drives and I’m not liking it one bit.
  3. System Resources: VM’s are still quite resource intensive. A virtualized Windows XP has pretty much the same system requirements as a non-virtualized one. In my experience, to comfortably run XP in a VM you need at least 2GB of RAM and a dual core CPU. This way you can give 1GB of RAM over to the VM and know that it won’t monopolize all of your CPU cycles. Some of the machines we use at work do meet these requirements. Most do not – they have barely enough juice to run XP, the bloated AV suite and the usual assortment of spyware and malware that each of our employees insists on installing. Throw a VM into the mix, and their machine will die in flames

As you can see, I did consider doing this, but eventually dropped the idea. It simply wouldn’t work in our environment. Still, the inclusion of XP Mode in Windows 7 gives me hope that one day I will actually be able to roll out a virtualized solution to a problem like the one above.

This entry was posted in technology. Bookmark the permalink.

9 Responses to Dedicated Virtual Machines

  1. Mart SINGAPORE Mozilla Firefox Windows Terminalist says:

    I use virtualization a lot at work. I’m doing software QA so it really helps when you can “roll back” to a previous snapshot.

    Virtualization may not be common yet, but I find that it is quite widely used among corporations.

    I like the tech behind XP mode in Win 7. You’re not running the app from within an XP image. Seems like the XP resources are wrapped for the app when you start it in XP mode, so that the app looks like part of the Win 7 desktop. Explains why a user will need to shutdown the XP image in order to start apps in XP mode. Is it possible to start more than 1 app in XP mode?

    Oh and regarding licensing, it is a huge b*tch when virtualizing Vista and Win2008. Each time you “clone” an image for those 2 OSes, it will cry for a new activation upon startup. I hate that.

    Reply  |  Quote
  2. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @Mart: Actually, I haven’t really looked into that feature very much. People get excited whenever Microsoft posts some silly blurbs about their “new features” and get all worked up.

    I look at these things and go “how nice, our little toy OS is growing up” or I just roll my eyes at their ineptitude.

    But yeah – I use a VM at work all the time for testing new software and things like that. It’s great – I don’t know how I lived without it now.

    You are 100% right about Vista. I installed it in VirtualBox to mess around with it on my spare time one day and had to activate it. Then after 3 days it deactivated itself. Then deactivated itself again after a week. Needless to say, it is no longer taking up space on my HD.

    Reply  |  Quote
  3. “I actually hit a brick wall even trying to explain this idea to some of my coworkers. The truth is that most people don’t understand virtualization until you actually show it to them.”

    No one can be told what the Matrix is. You have to see it for yourself.

    Reply  |  Quote
  4. Mart SINGAPORE Mozilla Firefox Windows Terminalist says:

    @Luke Maciak: Oh and you missed one resource requirement for XP mode. You don’t specifically require a dual-core CPU, but a CPU with hardware-level virtualization support is needed, such as Intel VT or AMD-V.

    A lot of lower end CPUs from them don’t sport these, and such CPUs are usually used to build cheaper, entry level PCs from most manufacturers’ brands. I hope the interwebz won’t buzz with “Y cant my Windoze7 run XPmode!!!111” questions when Windows 7 does come out. :S

    Reply  |  Quote
  5. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @Chris Wellons: Ha! Good one!

    @Mart: No, they don’t require multi-core CPU. You are correct. I just wouldn’t recommend running a VM on a single core machine with low memory.

    The hardware level virtualization is something I didn’t even consider when writing this. Thanks for bringing it up. I’m sure that the new PC’s running Windows 7 won’t have that problem though. The manufacturers will make sure that the machines with sucky CPU’s will only be available with “Windows 7 Home”version which won’t include the XP mode. They will sell the “Windows 7 Ultimate Super HD Plus Mega Turbo Platinum Edition” which does include it only with their mid and higher end machines.

    People who “upgrade” to Windows 7 will be just like the people who upgraded to Vista – shit out of luck.

    I wonder if Microsoft is preparing something akin to the “SATA surprise” for their Windows 7 release. I find it funny how most of the Vista machines these days ship with SATA drives which are not sported by XP out of the box. It’s as if they made a deal with manufacturers to use these drives so that people can’t easily downgrade their machines back to their old OS without assistance.

    Reply  |  Quote
  6. Mart SINGAPORE Mozilla Firefox Windows Terminalist says:

    @Luke Maciak: Yeah, that’s true. A dual core will serve the VM better, but the killer punch is always more memory.

    Yes, one can definitely, definitely use more than 640kB.

    Yeah, but that’s mainly because in BIOS, the SATA port is operating on ACHI mode, which is not natively supported by XP. Switching back to the more compatible IDE or ATA mode helps but you lose the benefits of SATA, like hot-swapping.

    I find it even more appalling that some manufacturers don’t even bother to support XP for their system! They don’t develop or host the drivers, so you have to hunt the web for a correct one. And that’s no easy task, since most of the time, the manufacturer don’t tell you what chip is used.

    Reply  |  Quote
  7. I wish Windows would build a “light” version (and do NOT tell me that they do, and its the 3 levels that you can purchase it in).

    I am talking Windows: OpenBox Edition light

    It comes with XPlr (Explorer Light), and the files required to make windows run windows applications. Thats it. (Think WINE the OS).

    I would probably buy a license of it… just to try it if nothing else.

    Reply  |  Quote
  8. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @Mart: Yeah, they don’t support XP if they don’t offer if for that model. I mean, it does make sense (why would you host drivers for OS you do not install by default) but it does suck for us customers.

    @Travis McCrea: Oh, you mean like Windows Fundamentals for Legacy PC’s? It’s basically a stripped down XP. Unfortunately, last time I checked it was unavailable in retail and only sold via site their licensing schemes.

    Reply  |  Quote
  9. Square UNITED STATES Mozilla Firefox Linux says:

    Sorry for the late comment, but this may peak your interest. It’s along the lines of the post.

    Reply  |  Quote

Leave a Reply

Your email address will not be published. Required fields are marked *