Virtualization Pro

Jan 17 2008   4:07PM GMT

The VMware VI Client – Why is it Windows only?

Kutz Profile: Akutz

Have you ever wondered why VMware’s VI client is Windows only? The most obvious reason is that it is written in C# using the .NET framework. However, the client could easily be written in Python or Java or some other OS agnostic language. So why Windows only? There are in fact two reasons the VI client is Windows only, let’s take a look at them.

“I’ll be your Huckleberry”

VMware apparently uses a C library called “TomSawyer” to handle the task of graphing performance output. Digging into a disassembled VI client, you can see where the Interop assembly is used and what it is used for. Using the Microsoft OLE/COM viewer to peer directly into TomSawyer’s library certain functions and strings like “GridColumnObject” and “TSEFlowChartType” give away the library’s purpose. I cannot think of a reason to marshal a library that graphs datasets unless VMware thought .NET was not up to the task of plotting data. However, the performance graphs displayed in a VI client take so long to initialize anyway that I do not think anyone one have noticed. As Barney on HIMYM says, “JIT up!”


Sorry, I did not have a witty title for this section 🙂 The other reason that the VI client is Windows only appears to be the library that it uses for the console view. The MKS (mouse, keyboard, sound) library is what the VI client marshals when it creates the console connection directly to the VM. Notice the absence of a V? I do too. Although the library’s name does not explicitly state that it is responsible for video, the functions inside of it, FullScreen, SetFullScreen, SetGuestSize, etc., seem to indicate that it *is* the responsible library.

Anything else?

TomSawyer can certainly be ported to run natively in .NET or another language (it does already in fact have a Java version), but QuickMKS may be a bit more difficult. It almost certainly relies on native OS calls that are most likely quite difficult to get working on other systems. However, if VMware would be so kind to send the source code my way, I’d sure like to try! 🙂

4  Comments on this Post

There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.
  • AIX
    These reasons are B.S. As VMware has told me, and I quote (well paraphrase) VMware has committed to the Windows platform because that is our target audience. If there is enough requests the VI Client will be ported to a Web enabled application.
    0 pointsBadges:
  • Akutz
    So you're saying that your paraphrased account is more valid then the research and valid library dependencies I have found? Interesting assertion. Bad language aside, while you are correct, Windows is where the market share is at, have you forgot that VMware Workstation has always been both for Windows *and* Linux? VMware caters to both markets, so the real question is why didn't they this time?
    640 pointsBadges:
  • Brendan0powers
    It looks like there is a version of the mks library for linux. When you view the console from firefox in linux, your prompted to download an extension named "vmware-mks.xpi". When I extracted the package, I found So it seams that the effort was made to at least make the web interface work properly in linux. Although this may be a result of one of there other products that has a linux version.
    0 pointsBadges:
  • DMilisic
    FYI, VMware MKS -- That's actually Mouse-Keyboard-[I]Screen[/I Also, there *is* a RemoteMKS Linux binary for ESX 3.x and Server 2.0, it's just well hidden -- Works just fine on its own when exposed ;) Regards, D.
    0 pointsBadges:

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

Share this item with your network: