Как две виртуальные памяти могут указывать на одну и ту же физическую память в linux
я читал страницу, на которой говорилось::
"Мой microbenchmark начинается с выделения одной страницы памяти, а затем создает два виртуальных псевдонима адресов, указывающих на нее"
Первый Вопрос. я хочу знать, как я могу создать два виртуальных адреса, указывающих на одну и ту же страницу памяти в linux с помощью c?
опять же на этой странице он сказал, что:
"Одна из виртуальных страниц (которую мы будем называть указателем “setup”) настроена на разрешение доступа из пользовательского режима. Вторая виртуальная страница (указатель“тест”) имеет различные разрешения, а затем используется для выполнения загрузки."
Второй Вопрос. можем ли мы изменить бит разрешения виртуального адреса в таблице виртуальных страниц нашей программы? как и со вторым указателем.
Третий Вопрос. если это возможно, мы можем сделать это как в режиме ядра, так и в пользовательском режиме?
Что я уже пробовал:
Я прочитал несколько статей об управлении виртуальной памятью в linux и могу понять таблицу виртуальной памяти, но у меня нет ни малейшего представления о том, как можно реализовать код для этого.