Если нет, то как ядро создает таблицу страниц при создании нового процесса и изменяет запись таблицы страниц при подкачке / извлечении страницы процесса?
Я думаю, что инструкции, выполняемые либо в пользовательском режиме, либо в режиме ядра, могут использовать только виртуальный адрес (который затем преобразуется в физический адрес внутренним оборудованием ЦП) для доступа к любому месту в ОЗУ (и периферийным устройствам отображения памяти), если MMU отключен.
Я знаю, что ядро отвечает за создание и обслуживание таблиц страниц, в то время как внутренняя аппаратная логика ЦП ищет в таблице страниц (CR3 в x86 хранит базовый адрес таблицы страниц текущего процесса, который является физическим адресом) для преобразования. виртуальный адрес на физический адрес.
Мой вопрос: когда выполняются инструкции в коде ядра, которые пытаются изменить содержимое записи таблицы страниц, как виртуальный адрес (если таковой имеется) самой таблицы страниц преобразуется в физический адрес? Должен ли MMU быть отключен в течение этого времени, чтобы не требовалась трансляция адресов?