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!”

QuickMKS

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!

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States.
Privacy

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.

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?

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 libmks.so. 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.

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.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States.
Privacy

Processing your reply...

About This Blog

The Virtualization Pro blog offers VMware-focused commentary and administrative tips from several respected experts with VCP certification and vExpert recognition. Also check out SearchVMware.com for in-depth how-to articles, screencasts and more.