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