カーネルグローバル変数はどこに保存されますか?

カーネルグローバル変数はどこに保存されますか?

私は現在Linuxカーネルモジュールを書いています。ユーザー空間プログラムの場合、初期化されていないグローバル変数(他のモジュールへのエクスポートを使用EXPORT_SYMBOL)はBSSセグメントに格納され、初期化されたグローバル変数はユーザー空間メモリのデータセグメントに格納されることがわかります。しかし、カーネルコードならどのように保存されますか?

カーネルコードの場合、関数呼び出しもスタックに含まれますか?

助けてくれてありがとう。

ベストアンサー1

カーネルには、RAM(カーネルローダによってロードされた物理メモリ、たとえば幼虫、いいえ仮想メモリ)。

詳しくはご確認くださいリンカースクリプトカーネルをビルドするときに使用されるファイルは、同様のファイルでも別arch/x86/kernel/vmlinux.lds*.ldsファイルでもかまいません。

おすすめ記事