У меня есть модуль ядра Linux, который содержит обработчик прерываний, и хотел бы как-то уведомить приложение пользовательского пространства после обработки прерывания. Скажите, пожалуйста, как это сделать?Как отправить «сигнал» от модуля ядра к пользовательскому пространству?
ответ
Спасибо большое :) –
вы можете использовать семафор IPC ??? – eduardosufan
очередь сообщений или разделяемая память? – eduardosufan
Используйте netlink.
Соединитель Netlink является специальным IPC, используемым для передачи информации между процессами ядра и пользовательского пространства. Он обеспечивает полнодуплексную связь между двумя стандартными API сокетов для процессов пользовательского пространства и специальный API ядра для модулей ядра. Сокет Netlink использует семейство адресов AF_NETLINK, по сравнению с AF_INET, используемое сокетов TCP/IP. Каждая функция сокета netlink определяет свой собственный тип протокола в файле заголовка ядра include/linux/netlink.h.
Я непосредственно отвечаю на этот вопрос, так как это лучший результат в Google для «передачи сигнала ядра в пользовательское пространство».
Обычно я использую сигнал, чтобы убить процесс пользовательского пространства, чтобы проверить его стек, поскольку он вызывает ioctls. Как правило, для меня работают следующие работы:
force_sig(SIGSEGV, current);
- 1. От ядра к пользовательскому пространству (DMA)
- 2. Передано ли сигнал от ядра к пользовательскому пространству в реальном времени?
- 3. Путь пакета UDP от ядра к пользовательскому пространству в Linux
- 4. Перейти к пользовательскому пространству
- 5. Доступ к пользовательскому пространству из пространства ядра - get_user_pages
- 6. Как отправить сигнал от делегата
- 7. Доступ к пространству имен вызывающего модуля
- 8. Отправить сигнал модулю модуля приложения в PHP
- 9. Отправить пакет с сокетами из модуля ядра
- 10. Как получить доступ к пространству ядра из пользовательского пространства?
- 11. Docker: как отправить сигнал от одного запущенного контейнера к другому?
- 12. Как отправить сигнал от одного qml к другому
- 13. Сброс модуля ядра ядра
- 14. Как отправить сигнал POSIX от nodejs
- 15. Как отправить сигнал от arduino на MATLAB?
- 16. Использование ядра модуля ядра
- 17. Как отправить параметр пользовательскому действию?
- 18. Как перезапустить adb от root к пользовательскому?
- 19. Как отправить сигнал в поток в c?
- 20. как подключить выходной сигнал от одного модуля к входному сигналу другого модуля
- 21. Как отправить сигнал USR2?
- 22. Как передать сигнал из ядра в пользовательское пространство
- 23. Как отправить сообщение от основного модуля к модулю уведомления
- 24. Не удалось отправить сигнал от Qwidget к MainWindow
- 25. отправить сигнал от родительского процесса к дочернему в C
- 26. Сигнал об изменении параметров ядра
- 27. В Python, как я могу получить доступ к пространству имен основного модуля из импортированного модуля?
- 28. Отправить сигнал midi от C# to ableton
- 29. Prestashop 1.7 переопределяет контроллер ядра от модуля
- 30. Не удается получить сообщения ядра от модуля
Можно ли предположить, что вы говорите об Linux? В любом случае, добавьте соответствующий тег в свой вопрос. –
@ OliCharlesworth Да, мы говорим о Linux, но у меня закончились теги –
Вы могли бы, например, удалить «hardware» в пользу «linux». Аппаратные знания не очень важны для ответа на этот вопрос. – chirlu