Jump To:
The Reference Library is a comprehensive collection of Apple technical resources, including Articles, Guides, Reference, Release Notes, Sample Code, Technical Notes, and Technical Q&As. Each of the links below leads to the resources for a specific topic.

Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Resource Type
Sort by
Date
File System Overview (HTML) (PDF)
Conceptual information and guidelines describing the structure and usage of the Mac OS X file system.
Darwin Guides 2008-07-11
FileNotification (HTML) (DMG) (ZIP)
kqueue file notification introduced in 10.3. Notification API to detect file system modifications.
Darwin Sample Code 2005-10-27
filesystem_examples (HTML) (DMG) (ZIP)
Collection of command line tools illustrating filesystem features.
Darwin Sample Code 2006-01-10
FireWire Device Interface Guide (HTML) (PDF)
Explains how to develop applications to communicate with or control FireWire devices and units.
Darwin Guides 2007-02-08
Force Feedback Framework Reference (HTML)
Describes the public interfaces to the Force Feedback implementation in Mac OS X, including support for plug-ins.
Darwin Reference 2008-04-08
Frequently Asked Questions about the X Window System (X11) for Mac OS X (HTML)
TN2165: Answers several FAQs about the Mac OS X implementation of X11
Darwin Technical Notes 2007-01-22
FSEvents Reference (HTML)
Describes the API used to provide lightweight notification of directory changes in a file-system subtree.
Darwin Reference 2008-04-08
FSMegaInfo (HTML) (DMG) (ZIP)
Prints information about various file system objects; helpful when debugging VFS plug-ins.
Darwin Sample Code 2008-02-25
GCC Porting Guide (HTML) (PDF)
Provides guidance on how to migrate projects to new GCC releases.
Darwin Guides 2006-10-03
GDB for MacsBug Veterans (HTML)
TN2030: Translate your experience with MacsBug into a working knowledge of the GNU source-level debugger (GDB).
Darwin Technical Notes 2001-10-18
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
Darwin Technical Q&As 2008-10-13
GetMACAddressSample (HTML) (DMG) (ZIP)
Demonstrates how to retrieve the MAC address for each Ethernet interface from the Mac OS X I/O Registry.
Darwin Sample Code 2003-01-14
GetPrimaryMACAddress (HTML) (DMG) (ZIP)
Demonstrates retrieving the MAC address of the built-in Ethernet controller. Useful for uniquely identifying a Macintosh system.
Darwin Sample Code 2005-10-27
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Darwin Technical Q&As 2008-06-03
Getting List of All Processes on Mac OS X (HTML) (日本語 HTML)
QA1123: Describes how, using Carbon and BSD respectively, to list all applications and processes.
Darwin Technical Q&As 2002-03-05
Getting Started with launchd (HTML)
Learn about launchd and see how to migrate your configuration files.
Darwin Articles 2005-08-22
GNU C 4.0 Preprocessor User Guide (HTML)
Describes the Apple version of the GNU C 4.0 Preprocessor.
Darwin Reference 2007-10-31
GNU C 4.2 Preprocessor User Guide (HTML)
Describes the Apple version of the GNU C 4.2 Preprocessor.
Darwin Reference 2008-01-23
GNU C/C++/Objective-C 3.3 Compiler (HTML)
Explains how to use the GNU compilers from the command line.
Darwin Reference
GNU C/C++/Objective-C 4.0.1 Compiler User Guide (HTML)
Describes the Apple version of the GNU 4.0.1 compiler.
Darwin Reference 2007-10-31
GNU C/C++/Objective-C 4.2.1 Compiler User Guide (HTML)
Describes the Apple version of the GNU 4.2.1 compiler.
Darwin Reference 2008-01-23
HBA Device Driver Programming Guide (HTML) (PDF)
Describes how to develop a high-performance, kernel-resident driver for an HBA device.
Darwin Guides 2006-05-23
HeaderDoc User Guide (HTML) (PDF)
Explains how to extract API reference documentation from commented header files.
Darwin Guides 2008-04-08
HID Class Device Interface Guide (HTML) (PDF)
Explains how to develop applications to communicate with or control HID class devices.
Darwin Guides 2009-05-06
I/O Kit Device Driver Design Guidelines (HTML) (PDF)
Design guidelines and tips for developing, debugging, and deploying kernel-resident device drivers, including user clients.
Darwin Guides 2007-03-06
I/O Kit Framework Reference (HTML)
Describes the I/O Kit classes that support non-kernel access to I/O Kit objects through the device-interface mechanism.
Darwin Reference 2009-03-04
I/O Kit Fundamentals (HTML) (PDF)
The basics of developing device drivers. Includes descriptions of I/O Kit families.
Darwin Guides 2007-05-17
I/O Kit Power Management Release Notes (HTML)
Describes the latest changes to power management for Mac OS X v10.5.
Darwin Release Notes 2007-10-31
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Darwin Technical Q&As 2003-10-28
Integrating With The Connect to Server Dialog (HTML)
QA1387: Describes problems integrating a third-party network file system with Finder's Connect to Server dialog.
Darwin Technical Q&As 2006-11-16
IODeviceTree and the I/O Registry (HTML) (日本語 HTML)
QA1120: Describes the IODeviceTree plane in the Mac OS X I/O Registry.
Darwin Technical Q&As 2008-09-18
IOKit Framework Headers (HTML) (日本語 HTML)
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Darwin Technical Q&As 2002-01-15
IOKitWithLibrary (HTML) (DMG) (ZIP)
Shows how an I/O Kit driver can link with a C library from a separate kernel extension.
Darwin Sample Code 2003-08-27
IOLog and Interrupt Context (HTML) (日本語 HTML)
QA1100: Describes when IOKit runs at primary (hardware) interrupt context.
Darwin Technical Q&As 2002-02-13
IOPrintSuperClasses (HTML) (DMG) (ZIP)
Given the name of a class, this tool will print all of the super-classes of that class.
Darwin Sample Code 2005-08-17
Is dlopen available on all versions of Mac OS X? (HTML) (日本語 HTML)
QA1180: Describes how to dynamically link to libraries and plug-ins, typically done with dlopen.
Darwin Technical Q&As 2008-08-19
Issues with boot time KEXT loading (HTML) (日本語 HTML)
QA1087: Explains how to solve problems with loading KEXTs at boot time.
Darwin Technical Q&As 2004-01-15
KauthORama (HTML) (DMG) (ZIP)
Prints each Kauth request, illustrating how Kauth interacts with high-level operations, like copying files.
Darwin Sample Code 2007-04-30
Kerberos: Highly Secure Single Sign On Authentication in Mac OS X (HTML)
Learn how you can take advantage of Kerberos in your application.
Darwin Articles 2007-02-05
Kernel Authorization (HTML)
TN2127: Describes the kernel authorization (kauth) subsystem and its associated KPI.
Darwin Technical Notes 2007-01-16
Kernel Core Dumps (HTML)
TN2118: Explains how to gather and use remote kernel core dumps.
Darwin Technical Notes 2008-11-12
Kernel Extension Programming Topics (HTML) (PDF)
Combines the HOWTOs that were previously documented in Hello Debugger, Hello IOKit, Hello KEXT, Packaging KEXT, and KEXT Dependencies.
Darwin Guides 2007-10-31
Kernel Extensions Release Notes (HTML)
Darwin Release Notes 2007-10-31
Kernel Framework Reference (HTML)
Describes the APIs and classes (including I/O Kit families) that support kernel-resident device drivers.
Darwin Reference 2009-01-06
Kernel Programming Guide (HTML) (PDF)
Essential information for programming in the Mac OS X kernel. Includes a high-level overview.
Darwin Guides 2006-11-07
Kernel's MAC framework (HTML)
QA1574: Cautions that the kernel's MAC framework is currently not support.
Darwin Technical Q&As 2008-01-04
KPI Reference (HTML)
Provides information on the NKE Sustainable API in Headerdoc format.
Darwin Reference 2006-07-17
Leopard Technology Series for Developers: OS Foundations (HTML)
Leopard Overview article on system-level updates.
Darwin Articles 2007-09-04
Mac OS X ABI Dynamic Loader Reference (HTML) (PDF)
Describes the functions used to access Mach-O files.
Darwin Reference 2005-11-09
Mac OS X ABI Function Call Guide (HTML) (PDF)
Describes the function-calling conventions used in the architectures supported by Mac OS X.
Darwin Guides 2009-02-04
Mac OS X ABI Mach-O File Format Reference (HTML) (PDF)
Describes the data structures that make up the Mach-O file format.
Darwin Reference 2009-02-04
Mac OS X and root access (HTML)
QA1013: Describes how to enable root access in Mac OS X.
Darwin Technical Q&As 2008-09-16
Mac OS X Code Signing In Depth (HTML)
TN2206: Intermediate to expert level overview of code signing that details specific options and gotchas
Darwin Technical Notes 2008-08-06
Mac OS X Man Pages (HTML)
HTML versions of the Mac OS X, Mac OS X Server, Xcode Tools, and CHUD man pages.
Darwin Reference 2008-04-29
Mac OS X Notification Overview (HTML) (PDF)
Darwin Guides 2007-05-15
Mach Absolute Time Units (HTML)
QA1398: Describes how to convert Mach absolute time units to real time, and vice versa.
Darwin Technical Q&As 2005-01-06
MachPortDump (HTML) (DMG) (ZIP)
Dumps out the Mach port name space of a process; useful when debugging port right leaks.
Darwin Sample Code 2005-08-10
Making sense of IOKit error codes (HTML) (日本語 HTML)
QA1075: Explains how to interpret I/O Kit error codes.
Darwin Technical Q&As 2002-02-07
MapLargeFile (HTML) (DMG) (ZIP)
Shows a technique for mapping files greater than 4GB into memory for faster access.
Darwin Sample Code 2003-11-19
Mass Storage Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing kernel-resident drivers for mass storage devices.
Darwin Guides 2007-04-03
MemoryBasedBundle (HTML) (DMG) (ZIP)
Shows how to execute Mach-O code from memory, much like GetMemFragment in CFM.
Darwin Sample Code 2005-08-10
MFSLives (HTML) (DMG) (ZIP)
Sample VFS plug-in for the Macintosh File System (MFS) volume format, as used on 400KB floppies.
Darwin Sample Code 2006-11-09
Miscellaneous User Space API Reference (HTML)
Describes APIs located in various headers in /usr/include.
Darwin Reference 2006-09-05
Mixing link-local IP addresses and routable IP addresses (HTML)
QA1357: Explains how to enable communication between devices with link-local addresses and devices with routable addresses.
Darwin Technical Q&As 2005-07-06
MoreIsBetter (HTML) (DMG) (ZIP)
Library providing indispensable wrapers and workarounds for many areas of Mac OS programming.
Darwin Sample Code 2003-10-27
MoreSCF (HTML) (DMG) (ZIP)
High-level wrapper around System Configuration framework, making common operations easy.
Darwin Sample Code 2007-06-07
Moriarity (HTML) (DMG) (ZIP)
Implementing a Cocoa GUI that wraps command-line functionality, calling a UNIX task and presenting the results in a GUI.
Darwin Sample Code 2003-01-14
Multipathing with FibreChannel on Mac OS X (HTML)
TN2173: An explanation on how FibreChannel multipathing works on Mac OS X and how to design storage hardware to take advantage of it
Darwin Technical Notes 2007-03-23
Netwide Assembler Guide (HTML)
Describes the Netwide Assembler for Intel-based Macs.
Darwin Reference 2008-06-19
Network Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing network drivers for Mac OS X.
Darwin Guides 2008-03-11
Network Kernel Extensions (legacy) (HTML) (PDF)
Describes how to write a kernel extension for adding or modifying functionality of a networking stack (Mac OS X 10.3 and earlier).
Darwin Guides 2006-10-03
Network Kernel Extensions Programming Guide (HTML) (PDF)
Describes how to write a kernel extension for adding or modifying functionality of a networking stack (Mac OS X 10.4 and later).
Darwin Guides 2009-03-02
NetworkAuthentication (HTML) (DMG) (ZIP)
Demonstrates authentication with Open Directory APIs and GSSAPI
Darwin Sample Code 2005-06-01
NotifyTool (HTML) (DMG) (ZIP)
Shows how to use the BSD notify API.
Darwin Sample Code 2007-09-25
Observing Process Lifetimes Without Polling (HTML)
TN2050: Shows a variety of methods to observe process lifetimes without polling.
Darwin Technical Notes 2008-09-10
Open Directory Plug-in Programming Guide (HTML) (PDF)
Explains how to implement dynamically loaded libraries that respond to Open Directory client requests in Carbon.
Darwin Guides 2006-05-23
Open Directory Programming Guide (HTML) (PDF)
Explains how to implement centralized storage and retrieval of information in Carbon.
Darwin Guides 2007-01-08
Open Directory Reference (HTML) (PDF)
Describes the Carbon API for using Open Directory.
Darwin Reference 2006-05-23
Open Firmware Memory bus speed (HTML)
HW97: Describes a method to display memory bus speed for G3 or G4 Macintosh in Open Firmware.
Darwin Technical Q&As 2000-09-22
Packaging UNIX Software (HTML)
Explains how to post UNIX and other command-line tools to Apple's Macintosh Product Guide.
Darwin Guides 2001-04-20
Pascal to C: PROCEDURE Parameters (HTML)
Deprecated - PT31: Nested procedures and PROCEDURE parameters in Pascal when converting them into C or C++.
Darwin Technical Notes 1990-02-01
PCI/PCI-X slots on the Power Mac G5 (HTML)
QA1307: Discusses installing PCI/PCI-X cards of different speeds in the Power Mac G5.
Darwin Technical Q&As 2003-09-30
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
Darwin Guides 2006-10-03
Perl, Python, and Ruby Extensions Release Notes (HTML)
Describes how to create universal binary extensions for Perl, Python, and Ruby.
Darwin Release Notes 2007-10-31
PIDFromBSDProcessName (HTML) (DMG) (ZIP)
Provides a simple API to do process PID lookup based on BSD process name.
Darwin Sample Code 2003-02-13
Porting Command Line Unix Tools to Mac OS X (HTML) (日本語 HTML)
TN2071: A general guide for Unix developers porting software to Mac OS X.
Darwin Technical Notes 2003-09-03
Porting Drivers to Mac OS X (HTML) (PDF)
Tips and code samples to help UNIX/Linux device driver developers bring their drivers to Mac OS X.
Darwin Guides 2009-05-06
Porting UNIX/Linux Applications to Mac OS X (HTML) (PDF)
Conceptual information and tips about porting UNIX and Linux applications to Mac OS X.
Darwin Guides 2008-04-08
Power Management; Policy Maker vs. Power Controller (HTML) (日本語 HTML)
QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller.
Darwin Technical Q&As 2002-02-13
Preventing sleep (HTML)
QA1160: Explains how your application can prevent the system from sleeping.
Darwin Technical Q&As 2004-10-22
Programmatically causing restart, shutdown and/or logout (HTML) (日本語 HTML)
QA1134: Describes how to programmatically cause restart, shutdown, sleep or logout.
Darwin Technical Q&As 2008-09-24
QISA (HTML) (DMG) (ZIP)
Demonstrates the basics of writing an Internet setup assistant for traditional Mac OS and Mac OS X.
Darwin Sample Code 2003-05-15
Registering and unregistering for sleep and wake notifications (HTML)
QA1340: Explains how applications can register and unregister for sleep and wake notifications on Mac OS X.
Darwin Technical Q&As 2008-08-08
Retain Counts of io_object_t Objects in IOKit.framework (HTML) (日本語 HTML)
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Darwin Technical Q&As 2008-09-24
Running At Login (HTML)
TN2228: Describes how to write code that's coordinated with the login process.
Darwin Technical Notes 2008-09-16
SampleD (HTML) (DMG) (ZIP)
Demonstrates use of launchd and Apple System Logger.
Darwin Sample Code 2005-10-27
SampleFilterScheme (HTML) (DMG) (ZIP)
Demonstrates a simple filter scheme which passes all operations through to its provider unchanged.
Darwin Sample Code 2006-01-03
SampleUSBAudioPlugin (HTML) (DMG) (ZIP)
USB audio plugin that performs a lowpass filtering operation on audio streamed through an audio USB Device.
Darwin Sample Code 2005-03-07
SCSI Architecture Model Device Interface Guide (HTML) (PDF)
Explains how to develop applications that communicate with or control SCSI Architecture Model devices.
Darwin Guides 2007-02-08
SCSIHBAEmulator (HTML) (DMG) (ZIP)
Demonstration of how to implement a virtual parallel tasking SCSI host bus adapter (HBA)
Darwin Sample Code 2007-02-20