Как потоки ядра могут запрашивать страницы только для себя?

Как вы знаете, все потоки ядра разделяют одно пространство памяти ядра. Поле mm структуры task_struct, описывающее поток ядра, является нулевым. Использует поле mm задачи "priv".

Я думаю, что любой поток ядра получает доступ к частной области памяти другого потока ядра. Например, одному из драйверов устройств была выделена страница размером 4 КБ для его собственного буфера, но нет способа предотвратить доступ к нему других потоков. Потому что все потоки ядра разделяют одно адресное пространство памяти.

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

1 ответ

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

Нет, любой процесс, выполняющий код ядра, имеет доступ ко всему в операционной системе.

Это зависит от операционной системы и ее политик, предотвращающих загрузку драйверов вредоносных программ в ядро, если для этого требуются некоторые гарантии безопасности.

Другие вопросы по тегам