Jump To:
Leopard Reference Library
Darwin is the UNIX technology-based foundation of Mac OS X. Darwin integrates several technologies. Among the most important are 4.4BSD-based operating-system services (built on the Mach 3.0 microkernel), the I/O Kit, networking facilities, and support for multiple integrated file systems. Developers can use Darwin to port UNIX/Linux applications and create kernel extensions.

A guided introduction and learning path for developers new to Darwin.   Essential information for developers working in the Darwin environment.   C and Objective-C API references organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sort by
Topic
Sort by
Resource Type
Sorted by
Date
HID Class Device Interface Guide (HTML) (PDF)
Explains how to develop applications to communicate with or control HID class devices.
Hardware & Drivers Guides 2009-05-06
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.
General, Porting Guides 2009-05-06
Audio Device Driver Programming Guide (HTML) (PDF)
Explains how to develop kernel-resident drivers for audio devices.
Hardware & Drivers Guides 2009-03-04
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.
General, Hardware & Drivers Reference 2009-03-04
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).
Kernel, Networking Guides 2009-03-02
Dynamic Library Programming Topics (HTML) (PDF)
Explains how to design, implement, and use dynamic libraries.
Runtime Architecture Guides 2009-02-26
Mac OS X ABI Function Call Guide (HTML) (PDF)
Describes the function-calling conventions used in the architectures supported by Mac OS X.
Intel-Based Macs 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.
Runtime Architecture, Tools Reference 2009-02-04
Universal Binary Programming Guidelines, Second Edition (HTML) (PDF)
Conceptual information and tips for writing code that runs on PowerPC-based and Intel-based Macintosh computers.
Intel-Based Macs Guides 2009-02-04
Authorization Services Programming Guide (HTML) (PDF)
Explains how to add fine-grained control of privileged operations in an application.
Security Guides 2009-01-06
Kernel Framework Reference (HTML)
Describes the APIs and classes (including I/O Kit families) that support kernel-resident device drivers.
General, Hardware & Drivers Reference 2009-01-06
Code Signing Guide (HTML) (PDF)
Explains how you can sign your code and why you should.
Security Guides 2008-11-19
System Startup Programming Topics (HTML) (PDF)
Explains the boot process used to initialize the Mac OS X operating system.
Runtime Architecture Guides 2008-11-19
Kernel Core Dumps (HTML)
TN2118: Explains how to gather and use remote kernel core dumps.
Hardware & Drivers, Kernel Technical Notes 2008-11-12
Bluetooth Framework Reference (HTML)
Describes the C and Objective-C APIs that support user-space access to Bluetooth devices.
Hardware & Drivers Reference 2008-10-15
Security Overview (HTML) (PDF)
An introduction to computer security concepts and the security APIs in Mac OS X and iPhone OS.
Security Guides 2008-10-15
Allocating and sharing memory with user space from an I/O Kit driver (HTML) (日本語 HTML)
QA1197: Describes the preferred technique for allocating and sharing buffers in an I/O Kit kernel driver.
Hardware & Drivers, Kernel Technical Q&As 2008-10-13
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
Hardware & Drivers, Kernel Technical Q&As 2008-10-13
Programmatically causing restart, shutdown and/or logout (HTML) (日本語 HTML)
QA1134: Describes how to programmatically cause restart, shutdown, sleep or logout.
Hardware & Drivers Technical Q&As 2008-09-24
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.
Hardware & Drivers Technical Q&As 2008-09-24
IODeviceTree and the I/O Registry (HTML) (日本語 HTML)
QA1120: Describes the IODeviceTree plane in the Mac OS X I/O Registry.
Hardware & Drivers Technical Q&As 2008-09-18
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Performance Technical Q&As 2008-09-16
Mac OS X and root access (HTML)
QA1013: Describes how to enable root access in Mac OS X.
Hardware & Drivers, Kernel, Security Technical Q&As 2008-09-16
Running At Login (HTML)
TN2228: Describes how to write code that's coordinated with the login process.
Process Management Technical Notes 2008-09-16
Observing Process Lifetimes Without Polling (HTML)
TN2050: Shows a variety of methods to observe process lifetimes without polling.
Process Management Technical Notes 2008-09-10
SimpleUserClient (HTML) (DMG) (ZIP)
Shows how to create a user client for an I/O Kit kernel driver.
Hardware & Drivers, Kernel Sample Code 2008-08-27
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.
Porting, Runtime Architecture, Tools Technical Q&As 2008-08-19
Building Universal I/O Kit Drivers (HTML)
TN2163: How to build a universal I/O Kit kernel driver while avoiding common pitfalls.
Hardware & Drivers Technical Notes 2008-08-18
Understanding and Debugging Kernel Panics (HTML) (日本語 HTML)
TN2063: Addresses kernel panics: what they are and how to debug the code that caused the panic.
Hardware & Drivers, Kernel Technical Notes 2008-08-14
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.
Hardware & Drivers, Resource Management Technical Q&As 2008-08-08
Mac OS X Code Signing In Depth (HTML)
TN2206: Intermediate to expert level overview of code signing that details specific options and gotchas
Security Technical Notes 2008-08-06
File System Overview (HTML) (PDF)
Conceptual information and guidelines describing the structure and usage of the Mac OS X file system.
File Management Guides 2008-07-11
Netwide Assembler Guide (HTML)
Describes the Netwide Assembler for Intel-based Macs.
Tools Reference 2008-06-19
BootstrapDump (HTML) (DMG) (ZIP)
Print Mach bootstrap namespace information.
Interprocess Communication, Process Management Sample Code 2008-06-18
Using Doxygen to Create Xcode Documentation Sets (HTML)
Learn how to integrate your documentation into Xcode.
Open Source Articles 2008-06-09
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Networking Technical Q&As 2008-06-03
Secure Coding Guide (HTML) (PDF)
Describes techniques to use and factors to consider to make your code more secure from attack.
Security Guides 2008-05-23
Mac OS X Man Pages (HTML)
HTML versions of the Mac OS X, Mac OS X Server, Xcode Tools, and CHUD man pages.
General, Networking, Tools Reference 2008-04-29
DNS Service Discovery C Reference (HTML)
Describes the DNS Service Discovery API for implementing Bonjour in an application.
Networking Reference 2008-04-23
Determining console user login status (HTML)
QA1133: How to determine whether a user is logged in on the console, and be notified of changes.
Process Management Technical Q&As 2008-04-14
64-Bit Transition Guide (HTML) (PDF)
Describes the 64-bit features available in Mac OS X.
Interprocess Communication, Performance, Porting Guides 2008-04-08
Bluetooth User Interface Framework Reference (HTML)
Describes the C and Objective-C APIs that provide a consistent user interface to Bluetooth services.
Hardware & Drivers Reference 2008-04-08
Darwin Notification API Reference (HTML)
Describes the Darwin API for interprocess notification.
General, Interprocess Communication Reference 2008-04-08
Disk Arbitration Framework Reference (HTML)
Describes Disc Arbitration API, which includes information on mount/unmount notification and dissent.
General Reference 2008-04-08
Force Feedback Framework Reference (HTML)
Describes the public interfaces to the Force Feedback implementation in Mac OS X, including support for plug-ins.
Hardware & Drivers Reference 2008-04-08
FSEvents Reference (HTML)
Describes the API used to provide lightweight notification of directory changes in a file-system subtree.
File Management Reference 2008-04-08
HeaderDoc User Guide (HTML) (PDF)
Explains how to extract API reference documentation from commented header files.
Tools Guides 2008-04-08
Porting UNIX/Linux Applications to Mac OS X (HTML) (PDF)
Conceptual information and tips about porting UNIX and Linux applications to Mac OS X.
Porting, Tools Guides 2008-04-08
System Configuration Framework Reference (HTML)
Describes the API for configuration of network resources, the reachability of target hosts, and connection to network services.
Networking Reference 2008-04-08
Bonjour Printer Subtype for HTTP (HTML)
QA1555: Describes how printer vendors can register their bonjour service such that Safari can see them.
Networking, Printing Technical Q&As 2008-03-25
Supported KPIs (HTML)
QA1575: Describes how to check whether a kernel function is part of a supported KPI.
Kernel Technical Q&As 2008-03-25
UTXplorer (HTML) (DMG) (ZIP)
Uses the <utmpx.h> API to display current login sessions and login history.
Process Management Sample Code 2008-03-19
CryptNoMore (HTML) (DMG) (ZIP)
Shows how to authenticate a user using Open Directory (Directory Services).
Security Sample Code 2008-03-17
File System Events Programming Guide (HTML) (PDF)
Explains how applications can detect changes in the file system.
File Management, Interprocess Communication, Kernel, Performance Guides 2008-03-11
Network Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing network drivers for Mac OS X.
Hardware & Drivers Guides 2008-03-11
Suppressing the "unexpectedly quit" alert (HTML)
QA1288: Describes how to suppress the "unexpectedly quit" alert.
Security Technical Q&As 2008-03-11
FSMegaInfo (HTML) (DMG) (ZIP)
Prints information about various file system objects; helpful when debugging VFS plug-ins.
File Management Sample Code 2008-02-25
Customizing Process Stack Size (HTML)
QA1419: Describes methods for setting the stack size of a process and/or thread.
Process Management, Resource Management Technical Q&As 2008-02-20
GNU C 4.2 Preprocessor User Guide (HTML)
Describes the Apple version of the GNU C 4.2 Preprocessor.
Tools Reference 2008-01-23
GNU C/C++/Objective-C 4.2.1 Compiler User Guide (HTML)
Describes the Apple version of the GNU 4.2.1 compiler.
Tools Reference 2008-01-23
Kernel's MAC framework (HTML)
QA1574: Cautions that the kernel's MAC framework is currently not support.
Kernel Technical Q&As 2008-01-04
Daemons and Agents (HTML)
TN2083: Describes the most common problems encountered with daemons and agents, and suggests detailed solutions.
Process Management Technical Notes 2007-11-05
Affinity API Release Notes for Mac OS X v10.5 (HTML)
Explains how to influence which CPU core runs a group of threads (for performance optimization).
Performance, Process Management Release Notes 2007-10-31
CCL Modem Scripting Release Notes (HTML)
Explains changes to modem CCLs for Mac OS X v10.5 and what to do to change existing and supersede older scripts.
Hardware & Drivers, Networking Release Notes 2007-10-31
Code Signing Release Notes (HTML)
Security Release Notes 2007-10-31
GNU C 4.0 Preprocessor User Guide (HTML)
Describes the Apple version of the GNU C 4.0 Preprocessor.
Tools Reference 2007-10-31
GNU C/C++/Objective-C 4.0.1 Compiler User Guide (HTML)
Describes the Apple version of the GNU 4.0.1 compiler.
Intel-Based Macs, Tools Reference 2007-10-31
I/O Kit Power Management Release Notes (HTML)
Describes the latest changes to power management for Mac OS X v10.5.
Hardware & Drivers Release Notes 2007-10-31
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.
General, Kernel Guides 2007-10-31
Kernel Extensions Release Notes (HTML)
Kernel Release Notes 2007-10-31
Perl, Python, and Ruby Extensions Release Notes (HTML)
Describes how to create universal binary extensions for Perl, Python, and Ruby.
Porting, Tools Release Notes 2007-10-31
CFProxySupportTool (HTML) (DMG) (ZIP)
Shows how to use the CFProxySupport APIs to decide whether a network connection should pass through a proxy.
Networking Sample Code 2007-10-29
Descriptor Passing Problems (HTML)
QA1541: Describes how to work around common problems with descriptor passing.
Kernel, Networking Technical Q&As 2007-10-29
Symbol Variants Release Notes (HTML)
Describes symbol variants, a way of providing multiple versions of symbols for backwards compatibility.
Porting, Tools Release Notes 2007-10-16
NotifyTool (HTML) (DMG) (ZIP)
Shows how to use the BSD notify API.
Interprocess Communication Sample Code 2007-09-25
Leopard Technology Series for Developers: OS Foundations (HTML)
Leopard Overview article on system-level updates.
File Management Articles 2007-09-04
USB Device Interface Guide (HTML) (PDF)
Provides background information and sample code for developing applications to communicate with or control USB devices and interfaces.
Hardware & Drivers Guides 2007-09-04
System Configuration Reference Update (HTML) (PDF)
Summarizes the symbols added to the System Configuration framework.
General, Networking Release Notes 2007-07-18
CCL Modem Scripting Guide (HTML) (PDF)
Hardware & Drivers, Networking Guides 2007-06-28
MoreSCF (HTML) (DMG) (ZIP)
High-level wrapper around System Configuration framework, making common operations easy.
Networking Sample Code 2007-06-07
Core Endian Reference (HTML) (PDF)
Describes the C API for creating and installing callbacks to byte swap custom data.
Intel-Based Macs Reference 2007-05-29
I/O Kit Fundamentals (HTML) (PDF)
The basics of developing device drivers. Includes descriptions of I/O Kit families.
Hardware & Drivers, Resource Management Guides 2007-05-17
Mac OS X Notification Overview (HTML) (PDF)
Interprocess Communication, Runtime Architecture Guides 2007-05-15
KauthORama (HTML) (DMG) (ZIP)
Prints each Kauth request, illustrating how Kauth interacts with high-level operations, like copying files.
Kernel, Security Sample Code 2007-04-30
Mass Storage Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing kernel-resident drivers for mass storage devices.
Hardware & Drivers Guides 2007-04-03
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
Hardware & Drivers Technical Notes 2007-03-23
Device File Access Guide for Storage Devices (HTML) (PDF)
Guidelines for using I/O Kit and POSIX functions to develop applications that communicate with storage devices.
Hardware & Drivers Guides 2007-03-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.
Hardware & Drivers Guides 2007-03-06
ExpressCard Prevents System Sleep (HTML)
QA1517: Describes how some ExpressCard cards can prevent system sleep and how to fix the problem.
Hardware & Drivers Technical Q&As 2007-02-28
SCSIHBAEmulator (HTML) (DMG) (ZIP)
Demonstration of how to implement a virtual parallel tasking SCSI host bus adapter (HBA)
Hardware & Drivers Sample Code 2007-02-20
Accessing Hardware From Applications (HTML) (PDF)
Tips and guidelines for developing applications that communicate with or control devices.
Hardware & Drivers Guides 2007-02-08
FireWire Device Interface Guide (HTML) (PDF)
Explains how to develop applications to communicate with or control FireWire devices and units.
Hardware & Drivers Guides 2007-02-08
SCSI Architecture Model Device Interface Guide (HTML) (PDF)
Explains how to develop applications that communicate with or control SCSI Architecture Model devices.
Hardware & Drivers Guides 2007-02-08
Kerberos: Highly Secure Single Sign On Authentication in Mac OS X (HTML)
Learn how you can take advantage of Kerberos in your application.
Security Articles 2007-02-05
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
Open Source Technical Notes 2007-01-22
Kernel Authorization (HTML)
TN2127: Describes the kernel authorization (kauth) subsystem and its associated KPI.
Kernel, Security Technical Notes 2007-01-16
Open Directory Programming Guide (HTML) (PDF)
Explains how to implement centralized storage and retrieval of information in Carbon.
Networking Guides 2007-01-08
Developing for VFS (HTML) (日本語 HTML)
QA1242: Describes Apple's position on developing external file systems (VFS plug-ins) for Mac OS X.
File Management, Kernel Technical Q&As 2006-12-22
Volumes Not Showing Up On The Desktop (HTML)
QA1491: Describes how to make a volume from a third party VFS plug-in show up on the desktop.
File Management, Kernel Technical Q&As 2006-12-20
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.
File Management, Kernel Technical Q&As 2006-11-16