Ядро Linux: где находятся таблицы страниц процесса? - PullRequest
1 голос
/ 20 июня 2011

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

1 Ответ

4 голосов
/ 22 июня 2011

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

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

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

...