snowleopard

Apple’s airtight secrecy has allowed it to do some wonderful things. But what happens when it’s difficult to tell the path of future operating systems? That’s the situation I’m trying to tackle with Mac OS X Leopard and now the upcoming Mac OS X “Snow Leopard.” The good news is, Apple says they’re focused on improving the "quality" of the OS. The bad news is, it’s not clear what the plan is for the existing 10.5 OS — or what it will take for OS changes to sync up with what we need as musicians and audio producers.

Current Leopard Changes: Still Some Bumps for Audio

First, let’s talk about the existing Mac OS X Leopard release. Leopard audio performance does seem to be gradually improving. (See our previous reports.) But we’re still hearing reports of regular issues, particularly now with FireWire devices (10.5.3 addressed at least some USB problems). These may indeed be affecting a minority of users, and many of you have no problem at all. But that doesn’t change the reality that they’re problems introduced by upgrading to 10.5 from 10.4. Whether Apple, the device vendor, or some combination has to fix the problem, it’s obviously something you’ll want fixed. And in a supreme irony, I can actually set up a more predictable Vista system for music right now than Leopard.

I was recently forwarded a message from a major pro audio developer. The message encouraged their development partners to test Leopard extensively. I can’t divulge the contents of that email, but I can point to two changes in 10.5 that could be related to at least some of the audio performance issues people are experiencing. (This stuff is complex, so please feel free to correct me here, particularly if you know something about, say, kernel programming.)

The significant changes are:

  • Multi-core thread scheduling: Leopard changes the way the OS handles thread scheduling on multiple-core systems. Thread persistence helps keep threads “glued” to specific cores, which should improve performance. The issue is, anything that changes the way threads are handled in the kernel can have an impact on digital audio. That isn’t to say the fault is always Apple’s if you are having trouble; these kind of changes can reveal issues in other code. But without assuming that this is related to all the glitches people are having with Leopard – since symptoms like clicks, pops, and dropouts can have a host of causes – it is possible that some of the bumps in Leopard are related to this change. (See Apple’s multicore feature page for Leopard.)
  • Memory changes: I’ve had less luck tracking this down, but at least one difference is that Leopard adds memory randomization, a security measure intended to prevent exploits by locating system libraries to random locations. Memory randomization is present by default on Windows Vista, but on Leopard it seems as though it may extend to system libraries and driver loading, whereas on Vista it’s something you a programmer has to manually flag to use. I’m not convinced this is actually impacting audio on Leopard, but it does demonstrate that security concerns in operating systems in general can cause significant changes, something we have to watch as audio users.

It’s not clear what the exact impact on audio is; if anyone knows and would like to share your own experience, please do.

The thread scheduling issue appears to be more significant to music and audio. Because audio tasks happen in real time, thread scheduling is vitally important. Of course, the long-term payoff could be better multi-core performance, which is something audio fans are likely to like. The issue is the intermediate time when you’re ironing out bugs. And that brings us to the mysterious Snow Leopard.

Snow Leopard: SP1?

bigx

Fairly or not, some Mac fans are already grumpily referring to Snow Leopard as  Leopard “Service Pack 1.” (If you’re a Windows user, let me explain: the highest insult to a Mac fan is basically to compare something to Windows. Don’t ever call a Mac fan’s mother “Millenium Edition” unless you’re itching for a fight.)

Making all of this worse was this statement from the press release:

“Rather than focusing primarily on new features, Snow Leopard will enhance the performance of OS X, set a new standard for quality and lay the foundation for future OS X innovation.”

Now, personally, I reacted as many people do – stopping adding new features and focusing on improving what’s there sounds great! It raises just two problems: first, if Snow Leopard is “focusing on quality,” what was Leopard focused on? Second, Apple calls this the “next major version” of Leopard, which usually means they’re charging for it. Microsoft, by contrast, doesn’t charge for Service Pack releases even when (as with XP’s SP1 and SP2) they do introduce new features.

