Ich plane, netlink für die Kommunikation zwischen zwei Userland-Prozessen zu verwenden. Ein Teil des Grundes, der über netlink so wählerisch ist, ist - Die meiste Verarbeitung für einen der Prozesse würde schließlich in den Kernelraum gehen und die netlinkbasierte Kommunikation kann so verwendet werden, wie sie ist (hoffentlich).
Der Ansatz, den ich nehme, ist - definiere eine neue generische Netlink-Familie (ich werde ein Kernel-Modul schreiben müssen, nur um diese Familie zu unterstützen - so wie es im Moment aussieht). Das ist in Ordnung, ich habe mir einen Beispielcode angeschaut, bei dem Kernel im Wesentlichen nur Nachrichten zwischen verschiedenen Prozessen weiterleitet und keine Arbeit verrichtet - die eigentliche Population dieser Nachrichten wird von den Prozessen verarbeitet.
Meine Frage ist - verwendet jemand Netlink in ähnlicher Weise in einem der Projekte? Auch - macht der obige Ansatz Sinn?
Ich habe über einen Vorschlag über netlink-basierte DBUS gelesen. Habe aber keine Implementierung davon gefunden. Das kommt meinen Anforderungen am nächsten.
Danke.
Was Sie suchen, ist NETLINK_USERSOCK
, wenn Sie zwischen Userspace-Prozessen kommunizieren möchten.
Netlink-Dokumentation ist leider sehr knapp. Dies könnte ein wenig helfen: Wer kann mir die neuesten Netlink-Programmierung geben Proben?
Stellen Sie nur sicher, dass nl_pid nicht Null ist, und stimmt mit dem überein, wozu der Benutzerbereichs-Peer gebunden ist und dass Sie eine Unicast senden.