Refined translation slightly

This commit is contained in:
woodyZootopia
2021-05-26 12:32:47 +09:00
parent 8cb4cf16df
commit b956c0c591

View File

@@ -223,7 +223,7 @@ pub struct PageTable {
52-62 | available | OSが自由に使える
63 | no execute | このページにおいてプログラムを実行することを禁じるEFERレジスタのNXEビットが1である必要がある
12-51ビットだけが物理フレームアドレスを格納するのに使われていて、残りのビットはフラグやオペレーティングシステムが自由に使うようになっていることがわかります。これが可能なのは、常に4096バイト単位のページに<ruby>揃え<rp> (</rp><rt>アライン</rt><rp>) </rp></ruby>られたアドレスページテーブルか、対応づけられたフレームの先頭を指しているからです。これは、0-11ビットは常にゼロであることを意味し、したがってこれらのビットを格納しておく必要はありません。ハードウェアがアドレスを使用する前に、それらのビットをゼロとして(追加して)やれば良いからです。同じことが52-63ビットについてもいえます。なぜならx86_64アーキテクチャは52ビットの物理アドレスしかサポートしていないからです仮想アドレスを48ビットしかサポートしていないのと似ています
12-51ビットだけが物理フレームアドレスを格納するのに使われていて、残りのビットはフラグやオペレーティングシステムが自由に使うようになっていることがわかります。これが可能なのは、常に4096バイト単位のページに<ruby>揃え<rp> (</rp><rt>アライン</rt><rp>) </rp></ruby>られたアドレスページテーブルか、対応づけられたフレームの先頭を指しているからです。これは、0-11ビットは常にゼロであることを意味し、したがってこれらのビットを格納しておく必要はありません。アドレスを使用する前に、ハードウェアがそれらのビットをゼロとして(追加して)やれば良いからです。また、52-63ビットについても格納しておく必要はありません。なぜならx86_64アーキテクチャは52ビットの物理アドレスしかサポートしていないからです仮想アドレスを48ビットしかサポートしていないのと似ています
上のフラグについてより詳しく見てみましょう: