2011-06-20 98 views
1

僅供內核使用,它們只應位於PAGE_OFFSET之上的地址。但我讀this頁,並且它的端部(IRC康沃)我讀了下面的線,真正讓我感到困惑:Linux內核:進程頁表在哪裏?

saxm> riel: so where do page tables reside? Surely not below PAGE_OFFSET? Somewhere above PAGE_OFFSET+896mb then? 

riel> they could reside anywhere 

saxm> anywhere from 0->4gb (on x86 with no pae)? 

riel> saxm: yeah 

我的意思是,他們爲什麼要撒謊下面PAGE_OFFSET?如果情況是這樣的話,用戶空間進程是不是可以訪問它們?

回答

4

我想瑞爾想說的是,他們可以駐留(幾乎)任何地方物理內存 - 有沒有一個固定的映射。

頁表被映射到內核虛擬地址空間(即高於PAGE_OFFSET),並且對於用戶空間不可見(正如你指出的那樣,因爲我們不希望用戶打開他們自己的頁表)。

看一看這篇相關文章: Does Linux use self-map for page directory and page tables?