Jump To:
Leopard Guides
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

Sorted by
Title
Sort by
Topic
Sort by
Date
64-Bit Transition Guide (HTML) (PDF)
Describes the 64-bit features available in Mac OS X.
Interprocess Communication, Performance, Porting 2008-04-08
Accessing Hardware From Applications (HTML) (PDF)
Tips and guidelines for developing applications that communicate with or control devices.
Hardware & Drivers 2007-02-08
AltiVec/SSE Migration Guide (HTML) (PDF)
Explains how to convert PowerPC AltiVec code to Intel SSE code.
Intel-Based Macs 2005-09-08
Apple Filing Protocol Programming Guide (HTML) (PDF)
Describes high-level concepts for Apple Filing Protocol commands.
Networking 2006-04-04
Audio Device Driver Programming Guide (HTML) (PDF)
Explains how to develop kernel-resident drivers for audio devices.
Hardware & Drivers 2009-03-04
Authorization Services Programming Guide (HTML) (PDF)
Explains how to add fine-grained control of privileged operations in an application.
Security 2009-01-06
Building Darwin (HTML)
Explains how to work with the Darwin build system using the build tools provided.
General 2001-10-08
CCL Modem Scripting Guide (HTML) (PDF)
Hardware & Drivers, Networking 2007-06-28
Code Signing Guide (HTML) (PDF)
Explains how you can sign your code and why you should.
Security 2008-11-19
Coding in the Kernel (HTML)
Considerations and caveats about programming in the kernel.
Kernel 2005-11-09
Cross-Development Programming Guide (HTML) (PDF)
Explains how to build software for versions of Mac OS X other than the one the development tools are running on.
Tools 2006-11-07
Device File Access Guide for Serial Devices (HTML) (PDF)
Guidelines for using I/O Kit and POSIX functions to develop applications that communicate with serial devices.
Hardware & Drivers 2005-12-06
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 2007-03-06
Dynamic Library Programming Topics (HTML) (PDF)
Explains how to design, implement, and use dynamic libraries.
Runtime Architecture 2009-02-26
File System Events Programming Guide (HTML) (PDF)
Explains how applications can detect changes in the file system.
File Management, Interprocess Communication, Kernel, Performance 2008-03-11
File System Overview (HTML) (PDF)
Conceptual information and guidelines describing the structure and usage of the Mac OS X file system.
File Management 2008-07-11
FireWire Device Interface Guide (HTML) (PDF)
Explains how to develop applications to communicate with or control FireWire devices and units.
Hardware & Drivers 2007-02-08
GCC Porting Guide (HTML) (PDF)
Provides guidance on how to migrate projects to new GCC releases.
Intel-Based Macs 2006-10-03
HBA Device Driver Programming Guide (HTML) (PDF)
Describes how to develop a high-performance, kernel-resident driver for an HBA device.
Hardware & Drivers 2006-05-23
HeaderDoc User Guide (HTML) (PDF)
Explains how to extract API reference documentation from commented header files.
Tools 2008-04-08
HID Class Device Interface Guide (HTML) (PDF)
Explains how to develop applications to communicate with or control HID class devices.
Hardware & Drivers 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.
Hardware & Drivers 2007-03-06
I/O Kit Fundamentals (HTML) (PDF)
The basics of developing device drivers. Includes descriptions of I/O Kit families.
Hardware & Drivers, Resource Management 2007-05-17
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 2007-10-31
Kernel Programming Guide (HTML) (PDF)
Essential information for programming in the Mac OS X kernel. Includes a high-level overview.
Interprocess Communication, Kernel 2006-11-07
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 2009-02-04
Mac OS X Notification Overview (HTML) (PDF)
Interprocess Communication, Runtime Architecture 2007-05-15
Mass Storage Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing kernel-resident drivers for mass storage devices.
Hardware & Drivers 2007-04-03
Network Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing network drivers for Mac OS X.
Hardware & Drivers 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).
Kernel, Networking 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).
Kernel, Networking 2009-03-02
Open Directory Plug-in Programming Guide (HTML) (PDF)
Explains how to implement dynamically loaded libraries that respond to Open Directory client requests in Carbon.
Networking 2006-05-23
Open Directory Programming Guide (HTML) (PDF)
Explains how to implement centralized storage and retrieval of information in Carbon.
Networking 2007-01-08
Packaging UNIX Software (HTML)
Explains how to post UNIX and other command-line tools to Apple's Macintosh Product Guide.
Porting, Tools 2001-04-20
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
Performance 2006-10-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.
General, Porting 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.
Porting, Tools 2008-04-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 2007-02-08
Secure Coding Guide (HTML) (PDF)
Describes techniques to use and factors to consider to make your code more secure from attack.
Security 2008-05-23
Security Overview (HTML) (PDF)
An introduction to computer security concepts and the security APIs in Mac OS X and iPhone OS.
Security 2008-10-15
System Configuration Programming Guidelines (HTML) (PDF)
Explains how to use system configuration services for network configuration and management, including determining reachability and getting connected.
Networking 2006-02-07
System Startup Programming Topics (HTML) (PDF)
Explains the boot process used to initialize the Mac OS X operating system.
Runtime Architecture 2008-11-19
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 2009-02-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 2007-09-04
User-Mode USB Device Arbitration (HTML)
Information about using USB device arbitration, available in Mac OS X version 10.1 and later.
Hardware & Drivers 2002-02-06
Writing PCI Drivers (HTML) (PDF)
Conceptual information about writing I/O Kit drivers for PCI, AGP, and CardBus (PC Card) devices.
Hardware & Drivers 2006-04-04