Как найти физический адрес переменной от пространства пользователя в Linux?

Я хочу найти физический адрес переменной определенным в процессе пространства пользователя? Там какой-либо путь состоит в том, чтобы сделать это с помощью полномочий пользователя root?

14
задан Sandip 13 March 2010 в 23:01
поделиться

1 ответ

Во-первых, зачем вам это делать? Задача современных систем виртуальных машин состоит в том, чтобы избавить прикладного программиста от сложной структуры физической памяти. Предоставляя каждому из них собственное единое адресное пространство, чтобы облегчить им жизнь.

Если вы действительно захотите это сделать, вам почти наверняка понадобится модуль ядра. Получите виртуальный адрес переменной обычным способом, используйте его для индексации в таблицах страниц процессов и чтения найденного значения (физического адреса фрейма). Затем добавьте смещение страницы, чтобы получить полный физический адрес. Обратите внимание, что вы не сможете использовать этот адрес, пока включен пейджинг.

(Если вам повезет, вы сможете получить адрес кадра области виртуальной машины из файловой системы / proc и, следовательно, вам не потребуется писать модуль ядра.)

1
ответ дан 1 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: