web-dev-qa-db-ja.com

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

Linuxがページテーブルを格納する場所を知りたい。カーネルの仮想メモリにありますか?


これは仮想メモリシステムと関係があるようです。しかし、私はそれが初めてなので、間違った方向にいる場合はお知らせください。そして、私自身の質問に答えるために、私は本からいくつかの行を読みました:

(23.2 8ページ)

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

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

それで、カーネルによって提供されるアドレス空間は、ある意味でプロセスが何かを共有するための空間ですか?では、ページテーブルがカーネル仮想メモリに配置されている場合、これはプロセスがページテーブルを共有できることを意味しますか?


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

4
ptr_user7813604

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

8
Johan Myréen