Как ядро узнает, какое значение бита RWX должно быть установлено в записи таблицы страниц?

#permissions #kernel #page-tables

Вопрос:

Модель RWX в записи таблицы страниц широко используется почти всеми компьютерными архитектурами.

Например:

  • если страница для кода, мы можем установить R=1 W=0 X=1 в записи таблицы страниц.
  • если страница предназначена только для чтения данных, мы можем установить R=1 W=0 X=0 в записи таблицы страниц.

Но как ядро узнает, является ли это кодовой страницей или страницей данных? и как ядро устанавливает RWX в записи таблицы страниц?

Комментарии:

1. «Но как ядро узнает, является ли это кодовой страницей или страницей данных?» — Если вы имеете в виду этап создания страницы, то запрос на страницу сопровождается желаемым доступом. Если вы имеете в виду операционную стадию, то доступ к каждой странице должен осуществляться в соответствии с ее намерением. Неправильное использование страницы обычно приводит к исключению. «и как ядро устанавливает RWX в записи таблицы страниц?» — Вы имеете в виду конкретную архитектуру? Какой? Вы читали документацию/руководство по этой архитектуре о таблицах страниц?