Ядро Linux: где находятся таблицы страниц процесса?

Поскольку они используются только ядром, они должны лежать только в адресах выше PAGE_OFFSET. Но я читал эту страницу и в конце ее (в IRC-переговоре) Я прочитал следующие строки, которые меня действительно смутили:

 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? Разве процессы пользовательского пространства не смогут получить к ним доступ, если это так?


person pflz    schedule 20.06.2011    source источник


Ответы (1)


Я думаю, что Риэль пытался сказать, что они могут находиться (почти) где угодно в физической памяти - нет фиксированного отображения.

Таблицы страниц отображаются в виртуальном адресном пространстве ядра (т.е. над PAGE_OFFSET) и невидимы для пользовательского пространства (что, как вы указываете, имеет смысл, поскольку мы не хотим, чтобы пользователи затирали свои собственные таблицы страниц).

Взгляните на этот связанный пост: Поддерживает ли Linux использовать собственную карту для каталога страниц и таблиц страниц?

person kch    schedule 21.06.2011