| Sort by Title
 | Sort by Resource Type
 | Sorted by Date
 | 
| 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. | 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). | Guides | 2009-03-02 | 
| Kernel Framework Reference
(HTML) Describes the APIs and classes (including I/O Kit families) that support kernel-resident device drivers. | Reference | 2009-01-06 | 
| 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. | 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. | Technical Q&As | 2008-10-13 | 
| IODeviceTree and the I/O Registry
(HTML)
(  ) QA1120: Describes the IODeviceTree plane in the Mac OS X I/O Registry. | Technical Q&As | 2008-09-18 | 
| Building Universal I/O Kit Drivers
(HTML) TN2163: How to build a universal I/O Kit kernel driver while avoiding common pitfalls. | 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. | Technical Notes | 2008-08-14 | 
| Mac OS X Server Security Configuration Guide
(PDF) Describes how to configure Mac OS X Server to enhance server and service security. | Guides | 2008-06-09 | 
| Getting a Packet Trace
(HTML)
(  ) QA1176: Lists tools available for looking at the network packets on the wire. | Technical Q&As | 2008-06-03 | 
| Network Device Driver Programming Guide
(HTML)
(PDF) Background and task information about developing network drivers for Mac OS X. | Guides | 2008-03-11 | 
| 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. | Release Notes | 2007-10-31 | 
| CCL Modem Scripting Guide
(HTML)
(PDF) | Guides | 2007-06-28 | 
| ExpressCard Prevents System Sleep
(HTML) QA1517: Describes how some ExpressCard cards can prevent system sleep and how to fix the problem. | Technical Q&As | 2007-02-28 | 
| tcplognke
(HTML)
(DMG)
(ZIP) Demonstrates a TCP socket filter based on supported Kernel Programming Interfaces for Tiger | Sample Code | 2006-11-27 | 
| 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). | Guides | 2006-10-03 | 
| The state of mDNSResponder
(HTML) QA1339: Explains how to obtain information regarding the internal state of mDNSResponder. | Technical Q&As | 2006-10-03 | 
| The "packages" node in the device tree
(HTML) HW90: Describes the "packages" node in the Open Firmware device tree. | Technical Q&As | 2006-02-22 | 
| GetPrimaryMACAddress
(HTML)
(DMG)
(ZIP) Demonstrates retrieving the MAC address of the built-in Ethernet controller. Useful for uniquely identifying a Macintosh system. | Sample Code | 2005-10-27 | 
| enetlognke
(HTML)
(DMG)
(ZIP) Interface filter based on supported Kernel Programming Interfaces for Tiger. | Sample Code | 2005-08-10 | 
| 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. | Technical Q&As | 2005-07-06 | 
| GridCalendar
(HTML)
(DMG)
(ZIP) Demonstrates how to add a custom job submission UI to the GridSample project. | Sample Code | 2005-06-01 | 
| Discovering all advertised Bonjour service types
(HTML) QA1337: Explains how to discover all Bonjour service types being advertised on the local network. | Technical Q&As | 2004-06-01 | 
| Bonjour enforces the service type format in Panther
(HTML) QA1198: Explains why registering a Bonjour service might fail on Panther. | Technical Q&As | 2004-03-23 | 
| Issues with boot time KEXT loading
(HTML)
(  ) QA1087: Explains how to solve problems with loading KEXTs at boot time. | Technical Q&As | 2004-01-15 | 
| 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. | Technical Q&As | 2003-10-28 | 
| Registering a Bonjour service multiple times
(HTML) QA1311: Explains why registering the same Bonjour service twice on the same machine doesn't cause a name conflict. | Technical Q&As | 2003-10-23 | 
| BSDLLCTest
(HTML)
(DMG)
(ZIP) Program sample demonstrates how to send and receive raw LLC Ethernet packets. | Sample Code | 2003-06-12 | 
| GetMACAddressSample
(HTML)
(DMG)
(ZIP) Demonstrates how to retrieve the MAC address for each Ethernet interface from the Mac OS X I/O Registry. | Sample Code | 2003-01-14 | 
| GetSetOptions
(HTML)
(DMG)
(ZIP) Demonstrates a variety of uses of Open Transport's option management routines. | Sample Code | 2003-01-14 | 
| NoCopyReceives
(HTML)
(DMG)
(ZIP) Demonstrates using no-copy receives under Open Transport.  | Sample Code | 2003-01-14 | 
| Power Management; Policy Maker vs. Power Controller
(HTML)
(  ) QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller. | Technical Q&As | 2002-02-13 | 
| Making sense of IOKit error codes
(HTML)
(  ) QA1075: Explains how to interpret I/O Kit error codes. | Technical Q&As | 2002-02-07 | 
| IOKit Framework Headers
(HTML)
(  ) QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework. | 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. | Technical Q&As | 2001-12-05 | 
| The "chosen" node in the device tree
(HTML) HW88: Describes how to find the "chosen" node in the Open firmware device tree. | 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. | Technical Q&As | 1999-10-11 | 
| TCP/IP Option Sizes
(HTML)
(  ) NW62: Enumerates the TCP/IP options and their sizes for Open Transport. | Technical Q&As | 1999-04-26 | 
| What are configuration variables in Open Firmware?
(HTML)
(  ) HW38: Defines the configuration variables in Open Firmware. | Technical Q&As | 1999-02-15 | 
| What are snag keys in Open Firmware?
(HTML)
(  ) HW35: Explains Open Firmware snag keys, including examples of their function. | Technical Q&As | 1999-02-15 | 
| Open Transport STREAMS FAQ
(HTML) Deprecated - TN1117: Decribes writing STREAMS modules and drivers for use with Open Transport. | Technical Notes | 1997-12-01 | 
| OTScheduleDeferredTask When Task Running
(HTML)
(  ) NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running. | Technical Q&As | 1997-10-13 | 
| How to use the OT modem script engine
(HTML)
(  ) Deprecated - NW50: Shows how to use the Open Transport modem script engine. | Technical Q&As | 1997-07-11 | 
| Changing the TCP Window Size
(HTML) NW47: Describes how to change the TCP window size in Open Transport. | Technical Q&As | 1997-03-14 | 
| T_DATA_REQ vs M_DATA TPI Message Blocks
(HTML)
(  ) NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ. | Technical Q&As | 1996-10-25 |