IPC unte Linux mit Modul und Userapp
-
Ich moechte gerne ein signal (oder falls moeglich Daten), von einem Kernel Modul an einen Process weitergeben.
Derzeit habe ich es ueber einen recht wenig eleganten umweg geloest:
-Das Modul erstellt eine Datei im /proc dateisystem und schreibt dort die Daten hinein.
-Die Userspace app pollt diese Datei und schaut nach ob sich etwas geandert hat.
Nachteil: Pollen verbraucht unnoetig zeit, RaceconditionMeine Vorstellung ist eine Ereignisorientierte Implementierung:
-Modul signalisiert Aenderung an einen Prozess
-Prozess "wacht" auf und nimmt die Daten entgegen.Ziel:
Der prozess soll als deamon laufen (ich nehme an ein einfaches fork() muesste reichen),
und ein signal vom modul erhalten.
Diese signal kann entweder genutzt werden, um ueber den umweg /proc filesystem die daten zu lesen,
oder (was besser waere), die daten direkt mit der signaliserung zu erhalten.Leider habe ich wenig erfahrnug mit IPC unter linux. Ich weiss auch nicht,
ob man z.b. einen UNIX_SOCKET in einem Modul oeffenen kann, zu verschicken.ach so, die datenmenge ist gering (< 200bytes pro sec).
jedoch muss sichergestellt werden, dass die daten auch angekommen.spaeter soll die user-app diese daten zur verarbeitung auch via netzwerk (TCP/IP bzw. UDP)
verschicken koennen.
-
Hi,
spaeter soll die user-app diese daten zur verarbeitung auch via netzwerk (TCP/IP
bzw. UDP) verschicken koennen.Dann wuerde es sich doch anbieten, gleich sockets zu nutzen, warum einen
Mehraufwand machen, wuerd ich sagen.Falls du ein Buch suchst fuer socket-Programmierung, empfehle ich dir dieses:
Programmieren von Unix-Netzwerken: http://www2.bol.de/pages/functions.phtml?function=detail&IdentNr=3004295&id=ciw5ldRlzWMAAG9lNMYAAAAh&lk=&ProvID=0&md=5
War zwar keine direkte Hilfe, hoffe aber, dass es dich ein wenig weitergebracht
hat.mfg
v R
-
das mit dem Buch ist eine gute Idee, aber vielleicht hat ja doch noch jemand einen direkten Vorschlag