Делают ли виртуальные адресные пространства всех процессов, имеют одинаковое содержание в их частях «ядра»?

У пользователя нет разрешения на доступ к каталогу или использование его как части пути. Вот что означает бит выполнения для каталогов.

Если бы вы использовали chmod o + x scripts , то пользователь мог бы использовать сценарии в этом каталоге, но не мог бы создавать в нем что-то новое или получать список каталогов (для которого требуется бит чтения ).

6
14.09.2018, 15:41
1 ответ

Ответ зависит от того, включена ли страница ядра -изоляция таблиц (, что зависит от архитектуры и от того, поддерживает ли она KPTI ).

Без KPTI ядро ​​полностью отображается в адресном пространстве каждого процесса, но, как указано на диаграмме, эти отображения недоступны из пользовательского пространства (, за исключением боковых -утечек каналов ).

При использовании KPTI таблицы страниц ядра отделены от таблиц страниц пользовательского пространства, и в адресном пространстве каждого процесса остается только минимальный набор отображений, необходимый для того, чтобы пользовательское пространство могло обращаться к ядру, а также процессор, чтобы передать управление ядру при работе с прерываниями или исключениями.

В обоих случаях все процессы имеют одинаковые отображения для ядра.

См. также статью LWN о KAISER .

8
27.01.2020, 20:27

Теги

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