Имеют ли значение DPL и RPL при использовании подкачки? - PullRequest
0 голосов
/ 04 апреля 2019

Я могу ошибаться, но, исходя из прочитанного, DPL и RPL в дополнение к CPL используются для предотвращения или разрешения процессу доступа к некоторой области памяти при использовании сегментации памяти.

Но современные операционные системы (например, Linux) не используют сегментацию памяти, вместо этого они используют разбиение на страницы, а таблица страниц процесса позволяет вам указать, что некоторые области памяти могут быть доступны только тогда, когда ЦП находится в режиме ядра ( и то, находится ли процессор в пользовательском режиме или в режиме ядра, определяется только CPL).

Правильно ли я понимаю, что DPL и RPL не имеют значения при использовании подкачки, а важен только CPL?

1 Ответ

2 голосов
/ 04 апреля 2019

Это вопрос конфигурации сегментации.Доступ к памяти предоставляется, когда проходят проверки как на сегментацию, так и на проверку перевода страниц (в таком порядке).

Это правда, что в настоящее время сегментация редко используется для того, для чего она была разработана, неверно, что сегментация каким-то образом не-существует, когда включен перевод страницы.Просто перевод страниц делает работу намного лучше, и поэтому сегменты настроены таким образом, что они просто мешают.

Есть несколько ключевых проблем с сегментами x86:

  • компиляторы должны поддерживать указатели far , что является грязным (это было сложнее в 16-битном защищенном режиме, где сегменты должны были управляться приложениями и ОС)
  • онине может иметь дыр или субрегионов с разными атрибутами, и многие сегменты проблематичны не только в управлении, но и в наличии (GDT и LDT предоставляют пространство для до 8191 дескриптора сегмента каждый)
...