This appendix is a brief guide to Mac OS X features and quirks that may be unfamiliar to users who have been using other UNIX or UNIX-like systems. Each entry in Table C-1 describes a difference in behavior and includes cross references to the discussion of the feature in question in the book.
Table C-1. Mac OS X implementation of standard UNIX features
OS X implementation
The /bin/sh is a copy of bash (/bin/bash); it is not a link to /bin/bash as it is on some other systems (page 269). The original Bourne Shell does not exist under OS X.
Mac OS X uses NetInfo, not /etc/group, to store group information. For more information see "NetInfo" on page 441 and "Files in /etc are not always used" on page 446.
Mac OS X uses NetInfo, not /etc/passwd, to store user accounts. For more information see "NetInfo" on page 441 and "Files in /etc are not always used" endterm="ch11note10.title"/>" on page 446.
OS X supports Access Control Lists, which may not be enabled by default (page 97).
By default non-Server Mac OS X systems log in the first user account when you boot the system. For more information refer to "Graphical Login" on page 20.
The default OS X filesystem, HFS+, is not case sensitive. For more information refer to "Case sensitivity" on page 75.
By default OS X does not save core files (page 501). When core files are saved, they are kept in /cores, not in the working directory.
The Developer Tools package, which includes the gcc compiler, is not installed by default (page 478).
Mac OS X uses three software development APIs: Cocoa, Carbon, and BSD UNIX (page 478).
Dynamic linker Id.so
The OS X dynamic linker is dyld, not Id.so (page 488).
ELF and a.out binary formats
The primary binary format under OS X is Mach-O, not ELF or a.out (page 485).
Files may have multiple forks, which some traditional utilitiesespecially under OS X 10.3 and earliermay corrupt or lose when manipulating files. For more information refer to "Extended Attributes" on page 93.
OS X stores more data about a file than traditional UNIX systems store. In addition to traditional UNIX permissions (page 87), OS X files have file flags (page 92) and extended attributes (page 93), which comprise resource forks (page 93), file attributes (page 95), and ACLs (page 97).
See "File metadata."
Filesystem structure /etc/fstab
Instead of filesystems being mounted according to settings in /etc/fstab, filesystems are automatically mounted in the /Volumes directory (page 86).
Under OS X 10.4 and later, init is replaced by launchd. For more information refer to "The Superserver" on page 456.
The variable used to control the dynamic linker is DYLD_LIBRARY_PATH, not LD_LIBRARY_PATH (page 488).
On an Apple keyboard, the META key is labeled OPTION, not ALT or META. For more information see the "Activating the META key" tip on page 31.
See "File metadata."
Initially, on a non-Server Mac OS X system, there is no password for the root account, so you cannot log in as root and cannot su to root. As a member of the admin group, you can use sudo to run a command or shell with root privileges (page 431). See page 430 for instructions on how to enable the root account.
Mac OS X has only single-user and multiuser modes, not the multiple runlevels of System V UNIX and Linux (page 436).
Some system databases, such as passwd and group, are stored by NetInfo (page 441) and not in the /etc directory (page 446). You can work with NetInfo databases using the nidump utility (page 796) and the NetInfo Manager GUI application.
When you call the vi editor, OS X 10.3 and later run vim (page 145) because the file /usr/bin/vi is a link to /usr/bin/vim. OS X 10.4 and later run vim in compatible mode (page 153). OS X 10.2 and earlier use nvi (page 145) instead of vi.
X Window System
The X Window System is not the primary windowing environment under OS X. If you do run the X Window System, it runs under the native Aqua graphical interface, not as a stand-alone server (page 10).
Under OS X version 10.4 and later, xinetd is replaced by launchd. For more information refer to "The Superserver" on page 456.