Linuxがページテーブルを格納する場所を知りたい。カーネルの仮想メモリにありますか?
これは仮想メモリシステムと関係があるようです。しかし、私はそれが初めてなので、間違った方向にいる場合はお知らせください。そして、私自身の質問に答えるために、私は本からいくつかの行を読みました:
(23.2 8ページ)
... Linux仮想アドレス空間は、ユーザー部分とカーネル部分で構成されています...
...カーネル部分はプロセス間で同じです。
それで、カーネルによって提供されるアドレス空間は、ある意味でプロセスが何かを共有するための空間ですか?では、ページテーブルがカーネル仮想メモリに配置されている場合、これはプロセスがページテーブルを共有できることを意味しますか?
私が読んだ本: http://www.ostep.org
はい、ページテーブルはカーネルアドレス空間に格納されます。各プロセスには独自のページテーブル構造があり、アドレス空間のカーネル部分がプロセス間で共有されるように設定されています。ただし、カーネルアドレス空間にはユーザー空間からアクセスできません。ユーザー空間コードは、システムコールを使用して制御された方法でカーネルと通信します。システムコールが成功すると、プロセッサは特権状態に入り、カーネルアドレススペースが使用可能になります。