The I/O Kit is an open-source framework in the XNU kernel that helps developers code device drivers for Apple's Mac OS X 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.
ReferencesEdit
- I/O Kit Fundamentals - Technical reference from Apple Developer Connection