Hidden Dimensions - Synergy and Serendipity at Apple

by John Martellaro
June 12th, 2006

The universe is full of magical things patiently waiting for our wits to grow sharper.

- Eden Phillpotts, British novelist

There are many facets of creativity. One of those is the combination of two disparate ideas or subject areas to create something new and delightful. One example that comes to mind is Joss Whedon and his creation of the TV series Firefly and the 2005 movie Serenity. In this series, there is the juxtaposition of a future civilization with star travel and the American old west theme. In the process, something new and charming was created.

In the case of Apple, there were many technical and strategic reasons that took them down the path of Macintoshes powered by Intel CPUs. Clearly, it made good business sense for Apple to make that choice, but in this column, I want to focus on the unintended consequences that have come from the juxtaposition of Apple Macintoshes and the Windows OS. There is a new creativity, synergy, and serendipity that seems to be emerging from this combination of technologies. I'll look at a few of the technologies involved.

Parallels Desktop For Mac

One of the first interesting discoveries about the Parallels Desktop was that, since Windows appears in a window of Mac OS X, Apple's Remote Desktop (ARD) can be used to access a remote Macintosh running Windows and manage the Windows OS. I have been told that many IT managers are now delighted to be able to reach out from their Macintosh and manage the Windows system on user's machines. That's fairly cool, and a good example of creative IT managers making unexpected use of their new tools.


Windows XP, Parallels on Mac OS X. Click the image to enlarge.

Another synergistic effect I've been told about is the delight of some developers who want to work in a cross platform development mode and also be mobile. For example, in the case I was told about, a developer was working primarily in Solaris and wanted to be able to test his cross-platform app in Windows and Mac OS X. In previous times, he'd be in the lab, and have to move the app from machine to machine to conduct compatibility testing. But with the Parallels Desktop, he can carry his work around with him and do all the testing on one computer -- his MacBook Pro.

The screen shot below shows Solaris, SUSE Linux and Windows all running on a Mac OS X system.


Multiples OSes. Click the image to enlarge.

Dr. Phillip Ershler at the University of Utah Cardiovascular Research and Training Institute, Salt Lake City, Utah sent me this story:

I work with a fellow who is blind. He has worked with many screen readers both on Mac OS X and Windows. He has done a lot of beta testing for Apple regarding Voice Over. He has found that there is no one screen reader for Mac OS X or for Windows that will take care of all his screen reading needs. Voice Over is great if applications are accessible. Some of Apple's main apps are accessible while other notable ones (read this as iTunes among others) are not. So he ends up having to use two computer systems. One running Mac OS X and one running Windows XP. However, switching back and forth can often be a pain. There are two very popular screen readers for Windows. One is called Jaws from Freedom Scientific and the other is Window Eyes from GW Micro.

(...)

Much to our amazement, Window Eyes works, seemingly perfectly. If Window Eyes can be made to function I find it hard to believe that Jaws could be far behind. With "Rapid OS Switching" my coworker will be able to quickly switch to the screen reader most appropriate for a given situation. This will ultimately allow him to focus on just one computer, an Intel Mac. This is yet another example of how the Intel Mac is becoming truly "The Universal Computer". Parallels again becomes an important piece of the puzzle.

I should note here that one of the historical issues of running Windows as an application within Mac OS X has been access to the hardware. Because any app that wants to connect to the hardware has to go through the Mac OS X kernel, some technical problems can arise. In fact, the Parallels uses a slightly different and superior method (compared to Virtual PC), a lightweight hypervisor, whereby all the OSes are on equal footing and reside on top of, what's described by Ben Rudolph, Marketing Manager at Parallels, as a thin layer that fits between the hardware and the OS. This doesn't make hardware access trivial, but it does improve the situation dramatically because the guest OS doesn't need to tunnel through the host OS.

Below is a graphic that shows the layer concept for Windows or Linux as the primary OS, but the diagram is essentially the same when Mac OS X is the primary OS.


The Parallels version of a Jelly Bean [1] diagram. Click the image to enlarge.

The ultimate test here is access to the graphics system. In the case of 3-D intensive games, Ben recommends that you try Parallels first. It may work. If there are problems, then you'll have Boot Camp as a fall back position.

