Что пути состоят в том, чтобы общаться с модулем ядра от пространства пользователя? Коммуникацией я означаю отправлять информацию и команды между модулем ядра и процессом пространства пользователя.
Я в настоящее время знаю о двух путях:
Строго говоря, может кто-то совет лучший способ общаться с модулем ядра, который не делает на самом деле управляет какими-либо аппаратными средствами и поэтому не должен замусорить/dev тупиковыми узлами, который существует только для вызовов ioctl? Я главным образом должен проверить его различные переменные состояния и отправить его, блок данных с типом запроса отмечает и видит если запрос, за которым следуют.
Сокеты Netlink также предназначены для такого рода требований ...
Также см.
Вы также можете читать / писать с узлов устройства / dev.
IMHO, / dev уже завален разными вещами, и добавление собственных узлов не представляет большой проблемы. Не забывайте, что у вас может быть много кодов ioctl для одного узла устройства, а параметры ioctl передаются по ссылке, поэтому могут быть сколь угодно большими.
Также существует файловая система / sys (sysfs):
Sysfs экспортирует информацию о устройства и драйверы из ядра модель устройства в пользовательское пространство, а также используется для настройки.
(из Википедии )
Третий вариант - добавить новый вызов системы, но те два, которые вы написали, я думаю, являются предпочтительными. Я нашел этот документ, который может помочь, но я все еще думаю, что этот вариант не рекомендуется: http://www.csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/projects/howto_add_systemcall.html
Другим приемлемым вариантом может быть совместное использование памяти.