ユーザー空間とカーネル空間間の通信——AF_netlink + AF_Unix

ユーザー空間とカーネル空間間の通信——AF_netlink + AF_Unix

私はIPCに初めてアクセスし、カーネルとユーザースペースプロセスの間に共通のバッファを実装したいと思います。私のデザインは次のとおりです。

私のクライアントソケットは、接続を待っているユーザースペースデーモン(バッファを含む)に接続しようとするライブラリ(ユーザースペース)を持ちます。バッファにアクセスしようとしているプロセスは、ライブラリに関連付けてメッセージをソケットに公開する必要があります。したがって、メッセージがバッファに公開されます。これは、ユーザー空間専用のプロセスに対して実装するのが非常に簡単です。

ソケット(AF_UNIX、SOCK_STREAM、0);

しかし、私の質問は、カーネルスペースで同じライブラリを使用してユーザースペースデーモン(バッファを含む)と通信する方法です。私たちが知っているように、次のAPIはnetlinkソケットのユーザースペースで使用されます。

ソケット(PF_NETLINK、SOCK_RAW、NETLINK_TEST);

カーネルとユーザー空間プロセスの両方がライブラリを使用できるように、同じライブラリ内の2つを組み合わせる方法はありますか?

関連情報