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
|