3

私は、Linux で動作する非常に高性能なハードウェアの 1 つに取り組んでいます。一部のデータをキャッシュしたいのですが、メモリの消費が心配です。そのため、キャッシュを管理するユーザー プロセスを作成することを考えています。そうすれば、キャッシュをカーネル空間などではなく、仮想メモリに置くことができます。

問題は、これを行う最善の方法は何ですか? 私の最初の本能は、カーネルモジュールにキャラクターデバイスファイルを作成させ、そのファイルを開き、コマンドがそこに到着するのを待つselectステートメントに座るユーザープログラムを持たせることです。しかし、これが最適ではない可能性があることを懸念しています。ある友人は、ソケットベースのインターフェースを知っていると言いましたが、押し付けられたとき、彼は詳細を提供できませんでした....

助言がありますか?

4

1 に答える 1

2

netlinkインターフェイスを探していると思います。詳細については、Netlink ソケットを使用する理由と方法[原文ママ] を参照してください。カーネルとユーザー空間の間で通信するときは、セキュリティの問題に注意してください。メッセージがユーザー空間ではなくカーネルから来ていることを確認することを怠ると、最近の脆弱性がありました。udev

于 2009-04-24T19:15:39.003 に答える