Netlink в пространстве пользователя и в пространстве ядра - PullRequest
6 голосов
/ 12 июня 2010

Я изучаю программирование во встроенных системах, используя Linux в качестве основной платформы. И я хочу создать службу управления событиями устройства. Эта служба представляет собой приложение / демон пользовательского пространства, которое обнаруживает, вызвало ли подключенный аппаратный модуль событие. Но моя проблема в том, что я не знаю, с чего мне начать.

Я читал о реализации Netlink для взаимодействия с userpace-kernelspace, и это кажется хорошей идеей, но я не уверен, что это лучшее решение. Но я читал, что диспетчер устройств UDEV использует Netlink для ожидания "события" из пространства ядра, но мне не ясно, как это сделать.

Я читал об опросе sysfs, но, похоже, не очень хорошая идея опрашивать файловую систему.

Как вы думаете, реализацию, которую я должен использовать в моем сервисе? Должен ли я использовать netlink (трудно / не знаю, как это сделать) или просто опросить sysfs (не уверен, работает ли он)?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 мая 2014

Если все, что вы делаете, это ждете события, вы можете использовать sysfs, который будет намного проще, чем netlink.Примером является файл Edge системы GPIO.

1 голос
/ 29 октября 2011

Да, опрос опрометчивый.Эти ресурсы: статья ЖЖ о Netlink, «Понимание и программирование с помощью сокетов Netlink», делает это не таким уж сложным делом netlink.Вот пример сокетов netlink в python.

udevtrigger - отличная утилита для реагирования на изменения udev.

http://www.linuxjournal.com/article/7356

http://smacked.org/docs/netlink.pdf

http://guichaz.free.fr/misc/iotop.py

http://manpages.ubuntu.com/manpages/gutsy/man8/udevtrigger.8.html

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