I’m not actually so concerned about either of those questions, though. I think all three operating systems — Linux and Windows included — could stand to spend a little time focusing entirely on performance and reliability rather than adding eye candy and gimmicks. I’m even happy to pay for it — maybe even more so than other improvements. The issue to me is planning and wondering what happens with Leopard in the meantime.

That’s made more puzzling by the "new features" in Snow Leopard:

  • Multicore improvements
  • 64-bit for support up to 16TB of RAM
  • QuickTime X, a new version of QuickTime
  • OpenCL, a new library for running CPU processes on the GPU (GPGPU)
  • Microsoft Exchange support

See: Mac OS X Snow Leopard (Client OS page)

Are you thinking what I’m thinking? If in fact Snow Leopard really is just a "quality" release, why not skip Leopard and go straight to Snow Leopard? (This seems even more tempting than the Vista/Windows 7 split, especially as Vista 7 likely is a feature release and because Microsoft usually rolls out fixes directly in addition to putting them in bigger OS updates.)

OpenCL, QuickTime X, and the Exchange support are just libraries, so we can safely ignore them. It does raise the question of why Apple would roll these into an OS release, although that makes me suspect this will be a free, not a paid, upgrade, or that perhaps QuickTime X will be back-ported to Leopard and available on Windows. (Well, one would hope.)

But the multicore mention is a bit odd, because that was supposed to be what happened with Leopard. This could imply that Leopard’s multicore improvements weren’t fully baked before they went out the door. Of course, it could also mean that Leopard will continue to build on what’s Leopard.

Then again, that’s the fundamental problem: we don’t know. Apple keeps all of their OS development under NDA. Developers who don’t make the trip to WWDC may miss out on information entirely. And Apple is unlikely to communicate to the rest of us until the day Snow Leopard ships, whenever that is (since the pricing and schedule haven’t been announced). In fact, part of the reason I can talk about this at all is that I’m not at WWDC. Otherwise, I might have Apple legal knocking on my door.

Maybe I don’t "need to know" what’s going on. But my plea to Apple, if they happen to be listening, would be to coordinate closely when multicore improvements like thread scheduling can impact audio. I get the sense that this really wasn’t in sync on Leopard.

And of course, this whole issue isn’t unique to the Mac. Windows developers are in a similar boat, wondering what the plan is for Vista as Microsoft shifts its efforts to its own release, Windows 7. Like Snow Leopard, Windows 7’s features are vague, the plan is for "quality" and performance over new functionality and big changes, and it’s not clear how much energy is going into the current versus the future OS — especially as Microsoft tries to make its release schedule more prompt. Bizarrely, Cupertino and Redmond have each adopted parallel strategies.

A Better Way?

I’ll point it out again: as much credit as Apple has rightfully gotten for OS quality, their approach does have some significant downsides.

  • New computers ship out with the latest and greatest, whether or not it’s stable for the particular task the user has in mind.
  • Operating systems ship out blending various updates, from features for iPhone users to hardware fixes to critical security patches to iTunes updates to new features. There’s no granular control over what gets installed, which is sometimes necessary to maintain a stable system.
  • Apple’s "whole widget" philosophy sometimes causes them to compete with themselves. QuickTime updates get tied to improvements in iTunes, for instance — even if some of us use QuickTime for critical professional work and don’t touch iTunes.
  • Apple’s "everything’s a secret" approach makes it really hard to plan or fully understand what’s going on.

I do think Apple deserves their reputation for the work they do in software. So I’d really like to see some improvement. I’d like an OS upgrade mechanism that gives us more control. I think Apple could better document changes, and shift some of the knowledge that now is covered under restrictive NDAs to a more public sphere so that it’s easier for people to document and fix problems — many of which involve third parties but reflect poorly on the quality of the Mac platform.

And you do still have a choice in OS. Yes, even including Linux.