Драйвер из кода C (автозагрузка, kext, lkm)

320
pippo

Я задал вопрос о StackOverflow, думая, что это правильное место, чтобы спросить, но они направили меня сюда, потому что они думают, что это тема, выпущенная SuperUser. И вот я здесь :)

Я хотел бы спросить вас, как я могу автоматически загрузить мой драйвер для определенного устройства на Mac.

Я сделал драйвер, написанный на C, и теперь мне было интересно, как я могу запускать эту программу в моей среде macos (/ linux / windows) всякий раз, когда мое устройство подключено. Короче говоря: как я могу распознать по умолчанию систему, если это устройство подключено к mac по идентификатору поставщика + продукта (или к linux или windows) и запускает мой драйвер? Или как я могу преобразовать мой C-драйвер в kext и автоматически загрузить его? В км? (DLL (?) для Windows?)

Спасибо вам!

PS Я знаю, что есть некоторые специфические OS-зависимые API-интерфейсы для взаимодействия с ядром, но на данный момент я был бы благодарен, если бы я мог загрузить свой C-драйвер из расширения ядра «почти без кода», чего я хочу добиться, так это :

1 - Когда я подключаю свое USB-устройство, моя система может распознать его
2 - моя система загружает мое собственное расширение ядра, которое ..
3 - ... запускает мою внешнюю C-программу для обработки устройства.
(4- Конечно, когда закончите, почистите все)

Возможно ли или у меня нет другого выбора, кроме как использовать API ядра?

Спасибо большое!

0
Хотите ответ для Windows, для Mac или для Linux? Все ответы будут разными ... например, для Linux, посмотрите на `udev`. dirkt 6 лет назад 0
В основном для Mac, но если вы можете дать мне несколько полезных советов о других ОС, я буду благодарен :) Я посмотрю на udev, как вы сказали, спасибо! pippo 6 лет назад 0
@pippo Хорошие вопросы не являются широкими. Желание решения для всего делает его широким Ramhound 6 лет назад 0

0 ответов на вопрос

Похожие вопросы