0

netlink を使用せず、配置されていない可能性のある機能 (debugfs など) を使用せずに、ロード済みで実行中のカーネル モジュールにデータを送信する適切な方法は何ですか?

私は、ほとんどのカーネル (またはできればすべての最新のカーネル) で動作するクリーンで安全な方法、またはせいぜいそれに近い方法を見たいと思っています。

モジュールにデータを送信したいユーザーは root ユーザーです。データ量はおそらく 64 kiB 未満で、一連の文字列で構成されています。

モジュールからファイルを読み取ろうとすることはすでに検討しましたが、これはさまざまな理由で非常に嫌われているだけでなく、実行するのも困難です。私はネットリンクを見てきました.socket()は私のカーネルではサポートされていないことを教えてくれます. 私のカーネルでもサポートされていないdebugfsを見てきました。

明らかに、別のカーネルを使用することもできますが、前述したように、これを行う適切な方法が必要です。誰かが、ユーザー空間から送信された文字列の printk() を実行するモジュールの簡単な例を見せてくれれば、それは素晴らしいことです。

4

2 に答える 2

0

charデバイスが使えると思います。Linuxデバイスドライバーの第3章をご覧ください。3。関数*copy_to_user*および*copy_from_user*を使用すると、ユーザースペースとの間でデータを安全にコピーできます。

于 2012-08-04T00:42:19.647 に答える