Found in Transition
Volume Number: 22 (2006)
Issue Number: 5
Column Tag: Open Source
The Source Hound
Found in Transition
by Dean Shavit
Windows and Mac, sitting in a tree...
The MacBook Pro Arrives
When my brand-spanking-new built-to-order MacBook Pro arrived, I immediately went about the task of making it my own. My 12-inch PowerBook G4 1.33 had been my test bed for most of the MacTech articles for the last year and a half, so preparing the MacBook was somewhat like moving into a new apartment or breaking in a new car or pair of shoes, something I would have to live/walk in for the foreseeable future, and because it's such a radical change in processor architecture and software support, it was somewhat like learning how to walk again for the very first time, or drive, or tie my shoes.
The MacBook isn't that radical of a shift for the typical end-user who'd use it for day-to-day word processing, web browsing, and light graphics work. iLife '06, iWork '06, Safari, and Mail all scream running natively on the MacBook's Core Duo 2 ghz processors. An Intel Mac is a different kind of fast. It's difficult to explain, but certain operations just feel faster (especially launching applications and booting the Mac), and as unscientific as that sounds, comparing the MacBook to, let's say, a Dual 2ghz PowerPC G5 is like trying to ascertain the difference between two different brands of whiskey. However, for an Open-Source aficionado, it means rebuilding my entire installed base of X Windows and command-line software ports (currently four gigs worth) using Xcode's GCC 4.0 compiler and package managers such as Fink <http://fink.sourceforge.net> and Darwinports <http://darwinports.opendarwin.org>, and facing the fact that many of the projects I relied on for the PPC processor where now either broken or "back in beta" for the Intel processor. Needless to say, things aren't quite at the level of maturity they'd be if Apple had waited until June to release the Intel MacBooks after having just finished another major transition (Tiger), but the work on converting those Open-Source super-projects to the Intel platform had already begun in earnest. Many Open-Source projects already compiled and run quite well on the MacBook, while others, including Growl <http://Growl.info>, the subject of my last MacTech column, are universal binaries which run on the MacBook as if they never ran on a PowerPC Mac. Those Open-Source goodies made for Mac OS X will appear as Universal applications (fat binaries) almost instantly, if not in total by the time this article is printed.
Figure 1. Universal Binary Logo
On the other hand, applications that work directly with HFS+ (a.k.a. the Mac OS Extended file system) or, at the partition-level of hard disks, have even greater challenges to supporting Intel Macs, where there's been a radical change in the hard disk partition scheme. Intel Macs now use the GPT (GUID Partition Table), instead of the older APM (Apple Partition Map). The reasons for this aren't readily obvious, but it turns out that GPT has a little surprise in store. I wouldn't expect an Intel-savvy version of Alsoft Diskwarrior or Prosoft Drive Genius any time soon, though just about every other type of Cocoa application should be Universal before too long. There's even a roadmap for Universal device drivers (kernel extensions) that would allow the same PCIe card to work in a PowerMac G5 tower as well as the upcoming Intel Pro Mac towers or new Xserves. Nifty!
In 1994, Apple, Motorola and IBM told us that RISC was fundamentally better than CISC, and that all personal computers would eventually adopt RISC, and we believed them. The interesting thing about any transition in processor architecture (the last transition was twelve years ago, in 1994 when Mac users moved from the Motorola 68000 series processors to the PowerPC processors), is that if there's a shift from CISC (complex instruction set computing) and "little endian" to RISC (reduced instruction set computing) and "big endian," then there's going to have to be some form of instruction-level emulation taking place so programs written for the previous processor can still work. For more information on endianess, visit <http://www.noveltheory.com/TechPapers/endian.asp>. Apple's solution for backward compatibility was to build a PowerPC to 68000 instruction emulator into the ROM on the logic board of each Mac, because even the Mac OS itself wasn't pure PowerPC code, though each iteration of the Classic Mac OS brought it closer to purity. Now, Rosetta ironically performs the same basic function, translating, optimizing, and caching the big-endian instructions of PowerPC applications so they can run on the little-endian Intel Macs. While we all know that "native" code is sexier, faster, and more advanced than "emulated" code, it appears that emulated software and native software are now permanent dance partners orbiting the Maypole of cyclic transitions, from little endian to big endian, and back until all turn into butter.
The idea of running another OS on your primary OS is often called a "guest" OS, which is a polite way of calling it a "parasite" OS and your primary OS the "host" OS. Essentially, the guest OS runs inside its own memory space which looks like any other application to the primary OS, and doesn't necessarily share kernel memory with the main OS (more on that later). If you want your computer to run more than one Operating System, here are ways to do it and the factors that need to be accounted for:
Method 1: Dual Boot
Dual booting is simultaneously the best and the worst way of running another OS on your computer. On the plus side, if you're going to boot into another OS, that means it's not going to require any instruction-level translation, no big endian to little endian or vice versa. That also means, the best possible performance since each OS is only active when the computer is booted into it. It also means that with the proper hardware support (drivers), that the computer should be able to network well, handle all manner of multimedia bells and whistles, as well as power management tasks such as sleep, suspend, and wake-on-LAN. Dual booting means computer labs can easily be repurposed, and that companies with both Macs and PCs can easily standardize on Apple hardware.
On the minus side, dual booting is cumbersome and doesn't provide any collaborative framework. It's simply one OS or the other and end users hate it. It's not hard to remember the annoying early days of Mac OS X and dual booting with Mac OS 9. Yuck.
Apple's Boot Camp solution <http://www.apple.com/macosx/bootcamp> is about as slick as any dual-boot arrangement that's ever existed. It allows for allocating space for Windows, resizing that partition on the fly, easy exchange of files between the Mac OS X file system and the Windows XP disk, as well as, full driver support for WiFi, Bluetooth, the infrared remote port, full multimedia, and hardware accelerated video. In short, the same driver support you'd expect to see on a computer that shipped with Windows. Sweet.
Method 2: Full Virtual Machine With or Without Emulation
This is what Virtual PC for Macintosh provides. A full virtual i386 computer with functioning hardware, multimedia, network, and USB combined with a little endian to big endian instruction emulator. Often the success of such emulators depends directly on hardware support such as the 68000 emulator used by Classic, or perhaps more pertinent to this article, the "pseudo-little-endian" mode built into G3 and G4 PowerPC processors, that was dropped from the G5, causing Microsoft to have to scramble for several months to ship a working Virtual PC for the G5 processor.
Conversely, this is what PearPC made possible for PC users, the ability to run Mac OS X in a virtual machine inside a Windows XP host. However, PearPC being an Open-Source project cannot easily live up to the high standards of hardware support that commercial products like Virtual PC consistently deliver. The advantage of a virtual machine is that everything generally acts like it would on a separate computer, accessible through a window on the host OS. This keeps "Windows-like" things separate from "Mac-like" things, and so forth. However, because the guest OS runs in a window, inside an application on the host OS, it is almost always relegated to second fiddle. Think of it as the computer version of PIP (picture in picture), but for the sake of fun we'll call it OSIOS (OS inside OS).
A VM without emulation - this is pretty much the same as the situation above, of course minus the instruction translation, and that means extra speed and possibly better hardware compatibility. However, from an end-user's perspective, it is still OSIOS.
Method 3: An "Open" Virtual Machine With or Without Emulation
An "open" virtual machine is one where the OSIOS situation has been broken down to the point where the native window manager of the host OS handles the windows for the guest OS. Classic on a PowerPC Mac is one such example, as is Darwine <http://darwine.opendarwin.org> on Mac OS X. Advantages include, decreased overhead and therefore increased performance, as well as the potential to use the same file system and exchange clipboard data.
Disadvantages include a more challenging development curve, and loss of much of the potential for hardware support that a full VM provides, as well as, the increased potential for application misbehavior when they find the environment slightly different than what they expect. Typically, open VMs are written to the "letter" of the API (Application Programming Interface) standard, and expect that applications also respect that API.
Method 4: Full-Scale Eviction of Host OS
Certain emulation products, such as VMware's ESX Server, <http://www.vmware.com/products/esx> are installed first, before even the primary OS is. As a matter of fact, EXS Server actually would take the place of Mac OS X as the host OS, relegating all other OSes, whether Windows XP or Mac OS X to guest status. While it's unlikely that ESX server will become a widely implemented solution for end-user's desktops, it will most definitely see heavy use on the next generation of Xserves (yet to be released), allowing them to run Mac OS X Server, Linux, and Windows 2003 Server simultaneously. Although VMware's products aren't currently available either as a beta or release product, company executives have publicly discussed that they are prepping a Mac OS X for Intel version, and that they have it running in their labs.
Classic: Lost in Transition
While PowerPC applications running in Rosetta are Mac OS X's new software legacy, it's obvious that Apple decided to simply cut off support for the Classic Environment partly due to the requirement of having the hardware PowerPC to 68000 emulator on the logic board of the new Intel Mac, something that probably wouldn't exactly "fit in" with the heavily Intel-engineered chipset. Also, the complexity of a two-layer Rosetta to PowerPC to 68000 emulation food chain was probably too much for Apple to support, and no doubt would be slow as molasses under the right circumstances. So, no Classic for my MacBook. However, I still need to occasionally use ResEdit (which has never been updated for Mac OS X). After all, when creating disk images for software distribution with an embedded EULA (End User License Agreement), Apple still recommends using ResEdit to embed the agreement in the disk image, even though there's other excellent and elegant solutions, such as DropDMG <http://c-command.com/dropdmg>, it would be nice to be able to use ResEdit. I also am the proud ornery owner of Apple's last great Laser Printer, the LaserWriter 8500, which can only be configured by the Apple Printer Utility, which, of course, only runs in Classic and with Appletalk, and of course there's still an occasional Classic utility or two I need to run, just to feel "connected" with my Mac past.
Figure 2. No Classic Applications Allowed.
As easy as it is to find an open-source emulator or commercial emulator to run Windows or Linux on a Mac OS X computer, it's no easy task to find a decent Classic Mac OS emulator that runs on top of an Intel processor that can support Mac OS 9.2.2 with access to all hardware resources, such as the sound manager and Open Transport. There have been several for Linux and Windows, but none have been under heavy development since the advent of Mac OS X, other than Mini Vmac, which only supports Mac OS 7.5.5 and lower, while others have been abandoned altogether. Here's the short list of possible Classic stand-ins I've found, and a quick synopsis of their current state of development: (See Table 1.)
Project URL Platforms Mac OS Version
Mini Vmac http://minivmac.sourceforge.net Linux X86, Mac OS Up to 7.5.5 with no
(old school fun X (Universal), Mac network support.
and games) OS 9 (PPC and Sound works great.
68000) Windows and
Mac-on-Linux http://www.maconlinux.org/ Linux PPC Mac OS 7.5.2 to 10.3.3.
(Classic Needs an emulator
Environment component. Not
for Linux PPC) much promise here.
PearPC http://pearpc.sourceforge.net Windows, Platform Will eventually run
Independant Mac OS 9.2.2 in a
(The Open- solid virtual machine,
Source Great as it currently runs
Hope) Mac OS X 10.4
Basilisk II http://basilisk.cebix.net/ Linux, Solaris, Emulates a 68000
FreeBSD, IRIX, series Mac, so it
(O-L-D) but still BeOS, AmigaOS, won't run anything
kicking. Windows NT above Mac OS 7.5.5.
Has color and network
SheepShaver http://sheepshaver.cebix.net/ Linux PPC, Linux Runs up to 9.0.4 with
(Think X86, BeOS, sound and color.
ShapeShifter, Darwin/PPC LAN support.
It's easy to see that many of the Classic Mac emulation solutions are pretty long in the tooth, or at least emulate versions of Classic that really old. MiniVmac emulates a Mac Plus nearly perfectly, and at an amazing speed (it's a Universal application, and includes a necessary CPU throttle to slow it down so it's useable). It also requires a hardware ROM dump from a Mac you "currently own," a tricky legalism leftover from the beige box days that must still be obeyed. MiniVmac really gets the job done, if your Classic needs are frozen at Mac OS 7.5.5. Once in a while, I'll stumble across some specialty application or display still run by a Classic Mac, such as an SE/30 or a Mac Plus. Such a setup screams for a Mac Mini, yet the current Minis have Intel inside. It's even possible to run MiniVmac off a keychain drive. As such, MiniVmac is almost a perfect solution for such a need on an Intel Mac Mini, even if sound is necessary, unless access to a network or some other type of serial-port driven controller is necessary. If that's the case, only the real thing will do. MiniVmac also features a full-screen mode, so you can work with Clarisworks 1.0 on a LCD projector! To get started with MiniVmac, visit <http://minivmac.sourceforge.net>. Getting up and running with MiniVmac is easy, there's even starter disks available.
Figure 3. MiniVmac in Action.
A Partridge in a Pear Tree
However, it's PearPC that holds out the greatest promise here, as soon as it gets the necessary virtual hardware support to run Mac OS 9. After all, it's PearPC that was the first Mac OS X on X86 solution, running the entire PowerPC install in a sloooooow emulator, all but unusable except for on the fastest PCs, which now look a whole lot like the fastest Macs. For running Classic, however, it's pretty clear that performance would be more than acceptable. As a matter of fact, because the PearPC code is platform independent, a few more tweaks could make it a serious Open-Source challenger to other commercial VMs with or without an emulator. As soon as PearPC gains OpenBios support, it will very likely boot Mac OS 9 as well as Mac OS X. Keep an eye on the action here at the PearPC community forum: <http://pearpc.net>.
As of today, the only way to emulate a Mac running OS 9 or higher on a new Mac with an Intel processor is SheepShaver, an oldie but goodie that grew out of the Basilisk II emulator project. Orginally, SheepShaver (which gets its name from "shape shifter") was to be a solution for running Mac OS Software on BeOS systems. It's an interesting historical tidbit that Gilbert Amelio once considered acquiring BeOS to replace the Classic Mac OS, but eventually settled on OpenStep, and bringing Steve Jobs back to Apple. The rest, as they say, is history. SheepShaver has survived as a little-used Classic emulator, but now with the emergence of Macs with Intel processors, it's gaining more attention. I just wish someone would make a new icon for the program! Getting started with SheepShaver starts off with a trip to: <http://www.gibix.net/dokuwiki/en:projects:sheepshaver>, where the "experimental" port to Mac OS X for Intel lives. Please note that getting SheepShaver going, currently requires access to a PowerPC Mac with Classic installed, and a Mac OS 9.0 or 9.1 install CD. Mac OS 9.2.2 is not going to work with the current port of SheepShaver.
1. After downloading SheepShaver, download the Mac_OS_ROM_Update_1.0.smi from Apple's support site
2. Download a copy of TomeViewer from http://macupdate.com
3. Extract the Mac OS ROM file, using Tome Viewer
4. Create a virgin file system using the DD command: dd if=/dev/null of=sheepshaver.img bs=1024k count=number of megabytes you want
5. Next, you'll have to create a .sheepshaver_prefs file and populate it with the proper settings. here's the contents of mine:
Make sure, all of the disk and ROM files are in the proper locations, insert a Mac OS 9 install CD, and if all goes well, SheepShaver will start up off the CD. In which case, you're going to need to format the raw disk you created, using the dd command and install Mac OS 9 onto it. If all goes well, you'll be running Mac OS 9 in no time. You'll also have access to files outside the SheepShaver VM. Just don't expect the networking to work well, and expect some (OK a lot) of System Errors.
Figure 4. Mac OS 9 Desktop from SheepShaver.
If you still rely on Classic software solutions for your day-to-day work, it's best not to give up your PowerPC-based Mac right now. Better yet, if you have a mission-critical solution such as a database that can't be easily converted to a Mac OS X version, (yes there are some out there that have no easy upgrade path), then it's probably a good idea to upgrade your hardware to brand-spanking-new PowerPC metal, while it's still available, because when they're gone, they're gone; or start a transition/migration project right now. Eventually, a solution with commercial support will appear that allows Intel Mac owners to work with Classic software, but it's most likely going to be an entire virtual machine (think Virtual PC), rather than a transparent environment sharing the Desktop like it is in the PowerPC version of Mac OS X, and might even take as long as six months before it becomes a useable solution. So, until the pears ripen or the sheep are more closely sheared, no Classic for you!
Boot Camp: Apple Does Windows!
My MacBook slices through the most complex computing tasks using the Xcode GCC compiler. It dices the most frilly web pages and roasts its PowerPC-based predecessor in sheer boot speed. But its real promise lies in the potential compatibility with Windows and Windows applications, as well as Red Hat Enterprise Server, and with virtualization products like VMWare, which would allow for multiple i386 OSes running on the same piece of hardware. When it came to running Windows, of course, the real allure of ordering an Intel-based Mac was simply "the possibilities."
Figure 5. Boot Camp Assistant.
Well, the possibility is now a reality. Apple's Boot Camp software is an official (but unsupported) public beta of a dual-boot solution that just plain works. Get the Boot Camp Public Beta installer at <http://www.apple.com/macosx/bootcamp>; it's an 83 megabyte download. To install Boot Camp, simply update your Intel-based Mac to Mac OS X 10.4.6 and apply the necessary firmware update. You also need at least 10 gigabytes of free space a blank recordable CD, and a genuine retail (not OEM) copy of Windows XP Service Pack 2, Home or Professional Edition.
First, run the Boot Camp Assistant, and use the blank CD you set aside to create a driver disk so that when you install Windows XP, all the hardware will work properly:
Figure 6. Boot Camp - Burn Driver Disk.
It's very clever how the Boot Camp Assistant prompts you to create a driver disk, so that you have it handy when it comes time to install Windows XP. Next, you'll have to decide how much space from your hard drive you want to dedicate for Windows, and Windows Software. Again, Apple couldn't have made this any easier. No reformatting required. However, a backup of critical data at this point couldn't hurt.
Figure 7. Create Boot Camp Partition.
Finally, we have the ability PC users have had for ages: the ability to split, and then resize live partitions without a reformat and backup. It seems that this is something that the new GPT (GUID Partition Format) allows for, that the venerable APM (Apple Partition Map) format didn't natively support. In checking the Disk Utility Application, I saw nothing new, but in checking the diskutil command in Mac OS X 10.4.6, I noticed something that might hint at abilities, much like the Boot Camp Assistant in future Apple OS releases:
macbook:~ dean$ diskutil
Disk Utility Tool
Utility to manage local disks and volumes.
Most options require root access to the device
Usage: diskutil <verb> <options>
<verb> is one of the following:
resizeVolume (resize a volume, increasing or decreasing its size)
Once the disk is partitioned, the next step is to start the installation of Windows XP, followed by the driver's you burned onto the CD a minute ago. Once you've successfully booted off the Windows XP installer, entered your product key, and installed the drivers from the disk, you're ready to rock and roll. To start up from Windows XP, all you need to do is hold down the option key at startup, and choose the right partition:
Figure 8. Choose Windows or Mac OS X Boot Disk (Option Key).
Of course, this would be quite a pain in day-to-day use (dual-booting, though a nice capability, is awkward enough on its own). Apple, though, in staying consistent with its incomparable design philosophy and end-user touch, makes certain tasks like picking a boot disk a joy.
Figure 9. Selecting Windows Boot Disk From Startup Disk.
However, there's been a lot of talk about using the Boot Camp partition with other virtualization solutions such as Virtual PC for Intel Macs (when it comes out). That would truly be the best of both options, as they say: boot into Windows XP natively when you have the need for full access to the hardware (like for gaming), or use a virtual machine with the same partition when you just want to use a Windows program for a little while. I am currently looking for two matching USB joysticks with strong suction cups, so I can attempt to fire up my old DOS-based Williams Arcade package, and fire up Robotron, on my Mac! Woohoo!
Figure 10. The Boot Camp Partition
A Closer Look at the VMs: Virtual PC et. al.
Although I had some flirtations with the PowerPC builds of Bochs (http://bochs.sourceforge.net) and QEMU <http://fabrice.bellard.free.fr/qemu>, Virtual PC had the details down that the Open-Source Virtual machine contenders couldn't seem to pull off consistently: a graphical interface for configuring the virtual hardware, and hardware compatibility that was unmatched. Networking and USB support actually worked to the extent where you could sync a PocketPC with it with the emulated Windows System, or safely join a Windows domain. Multimedia applications worked as expected, albeit slowly. On the flipside, Open-Source emulators like QEMU performed reasonably quickly, but installing Windows on QEMU was a crapshoot, sometimes it would work, sometimes it wouldn't. Reading from the CDROM drive was inconsistent. A kernel extension was required for networking support. USB support, fahgetabahit! Sound? No way! Bochs, although it was more consistent, was difficult to configure, and was so slow, it was almost useless. Both Bochs and QEMU can be somewhat difficult to configure, though recently that's changed, especially for QEMU. There's been a company (who I won't name) who's developed a GUI for Bochs and QEMU, and has sold it as a commercial product. Read the rest of this article carefully, and note that I don't review that solution. That's an intentional omission.
Over the years, it has been Virtual PC (originally developed by the magical Mac OS hacking company Connectix of Virtual Playstation fame), now a Microsoft Product, that became the gold standard for running any guest OS, which required the i386 architecture on a PowerPC-based Mac. Five years ago, I used to travel around the country delivering IT training courses, including Mac OS Troubleshooting and Networking, Windows NT Server, and Novell Netware. I used to teach all of the workshops using two PowerBook G3s running Virtual PC 3.0. I even developed the habit of covering up the white Apple logos on the back of the PowerBook with yellow stickies, and then pulling them off (ta-da!) in the middle of the training to stunned gasps, "I didn't know Mac could do that." If anyone remembers, Apple's adoption of the G5 processor slowed down the pace of Virtual PC development because the PowerPC G4 processor supported something called "Pseudo little-endian mode," which the G5 didn't, causing a six-month delay before the release of Virtual PC 7.
Figure 11. Virtual PC Icon.
Now that Virtual PC 7 has been out for over a year, it's fair to characterize it as a pretty awesome combination of emulator and virtual machine, with a long track record going back to 1998, and successes far beyond that of most mortal software. And you'd think, with Apple switching to Intel processors, that Virtual PC might have finally run its course as a solution, and may now find itself an end-of-life software product. But, quite the contrary is true. Virtual PC, because of its mindshare and incredible polish as a program, is poised to become the premier Windows-on-Mac OS X solution. Even its familiar brand name is comforting to the end user. Installing Virtual PC is a snap, as it comes with a license for Windows XP Professional, all set up and ready to go. As far as performance goes, you couldn't ask for anything more from a big endian to little endian emulator. It even has touches like a Windows "Start" menu that sits in the Dock.
Figure 12. Virtual PC VM Settings.
Installing Virtual PC is a snap, simply insert Install disk one, start the installer, insert install disk two, and follow the prompts. As a matter of fact, it's quicker to install Windows XP Professional under Virtual PC than it is on most real PCs. Performance is a bit "heavy," due to the emulation, but highly acceptable on my dual G5 2.0 ghz with 2 gigs of RAM, as long as I stick to productivity applications, and not games or anything involving sound or video. However, when sound does emanate from Virtual PC, it comes out in full synthesized stereophonic glory, not some ratty 8-bit distorted groan other emulators have been known to make. Likewise, everything simply works as expected, from the virtual hard disks that grow when they need more space to the virtual access to the file system on the host Mac itself. It's impossible to find any rough edges on Virtual PC.
Figure 13. Virtual PC on Mac OS X (PPC).
Although Microsoft has lost the race to market to the open-source Q and Parallels (read on), VPC for Intel Macs may be worth waiting for, as it'll have a polish and finish other solutions might not, not to mention the stellar reputation and support system of the world's largest software company behind it. One look at the Virtual PC for Mac device compatibility chart at Microsoft Mactopia: <http://www.microsoft.com/mac>, and it's easy to see why VPC is worth waiting for. Anyone who says Microsoft has "lost the Mac emulation race", hasn't seen this. We'll all be the winners for the extra competition, no matter what happens. Microsoft already has its popular Virtual PC for Windows product, which could be ported to run on Mac OS X for Intel. One the other hand, it might be easier for Microsoft to port Virtual PC for PowerPC to Mac OS X for Intel, and simply drop the emulation component, keeping the virtual machine. Currently, Virtual PC for Macintosh simply won't run on the new Intel Mac hardware.
Windows VM for Free? Caveat Emptor.
Well, possibilities become realities, and now I'm happy to report that three former Open-Source emulation projects now support Mac OS X for Intel natively. Why "former" emulation projects? Because in the case of each one, the need for instruction-level endian emulation has been alleviated by the compilation on and for the new Intel Macs. However, not all "free" Open-Source emulation solutions are created equal, and in one case, it's quite clear that a commercial variant is not a whit better than its free counterpart.
The Q <http://www.kberg.ch/q> project adds a nice GUI and Assistant to the QEMU <http://fabrice.bellard.free.fr/q> emulator I've been using for the past two and a half years. Q is about as close to Virtual PC as I've seen, and for an open-source project, my hat is off to the developers. Performance is also excellent. They've done away with the need for the tun/tap kernel extensions that older versions of QEMU required, so that the networking just works, with no further fuss.
Figure 14. Q VM Control
Installing Windows XP Professional on Q simply won't work at the time of writing this article, because of some incompatible interactions between the installer and the emulator. For now, you have to install Windows XP Professional and Service Pack 2 on a PCC running Q (yes, it runs on PPC hardware too, just slower), and move the VM (in the QEMU folder in ~/Documents) over to an Intel Mac), and then you're in business.
Figure 15. Q VM Settings.
As it stands now, Q on Intel Macs is highly useable, and much faster than VPC on a fast G5. It even allows access to the Mac's files system when running, something that Parallels (see below) doesn't yet support. However, it's quite clear from running Windows XP with Boot Camp that Q (and QEMU) does eat up a lot of processor cycles, doesn't multitask well, and doesn't have graphics acceleration (meaning no widescreen modes), and no sound. However, it's come so far in the last year and a half, I wouldn't be surprised if Q didn't become a standard solution for many power users, and of course for the occasional use of a Windows accounting program or Access 2003, it's impossible to beat Q's price.
A newcomer to the Mac OS X (and Linux, and Windows) VM scene is Parallels workstation. As far as I know, Parallels is strictly a Virtual Machine, and includes no emulator. However, even in its current public beta form, it's obvious that Parallels is already a highly mature product, and a serious contender for the VM title.
Figure 16. Parallels Workstation Logo.
Working with Parallels workstation yielded some pleasant and not-so-pleasant surprises. First, Windows XP Professional booted up normally, but failed to read several critical files during the installation process. I found that disabling the hardware acceleration during the installation process, allowed the installation to proceed and finish. Also annoying was Parallels' inability to recognize an optical disk inserted after the VM was booted, or release that disk until the VM was shut down. Also, Parallels currently has no method for sharing files with its host OS, something that needs to be resolved sooner rather than later. Also, the interface for configuring the Parallels virtual machine is rather un-Mac-like, compared to Virtual PC and even Q. It also contacts two kexts (kernel extensions), and did cause a kernel panic once when switching video modes.
Figure 17. Parallels VM Configuration.
On the plus side, Parallels is fast, very fast. It takes advantage of hardware acceleration for virtualization technology built into some Core Duo processors (supposedly the iMac and MacBook have this capability while the Mac Mini does not). The graphic acceleration is also much better, supporting widescreen modes that match the MacBook Pro and the iMac. The price ($50) is also right, though Parallels seems very much like a Beta right now. However, if the developers can perfect Parallels, I'd imagine they could easily charge $100 per seat. By the way, don't try using the Boot Camp video drivers with Parallels (someone has already tried that, and well, it hosed their VM), and it's probably not a good idea to try booting Parallels off of the Boot Camp partition--yet.
Figure 18. Parallels, Windows XP Professional, and Picasa.
In my January MacTech column, I flagged Darwine <http://darwine.opendarwin.org> as the project to watch. Well, in between MacWorld and this writing, the Darwine project released its first build with native i386 support for Mac OS X. Currently, Darwine is too rough (I'd say Alpha quality at best) for production use. However, it's easy to see the promise of Darwine--applications launch instantly and respond more quickly than in any VM. However, to get Darwine installed properly, requires a lot of command-line tweaking (and crashes a lot), so I'm going to hold off on covering it in depth until it stabilizes, probably in three or four months at a minimum. For now, here's a screenshot to tantalize you:
Figure 19. Microsoft Excel 2000 Running Under Darwine.
So What Does This Mean for the Big Picture?
In my January MacTech column I wrote:
And Apple knows where Microsoft's bread is buttered as well. A company with an open-minded CTO who loves open-source and the quality and security of Mac OS X on Apple hardware may realize that deploying XServe G5s would save his company a bundle in annual CAL payments, but cannot even begin to consider putting a Mac OS X computer in his employee's cubicles until a critical database front end, created in some Windows-specific IDE like Powerbuilder will run under Mac OS X.
Well, we're getting closer and closer to that reality. Most Mac Consultants and Admins that I know, are currently running some form of Windows compatibility solution on their MacBooks, iMacs or Minis with Intel processors, where just a year or two ago they might have echoed Apple's party line of "we don't do Windows." With Apple's assertion that it "wouldn't do anything to anything to prevent people from using Windows" on Intel Macs after the transition announcement at WWDC last June, it's very telling that Boot Camp was released so soon after the new Mac hardware. It can't be coincidental. The next generation of Xserves, and the availability of VMware ESX server will tell another story. Many people realize that the battle to displace Microsoft solutions from the Enterprise, Consumer and Education markets cannot necessarily begin with marketing the advantage of Mac OS X over Microsoft Windows, but the advantages (and now flexibility) of owning a Macintosh computer. Apple's not going after Microsoft's software business, but the hardware businesses of Dell, HP and IBM. The message is crystal clear: "One operating system isn't good enough anymore. One computer or server is."
Dean Shavit is an ACSA (Apple Certified System Administrator) who loves to use a Mac, but hates paying for software. So each month he's on the hunt for the best Open-Source and freeware solutions for OS X. Besides surfing for hours, following the scent of great source code, he's a partner at MOST Training & Consulting in Chicago, where he trains system administrators in OS X and OS X Server, facilitates Mac upgrade projects for customers, and writes for his own website, . Recently, he became the surprised father of an application: Mac HelpMate, available at . If you have questions or comments you can contact him: firstname.lastname@example.org.