Ist es machbar, Socket von Kernel-Modul eines Char-Gerätetreibers in Linux zu öffnen? Ich versuche, den Ausgabe/Eingabe-Stream von Char-Geräten über das Netzwerk zu emulieren. Aber soweit ich gesucht habe, ist das Öffnen eines Sockels vom Char-Gerät nicht möglich? Gibt es noch eine andere Möglichkeit, von char-Gerätetreibern auf udp/tcp-Ports zuzugreifen?Socket-Kommunikation in Char Gerätetreiber
1
A
Antwort
0
Ja, Sie können Socket öffnen und mit Remote-Hosts im Kernel-Code kommunizieren, ein anschauliches Beispiel ist das Modul NFS
, das sunrpc
für seine Protokolle verwendet, und beide laufen im Kernel-Modul.
Betrachten Sie zunächst kernel_connect
[1], um eine Verbindung zu starten, und kernel_sock_shutdown
, um die Verbindung zu beenden. Es gibt eine vollständige Liste von Apis in socket.c
.
[1] http://lxr.free-electrons.com/source/net/socket.c#L3212
dank @fluter. – RedArrow