The toolkit used for developing device drivers in Mac OS X. It is based on a restricted form of C++ (without exceptions, templates, multiple inheritance or 'normal' RTTI).
It is object-orientated, which allows a lot of code reuse and simplifies the creation of new drivers, and provides the following features:
'Consumer' hardware, such as printers/scanners/digital cameras, are not directly supported by the toolkit - this functionality should be provided by user space programs.
It is made up of three libraries: Kernel/IOKit (for developing resident drivers), Kernel/libkern (the generic kernel interface library) and IOKit (for developing the interfaces).
Various tools to assist with driver development are also provided, including custom versions of gcc and gdb.
Full source code is available as part of Darwin.