I/O Kit


I/O Kit (в исходном коде, а иногда и в других местах пишется как IOKit) — это фреймворк с открытым исходным кодом в ядре XNU, который помогает разработчикам писать драйверы устройств для операционных систем Apple MacOS и iOS. Платформа I/O Kit была разработана на основе комплекта драйверов NeXTSTEP и не имела общих черт с инфраструктурой драйверов устройств Mac OS 9 или BSD.

Фреймворк I/O Kit реализован в подмножестве C++, в котором пропущены возможности, которые Apple считает небезопасными для использования в многопоточном ядре (исключения, множественное наследование, шаблоны, информация о типах во время выполнения).[1] Встраиваемый C++ был выбран отчасти потому, что Apple считала, что разработчикам будет удобнее писать драйверы на более распространенном языке, чем Objective-C, и в то же время, предоставляющим объектно-ориентированную среду, позволяющую разработчикам драйверов устройств сосредоточиться на функциях кодирования, специфичных для их аппаратного обеспечения, вместо переопределения функций, общих для любого устройства.[2]

Помимо предоставления общего кода для драйверов устройств, этот фреймворк также предоставляет управление питанием, стекирование драйверов, автоматическую настройку и динамическую загрузку драйверов.