You are previewing Mac OS X Panther for Unix Geeks, Second Edition.
O'Reilly logo
Mac OS X Panther for Unix Geeks, Second Edition

Book Description

With its rep for being the sort of machine that won't intimidate even the most inexperienced users, what's the appeal of the Mac® for hard-core geeks? The Mac has always been an efficient tool, pleasant to use and customize, and eminently hackable. But now with Mac OS® X's BSD core, many a Unix® developer has found it irresistible. The latest version of Mac OS X, called Panther, makes it even easier for users to delve into the underlying Unix operating system. In fact, you can port Linux® and Unix applications and run them side-by-side with your native Aqua® apps right on the Mac desktop. Still, even experienced Unix users may find themselves in surprisingly unfamiliar territory as they set out to explore Mac OS X. Even if you know Macs through and through, Mac OS X Panther is unlike earlier Macs, and it's radically different from the Unix you've used before. Enter Mac OS X Panther for Unix Geeks by Brian Jepson and Ernest E. Rothman, two Unix geeks who found themselves in the same place you are. The new edition of this book is your guide to figuring out the BSD Unix system and Panther-specific components that you may find challenging. This concise book will ease you into the Unix innards of Mac OS X Panther, covering such topics as:

  • A quick overview of the Terminal application, including Terminal alternatives like iTerm and GLterm

  • Understanding Open Directory (LDAP) and NetInfo

  • Issues related to using the GNU C Compiler (GCC)

  • Library linking and porting Unix software

  • An overview of Mac OS X Panther's filesystem and startup processes

  • Creating and installing packages using Fink and Darwin Ports

  • Building the Darwin kernel

  • Using the Apple® X11 distribution for running X Windows® applications 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 Panther, although there are no manpages. If you find yourself disoriented by the new Mac environment, Mac OS X Panther for Unix Geeks will get you acclimated quickly to the foreign new areas of a familiar Unix landscape.

