Jump To:
Leopard Technical Q&As: Darwin
The Mac OS X kernel is the fundamental layer of the Mac OS X operating system. This environment includes the I/O Kit, the Mach kernel, and a BSD personality layer. Apple discourages developers from programming in the kernel, because kernel bugs can reduce the stability of the entire system. Many device drivers can be written entirely in user space and should be, where possible.

Document Descriptions
On Off

Sorted by
Sort by
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.
Avoiding Kernel Event Conflicts (HTML)
QA1063: Documents the namespace for the vendor_code field of the kern_event_msg structure.
Can't attach during two-machine debugging with GDB (HTML) (日本語 HTML)
Deprecated - QA1019: Describes a workaround for a problem attaching during two-machine debugging on Mac OS X 10.0.x.
Descriptor Passing Problems (HTML)
QA1541: Describes how to work around common problems with descriptor passing.
Developing for VFS (HTML) (日本語 HTML)
QA1242: Describes Apple's position on developing external file systems (VFS plug-ins) for Mac OS X.
Directories Appear as Volume Aliases (HTML)
QA1351: Discusses how VFS plug-ins should handle device numbers to ensure compatibility with Carbon applications.
Energy Star PCI Device (HTML) (日本語 HTML)
QA1108: Provides useful information for developers of Energy Star-compliant PCI devices.
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
Getting List of All Processes on Mac OS X (HTML) (日本語 HTML)
QA1123: Describes how, using Carbon and BSD respectively, to list all applications and processes.
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.
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.
IOKit Framework Headers (HTML) (日本語 HTML)
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
IOLog and Interrupt Context (HTML) (日本語 HTML)
QA1100: Describes when IOKit runs at primary (hardware) interrupt context.
Issues with boot time KEXT loading (HTML) (日本語 HTML)
QA1087: Explains how to solve problems with loading KEXTs at boot time.
Kernel's MAC framework (HTML)
QA1574: Cautions that the kernel's MAC framework is currently not support.
Mac OS X and root access (HTML)
QA1013: Describes how to enable root access in Mac OS X.
Making sense of IOKit error codes (HTML) (日本語 HTML)
QA1075: Explains how to interpret I/O Kit error codes.
Supported KPIs (HTML)
QA1575: Describes how to check whether a kernel function is part of a supported KPI.
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.