Описание тега driverkit

DriverKit - это среда разработки драйверов устройств для операционной системы MacOS от Apple, представленная в macOS 10.15 "Catalina".

Основная информация

DriverKit - это среда разработки драйверов устройств для операционной системы MacOS от Apple, представленная в macOS 10.15 "Catalina".

Пакет DriverKit SDK содержится в дистрибутиве Apple Xcode IDE (начиная с версии 11 и далее) и используется для создания так называемых "расширений драйверов" или "декста", которые выполняются в процессах специального привилегированного пространства пользователя. Эти расширения устанавливаются приложениями с помощью механизма системных расширений.

Пакет DriverKit SDK взаимодействует с более широкой инфраструктурой IOKit как в ядре, так и в общем пользовательском пространстве.

особенности

Начиная с macOS 10.15, с помощью DriverKit можно реализовать следующие типы драйверов:

  • Вождение USB-устройств
  • Делаем последовательный порт доступным для системы
  • Делаем сетевой адаптер доступным для системы
  • Управление устройствами HID и предоставление их доступа к системе.

Начиная с macOS 10.15.4, могут быть дополнительно реализованы следующие типы драйверов:

  • Подключение устройств PCI(e)/Thunderbolt

Соответствующие темы вопросов

  • Вопросы о том, какая технология драйвера является правильной для реализации драйвера для конкретного устройства. Помимо DriverKit, драйверы в macOS также могут быть реализованы с использованием kext (расширения ядра) или как обычный процесс пользовательского пространства, в зависимости от технологии базового устройства (USB, PCI, Firewire и т. Д.), Типа устройства (хранилище, сеть, звук, дисплей и т. д.), а также целевые версии macOS.
  • Вопросы, связанные с процессом сборки, подписи кода и упаковки дексов. Есть некоторые совпадения с macos-system-extension, использование обоих может быть уместным, когда речь идет о процессе установки / активации и API.
  • Вопросы на уровне кода для реализации драйверов на основе DriverKit. Совместное тегирование сhid, usb, pciи т. д. по мере необходимости при обсуждении конкретных типов устройств.
  • Вопросы о взаимодействии драйверов DriverKit с остальной частью системы, будь то kexts или клиенты пользовательского пространства. Обычно это перекрывается iokit тег.