Friday, April 3, 2009

One App, One Windows - on VMware

I checked out VMware Workstation's Unity view mode about a month ago and I can't get by without it. Unity view allows any application in a Windows virtual machine running inside your VMware Workstation to appear "seamless" on your Windows desktop. Any application running inside your virtual machine appears exactly as if it was installed locally, the only thing to indicate it is a "Unity" app is a small VMware "boxes" logo next to the Minimize icon:

Unity also has its own Start Menu so that you can start new apps as needed within that virtual environment:

The reason I was drawn to Unity in the first place is ease of use when switching between local and virtual applications. And the reason why I had to use virtual apps is to be able to switch between different user identities as quickly and seamlessly as I could. The identities I was switching between were mainly my Google accounts - my personal account and my blogging account.

This leads me to the main topic of my post: One App One Windows - on VMware...
The reminder of my post may make you think I am ideologically opposed to Windows, which I can assure you I am not. What I am opposed to is Windows being the "OS". Let me explain. 

Over the years, Windows operating system has grown well beyond the needs of users. Both in the case of desktops and servers. Users generally do not care about underlying functionality provided by the Windows OS. They care about applications. They care about being able to quickly start and shut down the computer, switch between applications, copy and paste, work with images. To them, Windows is a vehicle for running their applications. But Windows is not optimized to run applications. Windows is a general-purpose operating system trying to satisfy every user need, in effect not being "incredible" at any of its finite functions.

However, Windows is also the de facto only OS option out there (Apple Macintosh OS is really not different from Windows as far as the points I am driving in this post). This is GOOD. We are at this point in computing that we absolutely cannot afford even two different standards. We need one and Windows is great at providing that singular unified front upon which applications run. 

But that is all Windows really ought to be: a reliable, rock-solid platform that knows how to run user applications well and fast. But Windows has been an Operating System, which needs to control many aspects, some of which are actually more critical than application performance - i.e. management of hardware and how the overall system performs. To illustrate how inefficient Windows is at it, follow my example: It is a well known fact that Windows slows down with time. For any of you who owns or works with Windows (who doesn't??) must have noticed this. When you get a new PC, the performance is great. After 1-2 months is becomes "almost" intolerable (I say Almost because people accept it as part of the deal - mostly unconsciously - and do not question it). After a month of regular daily usage key end-user performance measures drop like a stone: Starting and Shutting down Windows, starting apps, killing unresponsive apps (which tend to increase in number as time goes by), copying and pasting, working with graphics, to name a few.

Windows Servers suffer from the same fate (albeit to a lesser degree). It is not as noticeable because little end-user interaction with these systems takes place but believe me it is true. Server apps do slow down unrelated to other technical issues or problems - just because as the time goes on Windows becomes slower at handling tasks.

I do not postulate abandoning Windows - no, not at all. I think Windows has a great GUI, is very intuitive to use, and all the apps work on it. What I postulate is that Windows gives up control of what it does poorly: controlling the system and hardware, and instead focus on running the applications well all the time.

Let VMware hypervisor take care of the system management. Wouldn't it be great if I could refresh Windows on my laptop weekly - get that new car smell every Monday morning, that feeling of fast, reliable, rock-solid. It is difficult to do even for us geeks, and definitely an impossible feat for a typical user. However, with VMware it will soon be possible to do just that (via a client-side Type-I hypervisor they are working on - that in itself is a topic for an entirely new post though).

On the server side, it has been possible to do for years now and as a matter of fact many (thousands.. perhaps millions) data centers already utilize VMware ESX to shield (protect??) Windows from the hardware and system management tasks so it can focus on running apps.

Which brings me to the final key point of my post: Windows itself is an application that VMware hypervisor runs and manages best. Always fast, always reliable and fault-tolerant, always rock-solid. Exactly the way we want our beloved Windows to run but have never been able to. Each of these Windows applications is itself only permitted to run one "utility" application (end-user or server). Architected and deployed in this fashion, it truly becomes possible to have rock-solid performance from your Windows your Application, every time.

Just like with my Unity - I don't care about whatever else is on the virtual windows. All I care about is to have an isolated Gmail available to me to switch to instantly whenever I want to. And also to be able to dismiss it fast (err.. to hide my blogging addiction from a passing-by boss :-) by hitting that red square button.

Time will tell whether VMware is successful at wrestling the control of The System from Windows. 


  1. Looking forward to more posts! These are a great tool for those of us just getting into VMware.

  2. Thanks! I will keep posting useful stuff I encounter "in the field" as time allows (my work schedule has been pretty taxing as of late hence my silence on the blog...)