Develop device drivers that run in user space.


Use DriverKit to create device drivers that the user installs on their Mac. Drivers built with DriverKit run in user space, rather than as kernel extensions, for improved system security and stability.

The DriverKit framework provides C++ classes for IO services, device matching, memory descriptors, and dispatch queues. It also defines IO-appropriate types for numbers, collections, strings, and other common types. You use these with family-specific driver frameworks like USBDriverKit and HIDDriverKit.

Develop your driver with DriverKit, and package it in an app that uses the SystemExtensions framework to install and upgrade the driver on the user’s Mac.