A Survival Guide for Taming the Unix Side of Mac OS X

O’Reilly Releases “Mac OS X Tiger for Unix Geeks”

Mac OS X Tiger for Unix Geeks Brian Jepson and Ernest E. Rothman

[amazon_link asins=’0596009127′ template=’ProductAd’ store=’orahome-21′ marketplace=’UK’ link_id=’55d7bd9c-bcd8-11e8-9f01-cf10e0cf27e7′]

ISBN: 0596009127

Pages: 395

Publisher: O’Reilly

Topic: Mac OS

Buy Now from Amazon

Even while Apple has used its line of Mac OS X cats to pounce on business owners tired of Windows security flaws, and consumers tempted by the fun and creativity of its iLife Digital Hub, the company has quietly captured another constituency. The Unix and Linux developers attracted to Mac’s guts rather than its glamour, along with many hardcore Perl developers and those who program in Java and XML, have also switched to Mac, but for a very different reason: Mac OS X’s BSD Unix core.

With Apple’s release of Tiger, Mac OS X 10.4, “Mac OS X Tiger for Unix Geeks” (Jepson and Rothman, O’Reilly), the latest edition of the popular book, has been revised and expanded to cover further changes to what is now, ironically, the world’s most widely-used Unix system. According to coauthor Brian Jepson, developers faced an unexpected learning curve. “Hacking code on a Mac is similar to hacking code on other Unix systems, but there are subtle differences between the Unix they’re accustomed to and how things are done in Mac OS X,” remarks Jepson.

“When you first launch the Terminal application, you find yourself at home in a Unix shell, but some of the standard Unix utilities we’ve grown accustomed to aren’t there,” explains coauthor Ernest Rothman. “When it comes to developing applications, you’ll find things like library linking and compiling have a few new twists to them.” This book is a “survival guide for developers and system administrators who want to tame the Unix side of Mac OS X.”

The new edition tackles this task in five distinct parts:

-Getting Around

Shows how to navigate and adapt Mac OS X’s Unix core, how to use the Terminal application and Tiger’s new Spotlight metadata search, how to install the X Window user interface and manage printers with the Common Unix Printing System (CUPS)

-Building Applications

Takes geeks through the Mac OS X system and includes ways to compile 64-bit code with the GNU Compiler Collection

-Working with Packages

Includes chapters on working with Fink and Darwin Ports to download Unix and X11 software

-Serving and System Management

Explains how to use Mac OS X as a server, including how to monitor system status, how to set up and configure free databases such as MySQL and PostgreSQL, and describes versions of Perl and Python that ship with Mac OS X


Offers a primer to Mac OS X terminology and a list of Mac OS X’s various development tools.

“There are many PowerPC-based operating systems that run great on Apple hardware, including Linux, NetBSD, BeOS,” Jepson says. “But who says you have to run one operating system at a time? And who says it has to be a Power PC-based operating system? There’s an array of bewildering choices when it comes to mixing and matching.” Geeks can partition their hard drive and load another OS onto the Mac, or use an emulator, such as Microsoft’s Virtual PC, or an open source x86 emulator called QEMU. Readers will also learn how to run Mac OS X under other operating systems.

Compared to other Mac OS X releases, Tiger makes it easier for hardcore technical users accustomed to a command line to delve directly into the underlying Unix engine, Rothman says. Developers and system administrators can port Linux and Unix applications and run them side-by-side with native Aqua applications on the Mac desktop. “Mac OS X Tiger for Unix Geeks” is the only book that looks at Tiger from the geek point of view. “This book,” adds Rothman, “serves as a bridge for those who’ve been lured to Mac OS X because of its Unix roots.”

Table of Contents of “Mac OS X Tiger for Unix Geeks”


Part I. Getting Around

1. Inside the Terminal
Mac OS X Shells
The Terminal and xterm Compared
Using the Terminal
Customizing the Terminal
The Services Menu
Alternative Terminal Applications
The open Command

2. Searching and Metadata
Resource Forks and HFS+ Metadata

3. The Mac OS X Filesystem
Working with Foreign Filesystems
Files and Directories

4. Startup
Booting Mac OS X
Adding Startup Items
Scheduling Tasks

5. Directory Services
Understanding Directory Services
Programming with Directory Services
Configuring Directory Services
NetInfo Manager
Directory Services Utilities
Managing Groups
Managing Users and Passwords
Managing Hostnames and IP Addresses
Exporting Directories with NFS
Flat Files and Their Directory Services Counterparts
Restoring the Directory Services Database

6. Printing
Printer Setup Utility
Common Unix Printing System (CUPS)

7. The X Window System
Installing X11
Running X11
Customizing X11
X11-based Applications and Libraries
Connecting to Other X Window Systems
Virtual Network Computing

8. Multimedia
Burning CDs
Image Editing
3D Modeling

9. Third-Party Tools and Applications
Virtual Desktops and Screens
The Application Menu
Virtual Desktops
R with an Aqua GUI
NeoOffice/J and OpenOffice

10. Dual-Boot and Beyond
Why Bother?
Linux on Mac Hardware
Emulators on Mac OS X
Emulating the Mac

Part II. Building Applications

11. Compiling Source Code
Compiler Differences
Compiling Unix Source Code
Architectural Issues
X11-based Applications and Libraries

12. Libraries, Headers, and Frameworks
Header Files
The System Library: libSystem
Shared Libraries Versus Loadable Modules
Library Versions
Creating and Linking Static Libraries
Creating Frameworks
The Dynamic Linker dyld: Prebinding, the Pre-Tiger Way
Performance Tools and Debugging Tools
CHUD Tools
Interesting and Important Libraries
Numerical Libraries

Part III. Working with Packages

13. Fink
Installing Fink
Using Fink
Installing Binaries

14. DarwinPorts
Installing DarwinPorts
Using DarwinPorts
DarwinPorts Maintenance
Installing Binaries

15. Creating and Installing Packages
Using PackageMaker
Using GNU tar
Disk Images
Creating Fink Packages
Creating DarwinPorts Packages

Part IV. Serving and System Management

16. Using Mac OS X as a Server
Getting Connected
Built-in Services: The Sharing Panel
The Mac OS X Firewall

17. System Management Tools
Diagnostic Utilities
Kernel Utilities
System Configuration
Third-Party Applications

18. Free Databases
PHP and Perl

19. Perl and Python
Perl for Mac OS X Geeks
Python for Mac OS X Geeks

Part V. Appendixes

A. Mac OS X GUI Primer

B. Mac OS X’s Unix Development Tools


Mac OS X Tiger for Unix Geeks