NO EXECUTE!

(c) 2010 by Darek Mihocka, founder, Emulators.com.

July 16 2010

[Part 32]  [Table Of Contents]  [Return to Emulators.com]

Fedora 13 and SONY drop PowerPC

This is the most shocking and disappointing news of the year so far for me. The PowerPC processor, the microprocessor of the Sony Playstation 3, the Xbox 360, the Wii, and many generations of Apple Macintosh computers, has been demoted to second class citizen status. The Fedora project officially dropped PowerPC support from the recently released Fedora 13 Linux release. Fedora 12, Ubuntu 10.04, the new Debian 5.05, and a handful of other older distributions such as Yellow Dog remain as the solely supported Linux releases for the great PowerPC processor.

Sony did much the same, dropping the "Other OS" option in the PS/3, locking people out of the one truly useful reason to own a PS/3 - it's ability to run Linux, surf the web with Firefox, and function as a terrific development platform. I myself have been running Fedora on my PS/3 since the Fedora 8 days. The PS/3 offered a way to test out code sequences and try code optimization techniques on something just about as different as any mainstream PC can get - big endian integers instead of little endian, 64-bit registers, in-order pipeline - long before the recent revival of the Pentium processor (in the form of the Intel Atom) or the ARM processor which powers today's cell phones and iPads. With Microsoft never releasing the "rumored" Helium  (http://www.consolemonster.com/forum/showthread.php?t=2839), Sony was the only company to give people a legal and easy way to run Windows and just about any other software on a $300 game console.

I am immensely pissed off about these two sad developments. I have been writing PowerPC code for over 17 years now, since I first got to see prototype PowerMac hardware at Microsoft in 1993 while working on "Visual Studio for Macintosh Cross-Compiler Edition". Yes, there really was such a retail product, two of them actually, one targeting 68040 Macintosh development and the other targeting PowerPC. Long before Xbox 360 and PS/3, not only was Apple using PowerPC to run Mac OS on, but Microsoft Windows itself ran on PowerPC-based IBM PCs. The 1990's were anything but a sure thing for Intel and x86, and I for one was convinced that PowerPC was the logical 64-bit successor to 32-bit Pentium based PCs.

The design of the PowerPC chip is so clean, so well thought out, that even back in 1993 the PowerPC instruction set already thought out hardware virtualization correctly (which AMD and Intel processors still can't agree on today with their competing versions of VT), already thought ahead to 64-bit wide registers and 64-bit addressing and how 32-bit and 64-bit code could even be mixed together in the same process. PowerPC design was years ahead of its time. No wonder that much of my 15-year career at Microsoft spanning the past two decades involved working on the Macintosh cross compilers, Mac Office, and the Xbox tools.

The slow death of the PowerPC points out once again what I started saying right back in part 1 of this blog, technically superiority doesn't mean success in the marketplace. Sony learned this the hard way in the Betamax vs. VHS battle two decades ago, and so it is a damn shame that they are active and willing participants in dropping the PowerPC Linux support from the PS/3.


Remembering the mighty PowerPC

The other shame about the demotion of PowerPC is that the PowerPC G4 and G5 were damn good processors at the time. The local Mac user group here in Seattle, dBug, recently had a liquidation sale to dump its "old" Mac hardware. By "old", they meant machines from the 2005 timeframe, like the Mac Mini and the "lamp shade" iMac G4, the forgotten generation of iMac that came between the original bubble shaped iMac and today's flat-screen iMac. I bought up the whole lot, as well as some dual-core and quad-core PowerMac G5 machines for about a couple hundreds bucks each.

Now talk about a sweet machine. The Mac Pro G5 desktop, the predecessor to today's Intel-based Mac Pro machines, is a beautiful and quiet marvel of engineering. The whole machine can be taken apart and upgraded - memory DIMMs upgraded, hard disks upgraded, processor added - without so much as a screwdriver; everything just snaps out. That was true of the Mac Pro G5 as it is true of today's Mac Pro. The Mac Pro G5 uses DDR2 memory and SATA hard disks, the same types of memory and disks that most PCs today use. So why get rid of them?

Being 64-bit, most models of the Mac Pro G5 had no 4-gigabyte limitation (http://support.apple.com/kb/sp96) as with many of today's PCs. Both of my G5 machines contain at least 6 gigabytes of memory each, which makes them great for hosting emulators and experimenting with virtual machines. In fact, back in the 2003 timeframe when Apple started shipping the G5 (when Intel did not even make or admit to making a 64-bit x86 processor) is it any wonder that Microsoft chose the PowerPC processor for the Xbox 360. And specifically, that the way that we (Xbox developers at Microsoft) bootstrapped the Xbox 360 development back then was to start with... you guessed it... the PowerMac G5 (http://www.theinquirer.net/inquirer/news/1030308/xbox-sdk-released-cool-apple-power-mac-g5s). Your favorite Xbox 360 games such as Halo 2 started life on a Mac Pro G5! Not on an Intel processor, and not even on the 64-bit AMD Opteron processor which had also become available in 2003.

What is interesting is how quickly the video game industry - Microsoft, Nintendo, and Sony alike - bootstrapped their current generation of consoles to use these 64-bit PowerPC processors. It meant not only designing hardware that used PowerPC but also developing software development kits for game developers and training game developers to write PowerPC code. By 2006, when Intel _finally_ shipped the 64-bit Core and Apple switched over their whole PowerPC-based computer line to Intel's Core and Core processors, to game industry had already "been there done that" as far as 64-bit computing. Only by about 2009 did the mainstream PC industry start pre-installing 64-bit versions of Windows and 64-bit Mac OS X 10.6 on most new computers sold. Most people out there are still running 32-bit operating systems and 32-bit applications, wasting their 64-bit hardware.

This begs the question, with the huge superiority of PowerPC years ahead of mainstream Intel products, what might have been if PowerPC had won?


Oops! Was I fighting for the wrong side?!?!

As with the Betamax vs. VHS war, where the lower price of VHS products ultimately prevailed, the higher cost of PowerPC based Macintosh computers likely kept them from becoming mainstream. I'm even guilty of fanning the flames against PowerPC. A decade ago I was running exhibits at Macworld and COMDEX shows selling the SoftMac product I developed to emulate Mac OS on Intel-based Windows PCs. My whole sales pitch was to convince people not to buy a PowerMac, but instead to buy a PC. That was based on three logical arguments which led me to develop the SoftMac product in the first place in the late 1990's:

  1. that Windows based PCs, selling for about $2000 to $3000 in the late 1990's, were less expensive and more readily available to consumers than comparable Apple Macintosh computers which could easily cost $5000. Apple had always charged more (and made more profit) from what is about the same cost of hardware, a fact of life that has remained true to this day; although the "Apple tax" is much lower now in 2010 than it was in, say, 1999.
  2. that most Macintosh users in 1999 were really still running old 68040 based applications which the PowerMac had to emulate in software on the PowerPC processor. Microsoft's Office 98 had just shipped the year earlier and consisted of native PowerPC code, but many applications still used in 1999 were actually 68040 code. My SoftMac emulator was able to run those in emulation as quickly or ever faster on an Intel Pentium III or AMD Athlon based PC than on a PowerMac.
  3. that for people who needed to run both Windows and Mac OS applications on a regular basis, going the other way (emulating a Windows PC on a Mac) was too painfully slow. The Virtual PC for Mac product from Connectix (which Microsoft bought out in 2003) was slow as molasses back in the 1990's.

What I offered people back in 1999 was an inexpensive way to run Mac OS and Macintosh applications at very decent speeds using software emulation on a PC, rather than having to run PC applications painfully slow on a much more expensive Macintosh. And in 2001, I was working on emulating the PowerPC and rightfully made claims back then that even PowerPC applications and Mac OS could run decently in software emulation on x86 processors. So it seems I myself helped point people at PCs as an alternative to the Mac, and not surprisingly Apple finally announced in June 2005 that it would switch over to using Intel processors. The transition was swift, by 2006 the PowerPC models were dead, and Microsoft dropped all support for Virtual PC for Mac.

I decided to put my decade-old logic to the test last month to see if those three arguments still held. With my new stash of PowerPC G4 Macs acquired from dBug, my existing PowerMac G4, my PowerMac G5 from Xbox development days, and a new Mac G5 I just picked up, I put my three logical arguments to the test.

The first argument, the "Apple tax". Well, funny thing, the older PowerPC based Macintosh computers are a steal these days. I picked up my machines from dBug for a couple hundred bucks each, and when I looked online on Amazon, I found no shortage of top notch Mac Pro G5 machines for sale. I picked one up from a dealer by the name of Mac Pro (http://www.mac-pro.com/) who delivered to me a beautiful 2.5 GHz quad-core Mac Pro G5 pre-loaded with Mac OS X 10.5.8 and the full Mac Office 2008 suite.

The second argument, the 68040 support, is rather moot today thanks to the existence of SoftMac, Basilisk II, vMac, Executor, and other legacy Macintosh emulators for Windows, Linux, and Mac OS X. Mac users today are really running either PowerPC code or Intel x86 code. The issue therefore is how well the Intel based Macs emulate PowerPC compared to how well PowerPC based Macs can emulate x86.

Apple themselves bundle a package called Rosetta with the Intel based Mac OS X which allows PowerPC based applications to run, but at some performance cost. On the PowerPC, the product Virtual PC for Mac version 7.02 is the most current Windows emulator. Virtual PC was originally developed by a Mac shop called Connectix which was acquired by Microsoft in 2003.

Virtual PC was later ported to Windows and morphed into what are now the Hyper-V and Windows Virtual PC hypervisors in Windows 7 and Windows 2008 Server, but several releases of Microsoft-branded Virtual PC for the Macintosh did get release through 2005 until that product was discontinued. I benchmarked Virtual PC 7.02, as I will show you below, and was surprised that at the time the G5 and VPC 7.02 were discontinued, the performance was actually pretty good. Also available to the PowerPC Mac today as an alternative to Virtual PC 7.02 is the open source QEMU emulator. So between Rosetta going one way, and Virtual PC 7.02 and QEMU going the other way, there is ample freedom to emulate the software on both sides.

Which leads to the third argument - the speed of emulation - and the fact that between 1999 and 2005 the Virtual PC guys got their act together and made the product usable, making the whole Windows emulation problem mostly moot. Not entirely, as I will show you some benchmarks and compatibility issues below. I might add, issues that could be overcome with today's open source QEMU emulator which in many ways is already superior to Virtual PC.

Combined with the fact that between late 2000 and early 2006, the only desktop processors from Intel were the garbage known as Pentium 4, it seems to me that if PowerMac prices had been just a little lower, if Connectix had not taken so long to get Virtual PC optimized, and if Intel had not rescued its product line with the Core series in 2006, Macintosh users today might still be running PowerPC based machines.

As they say, "coulda, shoulda, woulda". I enjoy my tower of G5's (and Mac Mini G4 too, shown here sitting on top of a freshly built Core i5 Linux box), so let me show you how much life these machines still have in them. If you run across one or still own one of these machines, hold on to them!


Fun with PowerPC Macintosh

Although Apple the transition to using Intel processors a good five years ago now, support for PowerPC systems in terms of Mac OS X releases and even major software releases such as Microsoft Mac Office 2008 continued until very recently. When the Mac-Pro.com folks shipped my quad-core G5 system this spring, they nicely preloaded it with Mac OS X 10.5.8 (the most recent PowerPC release of Mac OS), Microsoft Office 2008, and other applications. Although the hardware is five years old, it is hardly obsolete.

In fact, Apple was ahead of the curve. AMD shipped its first 64-bit Opteron processor in 2003 into a world of Windows XP which lacked any 64-bit software of course. It was a good two years before us Windows Core OS engineers at Microsoft even had a 64-bit release of Windows XP ready to make use of that hardware, and also that same year when Intel even brought any 64-bit Pentium 4 systems to market.

My personal copy of one of the first 64-bit Windows XP discs from March 2005

Apple on the other hand had already been shipping 64-bit iMac and Mac Pro systems. The machines supported up to 8 gigabytes of RAM back then, with up to 4 PowerPC G5 cores running at 2.5 GHz and beyond, which rivals many PC desktop workstations even today. Since Mac G5 machines use exactly the same DDR2 memory, PCIe slots, and SATA hard disks found in mainstream PCs, advances in technology such as faster hard drives (read my other blog posting from today about the new Seagate Momentus XT disk drive) the G5 machines can still be upgraded today and made even faster.

Take a look at this screen shot I just took of my Mac OS desktop. Can you tell that this is a PowerPC based as opposed to an Intel based Macintosh? If not, then next time you plan to spend 2 or even 3 thousands dollars on a new Intel-based iMac or Mac Pro, consider spend half that amount or even less on a comparable Mac G5 system. Looking on Amazon.com today, I see a dual-core Mac Pro G5 desktop for 399 dollars. Spend two hundred dollars to upgrade the hard drive and add some RAM, and you've got yourself a very decent 64-bit Mac desktop. Or for 999 dollars, the 2.5 GHz quad-G5 systems such as what I have.


The Irony of Virtual PC 7 for Mac

As I mentioned previous, I used to love going to Macworld shows and giving the Connectix guys a hard time about the slow speed of their Virtual PC product while setting up my own SoftMac booth a few feet away and showing my very fast Macintosh emulation product. Microsoft bought Connectix in 2003 and took over development of Virtual PC at version 6. In the summer of 2005 making the final Virtual PC 7.02 release which had been tuned for the PowerPC G4 and G5 processors. Microsoft then sadly discontinued the Virtual PC product. Ironically it was done at a time when Virtual PC's performance was just getting to the point of being competitive. Because if you actually benchmark Virtual PC 7.02, its performance is not too bad as far as emulators go, even today in 2010.

Click on the thumbnail above to see Virtual PC 7.02 in action, running both Windows 2000 and Windows XP virtual machines on top of Mac OS X on the Mac Pro G5. Based on my usual bag of tricks of benchmarks and tests, I have determined that the performance on a 2.5 GHz PowerPC G5 is comparable to about a 1 GHz Pentium III processor from the year 2000, which itself would be comparable to about a 1.5 GHz Pentium 4 processor from the year 2001, or an Atom netbook from the year 2008.

By 2005, the best Pentium M (the successor of Pentium III) and Pentium 4 processors were clocked at about twice those speeds. So thus Virtual PC 7.02 in the year 2005 actually delivered about half the top integer performance of the best PCs at the time, not bad for a software emulator running on a completely different processor. Even today in 2010, where Core i5 and Core i7 processors (the descendants of the Pentium III and Pentium M) have broken through the 3 GHz barrier, Virtual PC's speed of emulation is within a factor of 3 or 4 the best x86 processors today, which is exactly about the same ratio in performance as between an Atom processor and a top of the line Core i7.

And who knows what would have been if Apple had continued to use newer versions of the PowerPC processor. I notice for example, that just between my 2.0 GHz Mac Pro G5 and 2.5 GHz Mac Pro G5 systems, Virtual PC runs about 30% to 50% faster on some CPU intensive benchmarks, which is disproportionate to the 25% increase in raw clock speed between the two systems. The increase is due to another subtle different between the two processors - the 2.0 GHz chips contain 512KB of L2 cache, the 2.5 GHz chips contain 1MB of L2 cache. Double the on-chip cache means additional performance for memory intensive products such as emulators, which need additional fast memory for overhead such as code caches.

Now consider... What if Apple had the benefit of using PowerPC chips in 2010 built using 2010 standards such as 32nm process and having say, 6 megabytes of L2 cache? How much faster would those chips clock and how much faster would Virtual PC have run just as a result of newer processor technology? What if Apple was to build a Mac Pro based on the 5+ GHz Power7 chip? We can only speculate how well software emulation would have done against today's AMD and Intel chips.

What really I think ended up being the killer flaw of Virtual PC 7 that might have contributed to Apple switching to Intel was not the emulation speed directly. We've already determined that Virtual PC can deliver the speed of a netbook or low end laptop, which is perfectly fine for milions of users today. But consider the feature set limitations of Virtual PC 7:

  • limited to emulating a maximum of 512 megabytes of RAM per virtual machine,
  • limited to emulating a single x86 core per virtual machine,
  • limited to emulating 32-bit x86 cores, with instruction set support only up through MMX, and,
  • limited to actively running one virtual machine at a time, while others are paused (see my screen shot above for an example of that).

Viewed in this aspect, Virtual PC 7 delivers capabilities that barely even match up against a netbook. A 32-bit single-core 512-megabyte system would have been perfectly adequate for running Windows XP and Microsoft Office in 2001, even in 2005. But as any netbook user can tell you in this day and age of YouTube and Flash animations and multi-megabyte documents, 512 megabytes of RAM is barely adequate. To run Windows Vista or Windows 7 with latest versions of Office, web browsers, media players, and other applications can now easily require a gigabyte or two of RAM. Why Virtual PC has an arbitrary 512-megabyte limit, who knows, but that would be a deal break for running today's software.

The other limitations are just as serious. The lack of 64-bit support means that soon Virtual PC will not even be able to run new software being released, period. And the lack of multi-core support, or even the ability to concurrently run two virtual machines, hints at Virtual PC's obsolete 1990's design.

The lack of SSE support is the least of the limitations, as mainstream software in general was slow to adopt to using SSE. Windows 7 for example can boot up just fine with only MMX support, although you might have a hard time finding a video decoder that does not require at least SSE2 support. Adding SSE support on top of the existing MMX support would probably have been the easiest limitation to eliminate, a feat that people in the Xbox 360 group did pull off in implementing the 360's legacy game emulator in order to make your Xbox classic Halo 2 run flawlessly in emulation.

Fortunately, neither Bochs nor QEMU have any of these limitations today. The open source emulation community has implemented multi-core 64-bit guest support, has implemented SSE support, and most definitely allows running multiple VMs concurrently, and this can be run on the PowerPC versions of Linux today.


Linux Saves the PowerMac!

While Apple may have stopped Mac OS work for the PowerPC, Linux continues to support both 32-bit and 64-bit variants of PowerPC and provides more up-to-date software such as OpenOffice 3 and newer versions of gcc than are available on Mac OS X. Linux is what will continue to keep PowerPC machines useful for many more years to come.

Let me walk you through the simple steps of setting up Linux on a PowerPC based Macintosh. To follow along here, all you need is a PowerPC G4 or G5 machine such as a Mac Pro, a Mac Mini, or an iMac. You can also use a Sony Playstation/3 which uses a later derivative of the PowerPC G5 processor. I recommend installing Fedora 12 Linux, which is a mature release from late last year which thankfully installs beautifully and is still regularly maintained. Just a few weeks ago Debian Linux 5.05 was released, but I had a heck of a time trying to get either the PowerPC or the 64-bit x86 version to install. So for consistency I stick to only Fedora 12 and Fedora 13 across all my PowerPC, Intel Pentium, Intel Core, and AMD Phenom machines.

Using the same distribution of Linux across all platforms has its benefits, because setup, maintenance, the use of applications, and even software development remains virtually identical. I find myself spending hours at a time these days using Fedora Linux and playing around with Bochs and QEMU, surfing the web, responding to email, shopping online, and completely forgetting that I am doing so on a PowerPC based Macintosh and not one of my "PC" boxes. Which over the last few years has made me that much more a fan of Linux and the consistency of having the same look and feel and operating system interface, regardless of the hardware being used. None of this Windows on a PC versus Mac OS X on a Mac nonsense that so many people are obsessed about. PowerPC machines today make for affordable general purpose fast computers.

So, first download Fedora 12 for PowerPC. That can be found on the Mirrors page here: http://mirrors.fedoraproject.org/publiclist/Fedora/12/ppc/

Scroll down and select one of the mirrors closest to your geographic location. For example, I choose Portland State's mirror, navigate to the PowerPC ISO's directory here: http://mirrors.cat.pdx.edu/fedora/linux/releases/12/Fedora/ppc/iso/

And you will want to download the DVD ISO image file Fedora-12-ppc-DVD.iso. Burn that to a DVD-R or DVD+R disc using tools of your choosing. Now what you have is a bootable Fedora Linux 12 setup DVD. Insert your DVD and reboot.

If your machine is a single-drive small format factor machine such as my Mac Mini G4 shown above or one of the older iMacs, I suggest you kiss your old Mac OS 9 or early Mac OS X release goodbye and just install Fedora over the whole drive. If you are using a large machine, such as the G5 which comes with two convenient SATA drive bays, it is quite easy to add a second SATA hard disk (the drive bays are shown in the top rear portion of the exposed Mac G5 above) and use that as your Linux. Then, after Linux installs, you will can dual-boot between your original Mac OS X drive and the Linux drive, switching between the two operating systems as needed.

Ferora 12 running on PowerMac G5

Shown here (click on the thumbnail above to see the full size screen shot) is my Fedora 12 installation running on the Mac Pro G5. I am actually running my Xformer 2000 Atari 800 emulator on top of the latest build of QEMU emulating Windows 2000, which itself is running on top of Fedora 12 "ppc64" operating system. How cool is that?!?!

Next posting I will return back to the discussion of QEMU and look at some of its strengths and weaknesses as compared to Virtual PC 7.02 and Bochs as a PC emulator.


[Part 32]  [Table Of Contents]  [Return to Emulators.com]