7

Linux 用のローダブル カーネル モジュールを作成しています。また、各タスクのデータを Linux カーネルに保存する必要があります (これらのデータは、スケジューラのコールバックで使用されます)。

struct task_struct自分のフィールドを変更して挿入できることを知っています。しかし、比較的きれいなカーネル モジュールを作成したいので、元の Linux ソース ツリーにあるコードを変更することはできません。

struct task_structからハッシュ テーブル内のデータへのある種のマッピングを維持することも可能です。ただ、ちょっと重すぎる気がします。

Linuxカーネルモジュールのスレッドローカルデータで答えを読みました。での使用について言及しprivate_dataましたstruct file。しかし、struct file. また、タスクごとのデータを . でクエリする方法はありませんstruct task_struct。(スケジューラのコールバックでデータを使用する必要があるため)

私の質問は次のとおりです。タスクごとのデータ構造を変更せずにLinuxカーネルに登録できるシンプルでクリーンな方法はありますstruct task_structか?

どうもありがとう!

4

1 に答える 1

3

タスクごとのデータ構造を登録できる唯一のシンプルでクリーンな方法は、 を変更することstruct task_structです。

モジュールは、カーネルのオプション部分用に設計されています。ベースカーネルから明示的にエクスポートされた関数のみを使用できます。ベースカーネルを変更する必要がある場合は、モジュールを使用できなくなります。

于 2013-08-28T08:33:34.103 に答える