11

2 つのユーザーランド プロセス間の通信に netlink を使用する予定です。netlink にうるさい理由の一部は、プロセスの 1 つの処理のほとんどが最終的にカーネル空間で行われ、netlink ベースの通信をそのまま使用できることです (うまくいけば)。

私が取っているアプローチは、新しいジェネリック Netlink ファミリーを定義することです (そのファミリーをサポートするためだけにカーネル モジュールを作成する必要があります - 現時点ではそのように見えます)。それは結構です。カーネルが本質的に異なるプロセス間でメッセージをルーティングするだけで、実際には何の作業もしていないサンプルコードを見ていました.これらのメッセージの実際の人口はプロセスによって処理されます.

私の質問は - プロジェクトのいずれかで同様の方法で netlink を使用している人はいますか? また、上記のアプローチは理にかなっていますか?

netlink ベースの DBUS に関する提案について読みました。しかし、その実装は見つかりませんでした。それは私の要件に最も近いものです。

ありがとう。

4

1 に答える 1

6

あなたが探しているのはNETLINK_USERSOCK、ユーザー空間プロセス間で通信したい場合です。

残念ながら、Netlink のドキュメントは非常に不足しています。これは少し役立つかもしれません:最新の netlink プログラミング サンプルを教えてくれるのは誰ですか?

nl_pid がゼロ以外であり、ピアがバインドされているユーザー空間と一致し、ユニキャストを送信していることを確認してください。

于 2014-10-07T15:07:26.323 に答える