Прерывание не меняет таблицы страниц.Формат таблицы страниц x86 имеет бит U / S (пользователь / супервизор) в каждой записи каталога страниц (https://wiki.osdev.org/Paging#Page_Directory).) Отображение только для супервизора работает только в кольце 0, а не в кольце 3., т.е. это только ядроотображение, экономя накладные расходы на изменение таблиц страниц при каждом прерывании или системном вызове.
(Meltdown - это аппаратный эксплойт, который побеждает его на самых последних процессорах Intel, поэтому в настоящее время ОС должны избегать отображения памяти ядра, пока пользователь-space работает, если они загружаются на уязвимом процессоре. http://blog.stuffedcow.net/2018/05/meltdown-microarchitecture/)
Таким образом, ядро может зарезервировать часть виртуального адресного пространства каждого процесса для своего собственного использования. Например, Linux резервирует большую половину виртуального адресного пространствадля использования в ядре. См. https://www.kernel.org/doc/Documentation/x86/x86_64/mm.txt для текущей структуры x86-64.
Этот дизайн по понятным причинам называется ядром "high half".
Для 32-битныхx86, Linux может использовать разделение 3: 1 с 3 ГБ виртуального адресного пространства в пространстве пользователя и только для ядра 1. Это означает, что ядро обычно не может отобразить всю физическую память дажена 2GiB машине, которая отстой.(64-битное ядро, безусловно, хорошая идея, даже если вы по какой-то причине хотите запустить 32-битное пользовательское пространство.)