Позвольте мне выразить свое понимание.
Предположим, у нас есть 32-разрядное адресное пространство памяти для системы.Таким образом, процесс может получить доступ к любой памяти в диапазоне 4 ГБ
Если объем оперативной памяти в системе равен 4 ГБ, ядро делит ее на 1: 3.1 ГБ для ядра, а остальные 3 ГБ для процесса пользовательского пространства.
Процесс пространства пользователя получит доступ к системной памяти только в пределах этой памяти 3 ГБ, и какой адрес он получает, определяется таблицей страниц.
Логическим адресом ядра является та 1 ГБ (около 896 МБ) памяти, которая зарезервирована только для ядра.Это правильно?
Виртуальный адрес ядра - это оставшаяся память, т.е. 104 МБ + 3 ГБ, которые также могут быть назначены для пространства пользователя.Это правильно?
виртуальный адрес пользователя - это адрес, сгенерированный процессом пространства пользователя, и соответствующая ему память будет назначена из 3 ГБ, зарезервированных для процесса пространства пользователя ядром.
Дайте мне знать, если мое понимание выше верно?Если нет, пожалуйста, объясните подробно разницу между логическим адресным пространством ядра, виртуальным адресным пространством ядра и виртуальным адресным пространством пользователя.