However, here's an important consideration. If you want to run both Parallels Desktop and Boot Camp on the same Mac, Ben advises: "Users should be careful to check their license agreement to make sure that they're able to use the same [Windows] copy for both (it differs by version and seller)." For organizations with a Windows site license, it may not be an issue, but it could be for individuals.


CodeWeavers Crossover

One of the disadvantages of Boot Camp and Parallels Desktop is that you must acquire a new, licensed copy of Windows XP Professional. (Windows XP Home has some significant limitations.) If you don't need to be running a complete Windows OS, but simply need to run a few Windows applications, the people at CodeWeavers have taken the open source WINE [2] project and ported it to Mac OS X. Here's how it works.

Windows has about 15,000 APIs. However, most Windows programs use only a small, consistent fraction of those -- the most common APIs. One can build a software tool that watches an application run and builds a catalog of the APIs that are called. Since most Windows APIs are publicly documented, one can then create an alternate implementation of the needed APIs using Mac OS X APIs. That alternate implementation does the same task as the Windows OS but without any Microsoft code or need for a Microsoft license. If one selects a small subset of applications such as MS Word, Excel, and Project, it's possible to create a list of which of the most common APIs must be converted to support them. It turns out that to support the most important Windows applications, only about 50% of the API's need to be re-cast.

Then, one builds an en environment within Mac OS X that allows one to double click a Windows app, launch it, and have it run -- acting just as it would in a Windows OS.

CodeWeavers has utilized this open source technology to build what's called Crossover, an implementation that will be supported for Mac OS X. It's still in alpha mode and the price hasn't been set, but indications are that the price will be modest.

Right now, the target applications for the Mac OS X implementation are Visio, Outlook, and Project. These are excellent selections. When I was at Apple, one of the biggest complaints I got from enterprise customers was that there was no version of MS Project or Outlook for Macs. It was a deal breaker in many, many cases. With CodeWeaver's CrossOver, that problem is solved.

CrossOver has been running on Linux for quite some time, and a list of supported Windows apps can be found on their Website.

A nice consequence of CrossOver is that it can be used for cross-platform porting. If you're a vendor of a Windows application that you want to market on Linux or Mac OS X, all you need to do is profile your app's APIs, make sure WINE supports all of them, then the job is done. You needn't recompile for a new target OS so long as host has an Intel CPU.

Below is a screenshot of MS Project running under CrossOver on Mac OS X. I know this screen shot alone will have lots of Apple customers dancing on the ceiling.


MS Project on Mac OS X. Click the image to enlarge.

One of the case studies done with CrossOver and Linux involves Children's Hospital in Columbus Ohio. There, many of the staff ran Linux on their desktops to allow an interface with the server environment that includes HP/UX, AIX, and Solaris. But the one application that they wanted for collaboration was MS Outlook. After seeing a demo of CrossOver, their LAN administrator elected to deploy the Server Edition which eliminates even the need for a client version running on each Linux desktop. A side benefit was that, unlike MS Terminal Services, they no longer had to track Client Access Licenses, simplifying things considerably.

If you understand how technology pieces fit together via hands-on experience, have imagination about what can be done, and work with a savvy vendor, you can solve some difficult problems in your IT infrastructure with a tool like this. I expect that when the Mac OS X version of CrossOver ships, many new, interesting synergies will arise.


Being curious about where VMware stands on all this, I asked them. Dean Puccini, VMware Sales Operations, sent me an e-mail and stated that they do not support Mac OS X at this time. Of course, VMware runs on Windows or Linux and similarly allows multiple virtual machines including Solaris. All things considered, however, without Apple hardware, Mac OS X, its digital lifestyle capabilities, security, and Apple's excitement and culture in the mix, all the other avenues just seem so, well, uninteresting.

I strongly suspect that when senior managers at Apple started thinking about moving to Intel for various reasons, the seduction of the virtualization technologies combined with Mac OS X was too great to pass up.

Send me your own stories of OS synergy like the ones I mentioned above, and perhaps we can publish the best ones.




All screen shots and diagrams in this article were provided by the corresponding vendors
and used with their permission.

[1] Apple developers know these well.
[2] Stands for: WINE Is Not an Emulator. A recursive acronym, just like GNU.