Apple brings Mac OS X closer to UNIX standards (Updated)

Some changes to Leopard make it a better UNIX, but might trip up those more …

It didn't receive nearly the same amount of attention as most of the other 299 new features of Mac OS X v10.5, but Leopard adds even more Unixy goodness to Apple's post-Classic operating systems. Specifically, Leopard is now UNIX 03 compliant, which means Apple can finally officially use the term in capital letters. It also means that there are some not-so-obvious changes under the hood from previous Mac OS X systems, which might trip up longtime Mac users.

For the Terminal junkies in the crowd, this is particularly significant. If, like me, you were wondering why the hell 'ps -aux' didn't work all of a sudden after upgrading, well, here's your answer. A series of tech documents from Apple outline the major compatibility changes with Unix commands and library functions, as well as how to revert to pre-Leopard behavior if necessary. The bottom line is that existing applications won't be affected, but scripts that take advantage of known behaviors (see the aforementioned 'ps' example, and yes, I know it's bad programming practice) or applications that are compiled on Mac OS X v10.5 or later may produce unexpected results.

It's good to see Apple trying to move Mac OS X closer to its Unix kin, although the ultimate success of such an endeavor depends in many ways upon the willingness of the Open Source community to accept any upstream changes that Apple makes. The adoption rate of other technologies like WebKit and launchd is sort of hit-or-miss in this regard so far, but closer conformance to industry standards is still a win for Apple and its users. Except for the part about the 'ps' script I need to fix.

Update: I seem to have accidentally uncovered a hornet's nest with the wording of this post! See my post in the discussion thread for a more detailed explanation as to why I worded things the way I did.