Linuxでは、ページテーブルはどこに保存されますか?

Linuxでは、ページテーブルはどこに保存されますか?

Linuxがページテーブルをどこに保存するのか知りたいです。カーネル仮想メモリにありますか?


これは仮想メモリシステムに関連しているようです。しかし、私はこれに慣れていないので、間違った方向に行っている場合は教えてください。この質問に自分で答えるために、私は本の中で次の内容を読んだ。

(23.2 ページ 8)

... Linux仮想アドレス空間は、ユーザー部分とカーネル部分で構成されています。

...カーネル部分はプロセス間で同じです。

それでは、カーネルが提供するアドレス空間は、どのような意味でプロセスが何かを共有する空間なのでしょうか?それでは、ページテーブルがカーネル仮想メモリに格納されている場合、プロセスはページテーブルを共有できるという意味ですか?


私が読んだ本:http://www.ostep.org

答え1

はい、ページテーブルはカーネルアドレス空間に保存されます。各プロセスには、プロセス間でアドレス空間のカーネル部分を共有するように設定された独自のページテーブル構造があります。ただし、カーネルアドレススペースはユーザースペースからアクセスできません。ユーザー空間コードは、システムコールを使用して制御された方法でカーネルと通信します。システムコールが成功すると、プロセッサはカーネルアドレス空間を使用できる特権状態に入ります。

関連情報