| Sort by Title
 | Sort by Topic
 | Sorted by Resource Type
 | Sort by Date
 | 
| VolumeToBSDNode
(HTML)
(DMG)
(ZIP) Shows how to iterate across all mounted volumes and retrieve their BSD node names. | File Management, Hardware & Drivers | Sample Code | 2006-10-16 | 
| VendorSpecificType00
(HTML)
(DMG)
(ZIP) Demonstrates how to access vendor-specific storage device functionality using a simple interface from user space code.  | Hardware & Drivers, Kernel | Sample Code | 2006-10-02 | 
| Watcher
(HTML)
(DMG)
(ZIP) Uses FSEvents to monitor a directory hierarchy to keep track of its total size | File Management | Sample Code | 2006-08-04 | 
| CheckExecutableArchitecture
(HTML)
(DMG)
(ZIP) Determine whether a particular Mach-O executable contains a version suitable for executing on a given processor architecture.  
 | Runtime Architecture | Sample Code | 2006-02-07 | 
| filesystem_examples
(HTML)
(DMG)
(ZIP) Collection of command line tools illustrating filesystem features. | File Management | Sample Code | 2006-01-10 | 
| SampleFilterScheme
(HTML)
(DMG)
(ZIP) Demonstrates a simple filter scheme which passes all operations through to its provider unchanged.  | Hardware & Drivers, Kernel | Sample Code | 2006-01-03 | 
| FileNotification
(HTML)
(DMG)
(ZIP) kqueue file notification introduced in 10.3. Notification API to detect file system modifications. | File Management | Sample Code | 2005-10-27 | 
| GetPrimaryMACAddress
(HTML)
(DMG)
(ZIP) Demonstrates retrieving the MAC address of the built-in Ethernet controller. Useful for uniquely identifying a Macintosh system. | Networking, Security | Sample Code | 2005-10-27 | 
| SampleD
(HTML)
(DMG)
(ZIP) Demonstrates use of launchd and Apple System Logger. | Process Management | Sample Code | 2005-10-27 | 
| IOPrintSuperClasses
(HTML)
(DMG)
(ZIP) Given the name of a class, this tool will print all of the super-classes of that class. | Hardware & Drivers, Kernel | Sample Code | 2005-08-17 | 
| MachPortDump
(HTML)
(DMG)
(ZIP) Dumps out the Mach port name space of a process; useful when debugging port right leaks. | Resource Management | Sample Code | 2005-08-10 | 
| MemoryBasedBundle
(HTML)
(DMG)
(ZIP) Shows how to execute Mach-O code from memory, much like GetMemFragment in CFM. | Runtime Architecture | Sample Code | 2005-08-10 | 
| SocketCancel
(HTML)
(DMG)
(ZIP) Shows how to safely cancel threads that are blocked within BSD sockets calls. | Networking | Sample Code | 2005-08-10 | 
| CFLocalServer
(HTML)
(DMG)
(ZIP) Uses UNIX domain sockets to communicate between client and server programs on the same machine.   | Networking, Process Management | Sample Code | 2005-07-26 | 
| SimpleDial
(HTML)
(DMG)
(ZIP) Demonstrates management of dialup connections, such as PPP, using System Configuration framework network connection API. | Networking | Sample Code | 2005-07-26 | 
| SimpleReach
(HTML)
(DMG)
(ZIP) Demonstrates network host reachability testing using the System Configuration framework asynchronous network reachability API. | Networking | Sample Code | 2005-07-26 | 
| DNSServiceMetaQuery
(HTML)
(DMG)
(ZIP) Shows how to discover Bonjour service types being advertised on the local network. | Networking | Sample Code | 2005-06-01 | 
| NetworkAuthentication
(HTML)
(DMG)
(ZIP) Demonstrates authentication with Open Directory APIs and GSSAPI | Networking | Sample Code | 2005-06-01 | 
| SampleUSBAudioPlugin
(HTML)
(DMG)
(ZIP) USB audio plugin that performs a lowpass filtering operation on audio streamed through an audio USB Device. | Hardware & Drivers | Sample Code | 2005-03-07 | 
| dist_fft
(HTML)
(DMG)
(ZIP) Gigaelement FFTs on Apple G5 clusters | Performance | Sample Code | 2004-08-23 | 
| MapLargeFile
(HTML)
(DMG)
(ZIP) Shows a technique for mapping files greater than 4GB into memory for faster access. | Resource Management | Sample Code | 2003-11-19 | 
| MoreIsBetter
(HTML)
(DMG)
(ZIP) Library providing indispensable wrapers and workarounds for many areas of Mac OS programming. | File Management, Networking, Porting, Process Management, Resource Management, Runtime Architecture, Security | Sample Code | 2003-10-27 | 
| SimplePing
(HTML)
(DMG)
(ZIP) Sample provides simple API to programatically ping a remote host without admin privileges | Networking | Sample Code | 2003-10-27 | 
| IOKitWithLibrary
(HTML)
(DMG)
(ZIP) Shows how an I/O Kit driver can link with a C library from a separate kernel extension. | Hardware & Drivers, Kernel | Sample Code | 2003-08-27 | 
| QISA
(HTML)
(DMG)
(ZIP) Demonstrates the basics of writing an Internet setup assistant for traditional Mac OS and Mac OS X. | Networking, Security | Sample Code | 2003-05-15 | 
| PIDFromBSDProcessName
(HTML)
(DMG)
(ZIP) Provides a simple API to do process PID lookup based on BSD process name.  | Porting, Process Management, Tools | Sample Code | 2003-02-13 | 
| CryptoSample
(HTML)
(DMG)
(ZIP) Contains sample code showing symmetric encryption and message digest calculation. | Security | Sample Code | 2003-02-06 | 
| GetMACAddressSample
(HTML)
(DMG)
(ZIP) Demonstrates how to retrieve the MAC address for each Ethernet interface from the Mac OS X I/O Registry. | Networking, Security | Sample Code | 2003-01-14 | 
| Moriarity
(HTML)
(DMG)
(ZIP) Implementing a Cocoa GUI that wraps command-line functionality, calling a UNIX task and presenting the results in a GUI. | Porting | Sample Code | 2003-01-14 | 
| SimpleDataQueue
(HTML)
(DMG)
(ZIP) Implements an IODataQueue inside an I/O Kit KEXT which passes events and data to user space. | Hardware & Drivers, Kernel | Sample Code | 2003-01-14 | 
| SSLSample
(HTML)
(DMG)
(ZIP) Contains examples showing how to use SecureTransport. | Security | Sample Code | 2003-01-14 | 
| TimerEventSample
(HTML)
(DMG)
(ZIP) Shows how to set up and use an IOTimerEventSource in a kext. | Hardware & Drivers, Kernel | Sample Code | 2003-01-14 | 
| Kernel Core Dumps
(HTML) TN2118: Explains how to gather and use remote kernel core dumps. | Hardware & Drivers, Kernel | Technical Notes | 2008-11-12 | 
| 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 | 
| 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)
(  ) 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| Secrets of the GPT
(HTML) TN2166: Describes the new partition map format used by Intel-based Macintosh computers. | File Management, Hardware & Drivers | Technical Notes | 2006-11-06 | 
| Building Universal Binaries from "configure"-based Open Source Projects
(HTML) TN2137: Describes some methods for building some existing "configure"-based Open Source packages as universal binaries. | Porting, Tools | Technical Notes | 2006-10-05 | 
| Uniquely Identifying a Macintosh Computer
(HTML)
(  ) TN1103: How to identify a specific Macintosh computer. | Security | Technical Notes | 2006-04-25 | 
| Porting Command Line Unix Tools to Mac OS X
(HTML)
(  ) TN2071: A general guide for Unix developers porting software to Mac OS X. | Porting | Technical Notes | 2003-09-03 | 
| Driver Tuning on Panther or G5
(HTML)
(  ) TN2090: Describes potential issues when using drivers in Panther or later, or on a Power Macintosh G5. | Hardware & Drivers | Technical Notes | 2003-06-24 | 
| GDB for MacsBug Veterans
(HTML) TN2030: Translate your experience with MacsBug into a working knowledge of the GNU source-level debugger (GDB). | Performance | Technical Notes | 2001-10-18 | 
| CD-ROM Driver Calls
(HTML) Deprecated - DV22: Discusses public interface to Apple CD-ROM driver and supersedes information in AppleCD SC Developer's Guide. | Hardware & Drivers | Technical Notes | 2000-08-14 | 
| Pascal to C:  PROCEDURE Parameters
(HTML) Deprecated - PT31: Nested procedures and PROCEDURE parameters in Pascal when converting them into C or C++. | Porting | Technical Notes | 1990-02-01 | 
| Allocating and sharing memory with user space from an I/O Kit driver
(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)
(  ) 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)
(  ) 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)
(  ) 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)
(  ) 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)
(  ) 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 | 
| Is dlopen available on all versions of Mac OS X?
(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 | 
| 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 | 
| Getting a Packet Trace
(HTML)
(  ) QA1176: Lists tools available for looking at the network packets on the wire. | Networking | Technical Q&As | 2008-06-03 | 
| 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 | 
| 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 | 
| Suppressing the "unexpectedly quit" alert
(HTML) QA1288: Describes how to suppress the "unexpectedly quit" alert. | Security | Technical Q&As | 2008-03-11 | 
| 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 | 
| Kernel's MAC framework
(HTML) QA1574: Cautions that the kernel's MAC framework is currently not support. | Kernel | Technical Q&As | 2008-01-04 | 
| Descriptor Passing Problems
(HTML) QA1541: Describes how to work around common problems with descriptor passing. | Kernel, Networking | Technical Q&As | 2007-10-29 | 
| 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 | 
| Developing for VFS
(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 | 
| Security Framework Error Codes
(HTML) QA1499: Explains how to interpret errors returned by the Security Framework with an overview of Security error handling. | Security | Technical Q&As | 2006-11-16 | 
| The state of mDNSResponder
(HTML) QA1339: Explains how to obtain information regarding the internal state of mDNSResponder. | Networking | Technical Q&As | 2006-10-03 | 
| 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. | Networking | Technical Q&As | 2005-07-06 | 
| Mach Absolute Time Units
(HTML) QA1398: Describes how to convert Mach absolute time units to real time, and vice versa. | Process Management, Resource Management | Technical Q&As | 2005-01-06 | 
| Preventing sleep
(HTML) QA1160: Explains how your application can prevent the system from sleeping. | Resource Management | Technical Q&As | 2004-10-22 | 
| Bonjour enforces the TXT record format in Panther
(HTML) QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther. | Networking | Technical Q&As | 2004-07-14 | 
| Updating the TXT record of a Bonjour service
(HTML) QA1302: Explains how to update a Bonjour TXT record while running on either Jaguar or Panther. | Networking | Technical Q&As | 2004-07-14 | 
| Discovering all advertised Bonjour service types
(HTML) QA1337: Explains how to discover all Bonjour service types being advertised on the local network. | Networking | Technical Q&As | 2004-06-01 | 
| Directories Appear as Volume Aliases
(HTML) QA1351: Discusses how VFS plug-ins should handle device numbers to ensure compatibility with Carbon applications. | File Management, Kernel | Technical Q&As | 2004-05-25 | 
| Issues with boot time KEXT loading
(HTML)
(  ) QA1087: Explains how to solve problems with loading KEXTs at boot time. | Hardware & Drivers, Kernel | Technical Q&As | 2004-01-15 | 
| X11 FAQ
(HTML)
(  ) QA1232: Frequently Asked Questions about using Apple's X Window System (X11) implementation.  | Tools | Technical Q&As | 2003-11-17 | 
| 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. | Hardware & Drivers, Kernel | Technical Q&As | 2003-10-28 | 
| Sleep vs. Doze on Mac OS X
(HTML) QA1309: Discusses and demonstrates sleep versus doze detection on Machintosh Mac OS X | Hardware & Drivers | Technical Q&As | 2003-10-09 | 
| 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. | Hardware & Drivers | Technical Q&As | 2003-09-30 | 
| Can't attach during two-machine debugging with GDB
(HTML)
(  ) Deprecated - QA1019: Describes a workaround for a problem attaching during two-machine debugging on Mac OS X 10.0.x. | Hardware & Drivers, Kernel | Technical Q&As | 2003-06-02 | 
| Text Encodings in VFS
(HTML)
(  ) QA1173: How to handle text encodings correctly when writing a file system (VFS) plug-in for Mac OS X. | File Management | Technical Q&As | 2003-02-10 | 
| File Manager Text Encoding Hints
(HTML)
(  ) QA1223: How to use Text Encoding Hints. | File Management | Technical Q&As | 2003-01-20 | 
| Signals and Threads
(HTML)
(  ) QA1184: Describes how threads and signals interact. | Performance, Tools | Technical Q&As | 2002-08-27 | 
| Getting List of All Processes on Mac OS X
(HTML)
(  ) QA1123: Describes how, using Carbon and BSD respectively, to list all applications and processes. | Kernel, Porting | Technical Q&As | 2002-03-05 | 
| The "/.vol" directory and "volfs"
(HTML)
(  ) QA1113: Describes how the Carbon File Manager interacts with BSD via "volfs" and the "/.vol" directory. | File Management | Technical Q&As | 2002-02-14 | 
| IOLog and Interrupt Context
(HTML)
(  ) QA1100: Describes when IOKit runs at primary (hardware) interrupt context. | Hardware & Drivers, Kernel | Technical Q&As | 2002-02-13 | 
| Power Management; Policy Maker vs. Power Controller
(HTML)
(  ) QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller. | Hardware & Drivers | Technical Q&As | 2002-02-13 | 
| Working with Configuration Variables
(HTML)
(  ) QA1119: Explains how to delete a specific Open Firmware configuration variable without using Command-Option-P-R. | Hardware & Drivers | Technical Q&As | 2002-02-13 | 
| Making sense of IOKit error codes
(HTML)
(  ) QA1075: Explains how to interpret I/O Kit error codes. | Hardware & Drivers, Kernel | Technical Q&As | 2002-02-07 | 
| Static linking of user binaries on Mac OS X
(HTML)
(  ) QA1118: Explains why static linking of user binaries is not supported on Mac OS X, and possible workarounds. | Porting, Runtime Architecture | Technical Q&As | 2002-02-07 | 
| Energy Star PCI Device
(HTML)
(  ) QA1108: Provides useful information for developers of Energy Star-compliant PCI devices. | Kernel | Technical Q&As | 2002-01-15 | 
| IOKit Framework Headers
(HTML)
(  ) QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework. | Hardware & Drivers, Kernel, Networking, Tools | Technical Q&As | 2002-01-15 | 
| The dreaded "incompatible flag -framework" error
(HTML) QA1096: Explains how to eliminate the incompatible flag -framework error in Project Builder. | Hardware & Drivers | Technical Q&As | 2001-12-05 | 
| Setting environment variables for user processes
(HTML) QA1067: Tells how to set environment variables for user processes. | Porting, Tools | Technical Q&As | 2001-10-25 | 
| Avoiding Kernel Event Conflicts
(HTML) QA1063: Documents the namespace for the vendor_code field of the kern_event_msg structure. | Kernel | Technical Q&As | 2001-09-14 | 
| Open Firmware Memory bus speed
(HTML) HW97: Describes a method to display memory bus speed for G3 or G4 Macintosh in Open Firmware. | Hardware & Drivers | Technical Q&As | 2000-09-22 | 
| The "chosen" node in the device tree
(HTML) HW88: Describes how to find the "chosen" node in the Open firmware device tree. | Networking | Technical Q&As | 2000-09-05 | 
| Are the Name Registry device tree nodes unique?
(HTML) Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique. | Hardware & Drivers | Technical Q&As | 1999-10-11 |