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
UNIX feature | OS X implementation |
---|
/bin/sh | 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. |
/etc/group | 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. |
/etc/passwd | 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. |
ACLs | OS X supports Access Control Lists, which may not be enabled by default (page 97). |
Automatic login | 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. |
Case sensitivity | The default OS X filesystem, HFS+, is not case sensitive. For more information refer to "Case sensitivity" on page 75. |
Core files | 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. |
Developer tools | The Developer Tools package, which includes the gcc compiler, is not installed by default (page 478). |
Development APIs | 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). |
File contents | 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. |
File metadata | 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). |
File permissions | 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). |
init | Under OS X 10.4 and later, init is replaced by launchd. For more information refer to "The Superserver" on page 456. |
LD_LIBRARY_PATH | The variable used to control the dynamic linker is DYLD_LIBRARY_PATH, not LD_LIBRARY_PATH (page 488). |
META key | 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. |
Permissions, file | See "File metadata." |
root account | 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. |
Runlevels | Mac OS X has only single-user and multiuser modes, not the multiple runlevels of System V UNIX and Linux (page 436). |
System databases | 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. |
vi editor | 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). |
xinetd | Under OS X version 10.4 and later, xinetd is replaced by launchd. For more information refer to "The Superserver" on page 456. |