Table of Contents

  1. Mac OS X Panther for Unix Geeks
    1. Preface
      1. Audience for This Book
      2. Organization of This Book
      3. Xcode Tools
      4. Where to Go for More Information
      5. Conventions Used in This Book
      6. Comments and Questions
      7. Acknowledgments from the Previous Edition
      8. Acknowledgments from Brian Jepson
      9. Acknowledgments from Ernest E. Rothman
    2. I. Getting Around
      1. 1. Inside the Terminal
        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. Split Screen Terminal Feature
          3. Contextual Menu
        4. Customizing the Terminal
          1. Customizing the Terminal on the Fly
          2. Working with File and Directory Names
            1. Tab completion
          3. Changing Your Shell
        5. The Services Menu
        6. Alternative Terminal Applications
          1. GLterm
          2. iTerm
        7. The open Command
      2. 2. Startup
        1. Booting Mac OS X
          1. The BootX Loader
          2. Initialization
          3. The /etc/rc.boot Script
          4. The /etc/rc Script
          5. SystemStarter
          6. 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 Manager
        5. Directory Services Utilities
        6. Managing Groups
          1. Creating a Group with niload
          2. Creating a Group with dscl
          3. Adding Users to a Group
          4. Listing Groups with nidump
          5. Deleting a Group
        7. Managing Users and Passwords
          1. Creating a User with niload
          2. Creating a User with dscl
          3. Creating a User’s Home Directory
          4. Granting Administrative Privileges
          5. Modifying a User
          6. Listing Users with nidump
          7. Deleting a User
        8. Managing Hostnames and IP Addresses
          1. Creating a Host with niload
        9. Exporting Directories with NFS
        10. Flat Files and Their Directory Services Counterparts
        11. Restoring the Directory Services Database
      4. 4. Printing
        1. Printer Setup Utility
          1. Adding an IP Printer
          2. Modifying a Printer’s Settings
          3. Creating a Desktop Icon for a Printer
          4. Printer Sharing
        2. Common Unix Printing System (CUPS)
          1. Printing from Remote Systems
        3. Gimp-Print
          1. HP InkJet Project (HPIJS)
      5. 5. The X Window System
        1. About Apple’s X11
        2. Installing X11
        3. Running X11
        4. Customizing X11
          1. Dot-files, Desktops, and Window Managers
          2. X11 Preferences, Application Menu, and Dock Menu
            1. Input
            2. Output
            3. Security
            4. Customizing X11’s Applications menu
        5. X11-based Applications and Libraries
          1. Aqua-X11 Interactions
        6. Connecting to Other X Window Systems
          1. OSX2X
        7. Virtual Network Computer
          1. Launching VNC
            1. VNC and SSH
          2. Connecting to the Mac OS X VNC Server
      6. 6. Multimedia
        1. Burning CDs
        2. Video
          1. Open Source Video Players
        3. Image Editing
        4. 3D Modeling
      7. 7. Third-Party Tools and Applications
        1. Virtual Desktops and Screens
        2. The Application Menu
        3. Exposé
        4. Virtual Desktops
          1. VirtualDesktop
          2. Virtual Screens
        5. SSH GUIs
          1. LaTeX
          2. Installing TeX Live-teTeX
          3. TeXShop
          4. iTeXMac
          5. LaTeX Services
        6. RAqua
    3. II. Building Applications
      1. 8. 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
            1. Framework structure
            2. Including a framework in your application
          6. Compiler Flags
        3. Architectural Issues
        4. X11-Based Applications and Libraries
          1. Building X11-Based Applications and Libraries
          2. AquaTerm
      2. 9. Libraries, Headers, and Frameworks
        1. Header Files
          1. Precompiled Header Files
            1. PFE precompilation
          2. malloc.h
          3. poll.h
          4. wchar.h and iconv.h
          5. dlfcn.h
          6. alloc.h
          7. lcyrpt.h
          8. values.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. Creating Frameworks
        7. Prebinding
        8. Performance and Debugging Tools
        9. CHUD Tools
        10. Interesting and Important Libraries
        11. Numerical Libraries
      3. 10. Perl
        1. Perl for Mac OS X Geeks
          1. Mac::Carbon
          2. PerlObjCBridge.pm
          3. Mac::Glue
        2. Installing CPAN Modules
          1. Jaguar and CPAN
          2. CPAN and Dependency Problems
        3. Compiling Your Own Perl
    4. III. Working with Packages
      1. 11. Fink
        1. Installing Fink
          1. Installing Fink from a Disk Image
          2. Installing Fink from Source
          3. Installing Fink from CVS
          4. Post-Installation Setup
        2. Using Fink
        3. FinkCommander
        4. Installing Binaries
      2. 12. Creating and Installing Packages
        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 Utility
          2. Creating a Disk Image from the Command Line
          3. Distributing Your Image
            1. Internet-enabled disk images
        4. Creating Fink Packages
          1. Creating and Publishing the Tarball
          2. Creating the .info File
          3. Installing the Package
    5. IV. Serving and System Management
      1. 13. Using Mac OS X as a Server
        1. Getting Connected
          1. Life Behind a Firewall
        2. LDAP
        3. Postfix
          1. Configuring Postfix to Send Email
          2. Configuring Postfix to Receive Email
          3. Configuring Postfix with a Relay Host
        4. Built-in Services: The Sharing Panel
          1. Personal File Sharing
          2. Windows File Sharing
          3. Personal Web Sharing
            1. dav_module (mod_dav)
            2. perl_module (mod_perl)
            3. ssl_module (mod_ssl)
            4. php4_module (mod_php4)
            5. hfs_apple_module (mod_hfs_apple)
            6. rendezvous_apple_module (mod_rendezvous_apple)
          4. Remote Login
          5. FTP Access
          6. Printer Sharing
          7. Internet Sharing and the Firewall
      2. 14. MySQL and PostgreSQL
        1. MySQL
          1. Compiling MySQL
          2. Installing MySQL
          3. Configuring MySQL
          4. Playing with MySQL
        2. PostgreSQL
          1. Compiling PostgreSQL
          2. Installing PostgreSQL
          3. Adding the Startup Item
          4. Configuring PostgreSQL
          5. Playing with PostgreSQL
        3. PHP and Perl
      3. 15. 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. ktrace
          3. Kernel Module Utilities
          4. sysctl
        3. System Configuration
          1. scutil
          2. defaults
          3. nvram
        4. Third-Party Applications
    6. V. 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. AuthorizationTrampoline
        2. autodiskmount
        3. automount
        4. CCLEngine
        5. cd9660.util
        6. certtool
        7. checkgid
        8. chkpasswd
        9. configd
        10. CpMac
        11. create_nidb
        12. DirectoryService
        13. disktool
        14. fixmount
        15. fixPrecomps
        16. FixupResourceForks
        17. gcc_select
        18. hfs.util
        19. hostinfo
        20. hwprefs
        21. ipconfig
        22. kdumpd
        23. kuncd
        24. languagesetup
        25. makekey
        26. mDNS
        27. mDNSResponder
        28. mount_devfs
        29. mount_ftp
        30. mount_smbfs
        31. mount_synthfs
        32. mount_volfs
        33. msdos.util
        34. notifyd
        35. ntp-wait
        36. ntptimeset
        37. od
        38. opendiff
        39. open-x11
        40. pdisk
        41. pdump
        42. postfix-watch
        43. register_mach_bootstrap_servers
        44. screencapture
        45. scselect
        46. scutil
        47. SecurityServer
        48. service
        49. sips
        50. SplitForks
        51. systemkeychain
        52. udf.util
        53. ufs.util
        54. unzip
        55. vndevice
        56. vsdbutil
        57. zip
      3. C. 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
    7. Index
    8. Colophon