Wednesday, December 06, 2006

Coherence for the rest of us?

There's quite a buzz about Parallels new coherence technology. In principle, there's nothing that exciting going on here from a technology perspective but what we have is the result of competition. Basiclally, Parallels is serving a very useful market that VMware has forgotten -- the minority home user. Coherence allows you to run a virtual machine and have individual applications display their windows in the host OS. Essentially, you have a small program running in the guest OS that exposes the window for an app in the host. This is similar to what Meta-VNC is already doing with VNC. The nice thing is that they've packaged it all up in an easy to use form. So, running Windows apps on Mac OS X is nice and all but what about us Linux users? Well, I've done a little bit of research here and it looks like there are a number of tricks you can do in Windows to get an image of an app. The best way seems to be WM_PRINT/WM_PRINTCLIENT except that it requires support from the application. I don't know how many apps support this since WM_PRINTCLIENT is not handled by the default message handler. I'm thinking of starting though with the opposite case. Let's expose a single application from a Linux guest via VNC. The obvious way to do this is with a special X server. You simply launch your VNC X server on a new display, and then launch your app with the proper DISPLAY environmental variable set. We'll need a custom X server that can actually know how to render the individual windows of course. Plus, popups are going to require some VNC extensions. It should end up being pretty neat though. Definitely a fun little project. Is it useful to run Linux apps under Windows? I don't know. It's a fun project though :-)