Presumably, moving from a third-party developer to the designers of Windows has benefited all three of the virtual machine products. Silver thinks this includes Virtual PC for Mac. "Microsoft has the source code to Windows, and even though Mac Business Unit is autonomous, it has access to resources that outside people might not.""We thought about Virtual PC for Windows and Virtual Server in an integrated way. Theyre pretty tightly related and share a common set of engineering resources," said Berg. "Theres not a lot of technology to share with the Mac version." Virtual PC for Mac is a more complex piece of software than the Windows versions. In addition to providing multiple virtual machines for Windows to run in, Virtual PC for Mac must emulate the processor and the graphics subsystems. Like the versions that preceded it, Virtual PC 7 doesnt emulate a specific processor but emulates a set of x86 instructions as would be executed by an x86 processor, including any Pentium. The x86 instructions are only simulated, since the actual instruction set Virtual PC uses is for the PowerPC processors. This worked fine for the PowerPC G3 and G4 processors for a number of years, until the G5 came along and stopped Virtual PC 6.1 dead in its tracks The reason for the incompatibility has to do with the order in which bytes are stored. PCs using x86 processors store bytes using a method called "little endian." Macintoshes traditionally use a byte order called "big endian." However, the G3 and G4 processors offer a feature called "pseudo-little endian mode," which is what Virtual PC used to get better performance for Windows. The G5 processor eliminated pseudo-little endian mode, which required Microsoft to significantly rewrite large portions of Virtual PC. In addition, Microsoft revamped the graphic subsystem in Version 7, supporting Mac OS X graphics frameworks as well as graphics hardware. The result is faster, smoother graphics and better user interface responsiveness, particularly with Windows XP. Although the graphics system is still emulated, Version 7 adds support for graphics hardware acceleration. Before Version 7, Virtual PC completely emulated the graphics card; the Mac processor was burdened with all the computations usually handled by the graphics card. The old Virtual PC 3, released in 1999, did support a few graphics cards. But with graphics cards changing every year, it was hard for Connectix to keep up, and it gave up graphics hardware support with VPC 4. Microsofts Virtual PC 7 can use graphics cards that support Mac OS Xs Quartz Extreme. This includes all Macs shipped today. Microsoft also used Apples implementation of OpenGL. The result is that Virtual PC 7 can use graphics hardware to "move data from the PCs emulated screen buffer to the Macs video display, resulting in higher update frame rates," according to a Microsoft spokesperson. There is still room for improvement in Virtual PC for Mac. The next challenge may be to support the second processor in dual-processor Macs, a capability that Virtual Server already has. "Virtual Server can support a multiprocessor box with 4 or 8 CPUs," said Berg. "It can take advantage of all that processing capability by managing the resources of the total CPU bandwidth." What happens next to Virtual PC is in the hands of the Macintosh Business Unit. The fact that there is now a Virtual PC that is a fully Microsoft version could help increase the use of Windows on Macs. "I think it is a factor," said Silver. Check out eWEEK.coms Macintosh Center for the latest news, reviews and analysis about Apple in the enterprise. And for insights on Macintosh coverage around the Web, check out eWEEK.com Executive Editor Matthew Rothenbergs Weblog.
But Virtual PC for Mac is a different animal from the Windows versions and doesnt benefit as much from Microsofts Windows expertise.