What Is Unix Doing in Mac OS X?

What Is Unix Doing in Mac OS X?

To leapfrog past limitations built into the Classic Mac OS (particularly in the areas of stability, memory management and multitasking), Apple went back to the drawing board for Mac OS X. The result was a hybrid operating system based on NeXTStep—a Unix-based OS developed by NeXT Computer, Steve Jobs' post-Apple company—but with an interface closer to Mac OS 9. The bulk (and benefits) of each system have been carried forward into OS X: the BSD Unix/Mach layer of NeXTStep is now called Darwin and manages booting, memory management, multitasking, and drivers; a few of the best aspects of the NeXTStep interface have been combined with Apple's Classic Mac OS appearance to create the Aqua interface; finally, the advanced programming environment developed at NeXT has become what we now know as Cocoa. (You'll remember Cocoa from Chapter 7 when I talked about Cocoa applications.)

As a result of its hybrid nature, OS X is extremely mature and stable in some areas, but less mature in others. Apple has changed many Application Programming Interfaces (APIs) with each revision, and continues to flesh out aspects of the system. In many cases, Apple has included useful features of NeXTStep, FreeBSD, and NetBSD without providing easy access to this functionality.

The good news, as you have seen in examples throughout the book, is that Terminal provides access to a great deal of this untapped power. In addition, many developers have created third-party tools that allow you to access features Apple hasn't (yet) exposed, without having to delve into Terminal. NFS Manager (mentioned in Chapter 10), which allows you to use the NFS client and server built into OS X, and BrickHouse (discussed in Chapter 12), which provides an interface for the built-in ipfw firewall, are good examples. Apple continues to expose more hidden functionality with each release, and Mac OS X Server distinguishes itself largely by providing better Aqua configuration tools for programs included in OS X. However, because most of the actual features of OS X Server exist in the standard version of OS X, power users with sufficient knowledge are able to take advantage of Mac OS X Server's functionality using the much less expensive non-Server version of OS X. What's more, knowledge of the appropriate command-line programs and third-party utilities can often provide access to "next year's" features before Apple makes them officially available.


For more information about Mac OS X's underlying architecture and Apple's open-source Darwin project, check out http://developer.apple.com/darwin/projects/darwin/ and http://developer.apple.com/macosx/architecture/. You can learn more about OS X's Unix roots at http://developer.apple.com/techpubs/macosx/Darwin/GettingStarted/PortingUNIX/background/index.html.