こんにちは皆さん、私は本を読んでいましたが、Understanding the Linux Kernel
次のことを見つけました:
各プロセス記述子に含まれるフィールドに加えて、各CPUが実行する操作を説明する追加情報が必要です。この目的のために、スケジューラは Schedule_data 型の NR_CPUS 構造の alignment_data 配列を使用できます。
NR_CPUS
私の質問は、これをどこで見つけて定義できるかということです(どのディレクトリとファイルを意味します)schedule_data struct
。よろしくお願いします。
PS Linuxカーネルでさまざまな構造とマクロが定義されている場所へのクイックリファレンスを提供するいくつかのWebサイトを知っている人がいる場合は、非常に役立ちます。
答え1
私は使用します
cd /usr/src/linux
cscope
基本エディタとうまく統合されたncurses GUIで、定義、参照、呼び出し元、被呼者、フリーテキストを見つけます。
vimを使用すると、反対方向にも統合されます。
そしてctagsがあります。このソフトウェアはvimや他の多くのエディタでも大いにサポートされています。
答え2
http://lxr.linux.no/Linuxカーネル内のすべてのCオブジェクトの定義と使用法を見つけることができるオンラインサイト。
特定のバージョンのカーネルを選択するだけです(例:http://lxr.linux.no/#linux+v2.6.38/)を入力し、右上の入力フィールドに変数またはマクロ名を貼り付けます。
以下は、NR_CPUS 検索結果の例です。http://lxr.linux.no/#linux+v2.6.38/include/linux/threads.h#L20
答え3
NR_CPUS
ファイル内のマクロとして定義されている:include/linux/threads.h
。
struct schedule_data
定義された位置: /usr/src/linux/kernel/sched.c
。