I/O Kit

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The I/O Kit framework (written as IOKit in source code and sometimes elsewhere) is an open-source framework in the XNU kernel that helps developers code device drivers for Apple's macOS and iOS operating systems. The I/O Kit framework evolved from NeXTSTEP's DriverKit, and shared no similarities with either Mac OS 9's device driver framework, or that of BSD.

The I/O Kit framework is implemented in a subset of C++ which omits features that Apple feels are unsafe for use in a multithreaded kernel (exceptions, multiple inheritance, templates, run-time type information). Embedded C++ was chosen partly because Apple believed developers would be more comfortable writing drivers in a more commonly used language than Objective-C, while still providing an object-oriented framework allowing device driver developers to focus on coding features specific to their hardware instead of reimplementing features common to any given device.[citation needed]

In addition to providing common code for device drivers, this framework also provides power management, driver stacking, automatic configuration, and dynamic loading of drivers.