私はIPCに初めてアクセスし、カーネルとユーザースペースプロセスの間に共通のバッファを実装したいと思います。私のデザインは次のとおりです。
私のクライアントソケットは、接続を待っているユーザースペースデーモン(バッファを含む)に接続しようとするライブラリ(ユーザースペース)を持ちます。バッファにアクセスしようとしているプロセスは、ライブラリに関連付けてメッセージをソケットに公開する必要があります。したがって、メッセージがバッファに公開されます。これは、ユーザー空間専用のプロセスに対して実装するのが非常に簡単です。
ソケット(AF_UNIX、SOCK_STREAM、0);
しかし、私の質問は、カーネルスペースで同じライブラリを使用してユーザースペースデーモン(バッファを含む)と通信する方法です。私たちが知っているように、次のAPIはnetlinkソケットのユーザースペースで使用されます。
ソケット(PF_NETLINK、SOCK_RAW、NETLINK_TEST);
カーネルとユーザー空間プロセスの両方がライブラリを使用できるように、同じライブラリ内の2つを組み合わせる方法はありますか?