Разделение виртуального адреса в Linux 3/1

Я что-то упускаю, когда дело доходит до понимания необходимости использования highmem для более чем 1 ГБ ОЗУ. Может ли кто-нибудь указать, где я ошибаюсь? Спасибо!

Что я знаю:

1 ГБ виртуальной памяти процессов (область высокой памяти) зарезервировано для операций ядра. Пользовательское пространство может использовать оставшиеся 3 ГБ. Это 3/1 сплит.

Функции виртуальной памяти виртуальной машины отображают (непрерывные) страницы виртуальной памяти на физические страницы (ОЗУ).

Что я не знаю:

Какие операции используют виртуальную память ядра? Я предполагаю, что такие вещи, как kmalloc (...) в пространстве ядра, будут использовать виртуальную память ядра.

Я думаю, что по этой схеме можно использовать 4 ГБ оперативной памяти. Я не понимаю, почему 1 ГБ виртуального пространства ядра является ограничивающим фактором при обращении к физическому пространству. Здесь мое понимание нарушается. Пожалуйста, порекомендуйте.

Я читал это (http://kerneltrap.org/node/2450), это здорово. Но это не совсем решает мой вопрос по моему вкусу.

Ответы на вопрос(3)

Ваш ответ на вопрос