Я чувствую смущение в управлении таблицами страниц в ядре Linux?
В пространстве ядра Linux перед началом таблицы страниц. Ядро запускается в виртуальной памяти с помощью механизма отображения 1-1. После того, как таблица страниц включена, ядро имеет таблицы справочных страниц, чтобы перевести виртуальный адрес в адрес физической памяти. Вопросы:
-
В это время, после включения таблицы страниц, пространство ядра по-прежнему составляет 1 ГБ (от 0xC0000000 до 0xFFFFFFFF)?
-
И в таблицах страниц процесса ядра отображаются только записи в таблице страниц (PTE) в диапазоне от 0xC0000000 до 0xFFFFFFFF?. PTE из этого диапазона не будут отображаться, потому что код ядра никогда не прыгает туда?
-
Сопоставление адреса до и после включения таблицы страниц одинаково?
Например. перед включением таблицы страниц виртуальный адрес 0xC00000FF отображается на физический адрес 0x000000FF, а затем после включения таблицы страниц отображение выше не изменяется. виртуальный адрес 0xC00000FF по-прежнему отображается на физический адрес 0x000000FF. Другое дело, что после включения таблицы страниц CPU обращается к таблице страниц, чтобы перевести виртуальный адрес на физический адрес, который не нужно делать раньше. -
Таблица страниц в пространстве ядра является глобальной и будет использоваться для всех процессов в системе, включая пользовательский процесс?
-
Этот механизм одинаковый для x86 32bit и ARM?