Какой из них я должен использовать общее расширение ядра или расширение драйвера ввода-вывода для управления драйверами в MacOS?

Я хочу подключиться к Bluetooth, Wi-Fi, USB, FireWire и другим интерфейсам связи на Mac. Я хочу также выполнить аутентификацию для Bluetooth и Wi-Fi. Какое расширение ядра я должен использовать Общее расширение ядра или расширение драйвера ввода-вывода?


person MahmutBulut    schedule 24.04.2012    source источник


Ответы (1)


  • Драйверы аэропорта (Wifi) не имеют общедоступных API-интерфейсов ядра.
  • Общедоступные API Bluetooth в основном работают. в пользовательском пространстве, а не в ядре.
  • Семейства устройств USB и Firewire управляются I/O Kit и имеют общедоступные API как в ядре, так и в пользовательском пространстве.
  • Под «другим общением», я полагаю, вы подразумеваете сетевое взаимодействие? Драйверы устройств сетевых карт построены на базе API-интерфейсов I/O Kit ядра, сокетов, фильтрации пакетов и т. д., находящихся в BSD-части ядра.

Итак, в целом, если вам нужно получить доступ к объектам, представляющим устройства, вам нужно будет использовать I/O Kit — либо из kext I/O Kit, либо из пользовательского пространства. Если вы используете сетевые (Ethernet, IP) API, вам понадобится универсальный кекст.

person pmdj    schedule 28.04.2012