Mac OS X for Unix Geeks

Book description

If you're one of the many Unix developers drawn to Mac OS X for its BSD core, you'll find yourself in surprisingly unfamiliar territory. Even if you're an experienced Mac user, Mac OS X is unlike earlier Macs, and it's radically different from the Unix you've used before, too.Enter "Mac OS X for Unix Geeks" by Brian Jepson and Ernest E. Rothman, two Unix geeks who found themselves in the same place you are. Their new book is your guide to figuring out the BSD Unix system and Mac-specific components that are making your life difficult and to help ease you into the Unix inside Mac OS X. This concise book includes such topics as:

  • A quick overview of the Terminal application
  • Understanding Open Directory (LDAP) and NetInfo
  • Issues related to using the GNU C Compiler 9GCC
  • Library linking and porting Unix software
  • An overview of Mac OS X?s filesystem and startup processes
  • Creating and installing packages using Fink
  • Building the Darwin kernel
  • Running X Windows on top of Mac OS X
The book wraps up with a quick manpage-style reference to the "Missing Manual Pages"--commands that come with Mac OS X although there are no manpages.If you find yourself disoriented by the new Mac environment, Mac OS X for Unix Geeks can help you acclimate yourself quickly to the familiar, yet foreign, Unix landscape.

Publisher resources

View/Submit Errata

Table of contents

  1. Preface
    1. Audience for This Book
    2. Organization of This Book
    3. Developer Tools
    4. Where to Go for More Information
    5. Conventions Used in This Book
    6. Comments and Questions
    7. Acknowledgments for Brian Jepson
    8. Acknowledgments for Ernest E. Rothman
  2. I. Getting Around
    1. 1. The Mac OS X Command Line
      1. Mac OS X Shells
      2. The Terminal and xterm Compared
      3. Using the Terminal
        1. Launching Terminals
          1. .term files
          2. .command files
        2. Customizing the Terminal
        3. Customizing the Terminal on the Fly
      4. The Services Menu
      5. Using the tcsh Shell
        1. Customizing the tcsh Shell
        2. Working with File and Directory Names
          1. Tab completion
        3. Command-Line Editing with tcsh
          1. Emacs mode
          2. vi mode
          3. Additional command-line keys
        4. Additional Shell Commands
      6. Mac OS X’s Unix Development Tools
        1. Standard Unix Development Tools
        2. Apple’s Command-line Developer Tools
        3. Macintosh Tools
        4. Java Development Tools
        5. Text Editing and Processing
        6. Scripting and Shell Programming
        7. Working with Files and Directories
        8. File Compression and Storage
        9. Searching and Sorting
        10. Miscellaneous Tools
    2. 2. Startup
      1. Booting Mac OS X
        1. The BootX Loader
        2. Initialization
        3. The rc Scripts
        4. SystemStarter
        5. The Login Window
      2. Adding Startup Items
        1. Login Preferences
        2. Startup Items
          1. The startup script
          2. The property list
      3. Scheduling Tasks
        1. Default cron Jobs
    3. 3. Directory Services
      1. Understanding Directory Services
      2. Programming with Directory Services
        1. Working with Passwords
      3. Configuring Directory Services
      4. NetInfo
      5. NetInfo Utilities
        1. NetInfo and Mac OS X Server
      6. NetInfo Command Reference
      7. Managing Groups
        1. Creating a Group with niload
        2. Creating a Group with nicl
        3. Adding Users to a Group
        4. Listing Groups with nidump
        5. Deleting a Group
      8. Managing Users and Passwords
        1. Creating a User with niload
        2. Creating a User with nicl
        3. Creating a User’s Home Directory
        4. Modifying a User
        5. Listing Users with nidump
        6. Deleting a User
      9. Managing Hostnames and IP Addresses
        1. Creating a Host with niload
      10. Exporting Directories with NFS
      11. Flat Files and Their NetInfo Counterparts
      12. Restoring the NetInfo Database
  3. II. Building Applications
    1. 4. Compiling Source Code
      1. Compiler Differences
        1. AltiVec
      2. Compiling Unix Source Code
        1. The First Line of Defense
        2. Host Type
          1. Macros
        3. Supported Languages
        4. Preprocessing
        5. Frameworks
      3. Architectural Issues
    2. 5. Libraries, Headers, and Frameworks
      1. Header Files
        1. Precompiled Header Files
          1. PFE precompilation
        2. malloc.h
      2. The System Library: libSystem
      3. Shared Libraries Versus Loadable Modules
        1. Building a Shared Library
        2. Dynamically Loading Libraries
        3. Two-level Namespaces
      4. Library Versions
      5. Creating and Linking Static Libraries
      6. Prebinding
      7. Interesting and Important Libraries
    3. 6. Creating and Installing Packages
      1. Fink
      2. Creating Fink Packages
        1. Sample Program
        2. Creating and Publishing the Tarball
        3. Creating the .info File
        4. Installing the Package
      3. GNU-Darwin
      4. Packaging Tools
        1. Using PackageMaker
          1. Setting up the directory
          2. Creating the package
        2. Using GNU tar
        3. Disk Images
          1. Creating a disk image with Disk Copy
          2. Creating a disk image from the command line
        4. Distributing Your Image
  4. III. Beyond the User Space
    1. 7. Building the Darwin Kernel
      1. Darwin Development Tools
      2. Getting the Source Code
        1. Using CVS
          1. Checking out sources
          2. Updating sources
        2. Getting the Right Version
      3. Building and Installing the Kernel
      4. Kernel Configuration
    2. 8. System Management Tools
      1. Diagnostic Utilities
        1. top
        2. fs_usage
        3. latency
        4. sc_usage
        5. vm_stat
      2. Kernel Utilities
        1. ddb
        2. Kernel Module Utilities
        3. sysctl
      3. System Configuration
        1. defaults
          1. Syntax
          2. Options
          3. Commands
          4. Values
          5. Examples
        2. nvram
    3. 9. The X Window System
      1. Installing X11
        1. Manually Installing X11
      2. Running XDarwin
        1. Running XDarwin from the Console
      3. Desktops and Window Managers
      4. X11-based Applications and Libraries
        1. Building X11-based Applications and Libraries
      5. Making X11 Applications More Aqua-like
        1. An Aqua-like X11: OroborOSX
      6. AquaTerm
        1. Aqua-X11 Interactions
      7. Connecting to Other X Window Systems
      8. Virtual Network Computers
        1. Launching VNC
        2. Connecting to the Mac OS X VNC Server
      9. Conclusion
  5. IV. Appendixes
    1. A. The Mac OS X Filesystem
      1. Files and Directories
        1. The /etc Directory
        2. The /System/Library Directory
        3. The /Library Directory
        4. The /var Directory
        5. The /dev Directory
    2. B. Command-Line Tools: The Missing Manpages
      1. aexml
      2. configd
      3. DirectoryService
      4. disktool
      5. dynamic_pager
      6. ipconfig
      7. opendiff
      8. pbcopy
      9. pbpaste
      10. pl
      11. scselect
      12. scutil
      13. SplitForks
      14. tiff2icns
      15. tiffutil
      16. udf.util
      17. vsdbutil
  6. Index
  7. About the Authors
  8. Colophon
  9. Copyright

Product information

  • Title: Mac OS X for Unix Geeks
  • Author(s): Ernest E. Rothman, Brian Jepson
  • Release date: September 2002
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9780596003562