2014-02-18 4 views
0

Мне сказали, что я могу найти физический адрес, соответствующий виртуальному адресу, с помощью /proc/[pid]/pagemap.Получение физического адреса из/proc/[pid]/pagemap

Я читал, что это pagemap file - это массив из 64-разрядных записей с битами 0-54, соответствующими номеру страницы страницы. Я не знаю, как сделать прыжок от этого к переводу виртуального на физическое. Частично, я не знаю, как найти запись, которую я хочу в этом файле; никто не указывает, как они индексируются.

Кроме того, я не знаю, является ли PFN виртуальным или физическим. И я не знаю, что делать с PFN, независимо. Как я могу продолжить?

Благодаря

+0

http://stackoverflow.com/questions/6284810/proc-pid-pagemaps-and-proc-pid-maps-linux – duck

+0

Возможная Дубликат [Как декодировать записи/Proc/PID/PageMap в Linux?] (https://stackoverflow.com/questions/17021214/how-to-decode-proc-pid-pagemap-entries-in-linux) –

ответ

0

Разделить В.А. на размер страницы (как правило, 4096), что, как использовать смещение в/Proc/Self/PageMap. Затем возьмите это число (страница), умножьте на размер страницы (4096) и сметете его на ваш VA% 4094.

Ларри

Смежные вопросы