Linuxgruven > Thoughts > Linux > Linux PPC/x86 Differences

Linux PPC/x86 Differences

One of the reasons that I bought the iBook was that it was very compatible with Linux. While this turned out to be quite true, as a long-time x86 Linux user, a few of the differences between Linux PPC and Linux x86 have caught me off guard. It isn't that I didn't know that the software set would be different, it's that I didn't realize how much I had come to rely on non-OSS or x86-specific Linux software. The following article summarizes some of the major differences that I have noticed using a non-x86 Linux machine over the last year.
Note: I have made my kernel and MOL packages available from apt.
I have more screenshots of Debian PPC available here.

The Good

Great hardware

Power management on x86 never seems to work as slickly as it ought to. This was true with APM, it is especially true with ACPI. ACPI in Linux simply isn't as mature as it is on Windows, and even on Windows, it's nothing to write home about. With the PowerPC, though, power management just works. It works so well so consistently that you stop thinking about it as a really cool feature. Frankly, on a laptop, power management is about as important as it gets! The iBook suspends and comes back to life every time, CPU scaling just works, the PMU settings are straightforward, the PMUd on Linux works as well as you'd hope, and there are even several nice GUIs available to set it up. This feature cannot be overrated for a laptop. The G3 is also a cool processor. The internal fan only comes on when I've been compiling things for a while. Other than the quiet tick of the hard drive, the machine is silent. This is in stark contrast to the PC laptops that I have owned.

Mac On Linux

The next great thing about Linux PowerPC is that you get the Mac equivalent of VMWare for Free. Mac-On-Linux (MOL) lets you run Mac OS9 or Mac OSX either windowed or full-screen inside of Linux. This is especially important for Linux PPC, as emulation is the only way to run some things. (Such as Flash or many other browser plugins.)

MOL OS9

MOL is a lot faster than VMWare, too. In fact, I would easily say that Mac OS9 actually behaves better for me in MOL than it does booting up native. Networking in particular is noticeably faster. I've also read that file IO is better in MOL than when handled natively by OS9. While Mac OSX doesn't run at full speed, when allocating 384MB of RAM to it, you can sometimes forget that you are actually running OSX on top of Linux. I would guess that on a faster processor with more RAM allocated to OSX, the performance difference would be even less noticeable. MOL is an extremely cool piece of software that works very well. I much prefer it to VMWare on the PC.

MOL OS9

The Bad

Lack Of Commercial Software

This is a big one. The only commercial PPC Linux program I can think of is Opera. It turns out that over time I've gotten used to having the latest JDK, good Flash support and even access to the Windows version of MS Office (through CodeWeaver's CXOffice.) Here's a list of the commercial software that I was using on Linux x86 that I miss on the PPC:
  • Poor Java support (JDK 1.3 or IBM's JDK)
  • No Word Perfect (Or StarOffice)
  • No Flash - No Wine/CrossOver office
  • MOL and MS mostly works, but I've had compatibility problems
  • No plugins! (VLC/Mplayer Mozilla plugins)
  • No VMWare (Or VPC for PPC)
Also, contrary to popular belief, gaming on Linux(x86) isn't dead. I've got a bunch of older Loki games (like Soldier of Fortune, Descent III and Heavy Gear) that won't run on the PPC. CivCTP and Myth run, but I'm not a big fan of either. Unreal Tournament and Wolfenstein are two other titles that have Linux ports, but are for x86 only. Most of these games have native Mac ports, but you can't play them in Linux PPC. Linux may not be the best gaming platform, but it'd downright depressing on non-x86 architectures. It's too bad, really, the ATI Radeon 7500 I've got is actually a pretty decent card. DRI is working quite well, and 3D acceleration works great for games like Tux Racer, Quake II and GLTron. As long as you're happy with OSS games, you probably won't mind your PPC options. Oh well, the G3 processor really sucks for games anyway.

Unexpected Software Differences

To be honest, Linux on the PPC is a niche within a niche. If only 3% of the desktop world runs on Apple hardware, what percentage of those users are running Linux? Probably not many. Linux began life as a Free Unix for x86 and it is still primarily that.

Of the other supported architectures, PPC is probably the next best platform to run Linux on (as far as hardware and software support goes.) That said, this isn't an x86 processor, so it's not going to be smooth sailing. Distributions such as Yellowdog really help to minimize these problems, but as I have pointed out, if you want to easily have the widest range of software available, it means using Debian. Using Debian likely means a painful setup process.

Kernel Testing Lags

You'll learn very quickly that the benh kernel is the way to go. Linus' kernel isn't heavily used or tested by PowerPC users. As a result, you will often find annoyances such as broken sound or network drivers in the stock kernels. Benjamin Herrenschmidt's kernels fix all of this. He takes the stock kernels, tests them out with a range of PPC hardware, and focuses the efforts for making PowerPC Linux as smooth as it is. According to this site, he does this in his spare time. I'm glad he does, as PPC Linux would be a lot more difficult without him.

The kernel build process is slightly different on PPC too. If you use Debian, take the time to learn about make-kpkg. Once you get the hang of it, you'll never go back to building manual kernels. make-kpkg also makes the process of building PPC or x86 kernels identical. Very handy if you spend the bulk of your time flipping between operating systems and architectures. ;-)

Yet Another Bootloader

No biggie here, as this isn't x86, you don't use lilo or grub. Instead, yaboot is the bootloader of choice. It isn't particularly easy or difficult to use, just different. You'll need to read up on it when you recompile your kernels. It's well documented, so it shouldn't be a problem.

Sharing filesystems

You know what's sad? For the longest time I needed to have a FAT32 partition on my iBook, as it was the only filesystem that OS9, OSX and Linux could read and write to. Thankfully, proper HFS+ support has finally made it's way into the 2.4 kernel. Now I have two partitions: 20GB for Linux, 40GB for Mac OSX and OS9. However, even this was a little problematic at the start. It seems that Linux thought that it wasn't cleanly unmounting the OSX partition. On subsequent mounts, it would mount read-only saying that I needed to run hfschk. OSX saw nothing wrong with the partition, so I actually went in to the hfsplus code and disabled the check. Yes, I editing the kernel code to hack around a bug I couldn't figure out. No, I'm not proud. Yes, I realize that this may come back to haunt me. However, everything works at the moment, and it has for several months now.

Wrapping Up...

I'd like to say TGFD (Thank God for Debian.) Debian (and BenH) are what really keep PowerPC a viable platform for Linux. I spent a lot of time with Yellowdog, and I appreciate their efforts to bring Red Hat to the PPC. However, their releases are quite slow, and if you want something other than what comes bundled with their disrtibution, good luck. Perhaps the Fedora project will change all of this. For now, Debian is the only way to fly for me. However, packages aside, Debian is a major part of why things like XFree86 work as well they do with alternate patforms. By targeting their 11 architectures, Debian ensures consistency between hardware platforms. After the initial setup, using Linux PowerPC isn't much different than using Linux x86, or Sparc, Mips or Alpha. While Debian on x86 is a great project, as soon as you step outside of the norm, one of the project's defining features becomes much more meaningful.

Closing Remarks

So, there you have it. A brief overview of my experiences with Linux PPC. The end result: If you take the time to set it up, you will be rewarded with a top-notch piece of hardware that can easily handle all of your OSS ttasks If you use a lot of commercial software or do heavy Java development, watch out.

Misc. Useful Stuff


The following articles were not written by me. I have found them quite useful, so I've archived them here.