Dbus по ядру в пространство пользователя - PullRequest
2 голосов
/ 04 сентября 2010

У меня вопрос относительно dbus на текущем (2.6.35) ядре. Является ли dbus способом связи между ядром и пространством пользователя? Я могу понять это самостоятельно. Например, если вы используете драйвер usb (вставляя что-то вроде флеш-ручки USB) и отслеживая активность dbus (dbus-monitor), ответ может быть да. Но в исходном коде (usb-skeleton.c и драйвера для гаджетов нет никаких признаков dbus). Dbus.h нельзя найти в дереве ядра. Большое спасибо. Извините, если я ошибся, но я вроде как нуб на драйверах устройств и dbus!

Ответы [ 2 ]

2 голосов
/ 04 сентября 2010

D-Bus для приложений пользовательского пространства для связи друг с другом.

Если вы хотите общаться с драйвером устройства, вы хотите использовать IOCTL, netlink или создать новый системный вызов.В прошлом я создал код netlink для связи со специальной сетевой картой, и это было относительно легко сделать.Использование ioctl также довольно просто, но вы ограничены тем, сколько информации вы можете / должны передавать через него.

Если вам интересно, как dbus относится к вставляемому USB-устройству, я думаю, что-то вроде этого:

image udev -> udisks (formally DeviceKit) -> dbus -> any dbus application interested in disk events.">

1 голос
/ 04 сентября 2010

D-Bus (или «шина демона») - это средство связи между процессами (межпроцессное взаимодействие или IPC для краткости) в системах на основе Linux / Unix.

Это позволяет процессам отображать «D»-Бус сервис "с методами, которые клиенты могут вызывать.Эти методы обычно отображаются на реальные методы, написанные на каком-либо языке программирования.D-Bus не зависит от языка, но большинство наборов инструментов имеют некоторую библиотеку, облегчающую его использование - например, QtDbus.

Это никак не связано с ядром или драйверами, но, конечно, никто не запрещает драйверот того, чтобы иметь сервис D-Bus, если они хотят.(Это может быть полезно в некоторых случаях.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...