Почему ядро ​​говорит, что находится в адресном пространстве процесса?

Это может быть глупый вопрос, но он просто появился у меня в голове. Весь текст об адресном пространстве и виртуальной памяти указывает, что адресное пространство процесса имеет зарезервированное для ядра. Напр. на 32-битных системах адресное пространство процесса составляет 4 ГБ, из которых 1 ГБ зарезервировано для ядра в Linux (может отличаться на другой ОС).

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

Ответ 1

Когда процесс выполняет системный вызов, нам не нужно переключать таблицы страниц (из таблицы страниц адресного пространства процесса в таблицу страниц адресного пространства ядра) для обслуживания системного вызова (что должно выполняться только в режиме ядра), Говорят, что ядро ​​работает в контексте процесса.

Некоторые события ядра, которые не будут выполняться в контексте процесса, загружают таблицы страниц только для ядра.

Получил?