Карта памяти показывает больше оперативной памяти, чем физически доступно

Я работаю над небольшим ядром x86. Я пытаюсь прочитать карту памяти, которую GRUB предоставляет в заголовке мультизагрузки. У меня есть процессор Intel i3 и 4 ГБ оперативной памяти. Работая на этой машине, я читаю следующую карту памяти:

 --Base Address--          --Length--      --Type--

0x0000000000000000     0x000000000009d000     0x1
0x000000000009d000     0x0000000000003000     0x2
0x00000000000e0000     0x0000000000020000     0x2
0x0000000000100000     0x00000000bb53f000     0x1
0x00000000bb63f000     0x0000000000080000     0x2
0x00000000bb6bf000     0x0000000000100000     0x4
0x00000000bb7bf000     0x0000000000040000     0x3
0x00000000bb7ff000     0x0000000000001000     0x1
0x00000000bb800000     0x0000000004800000     0x2
0x00000000e0000000     0x0000000010000000     0x2
0x00000000feb00000     0x0000000000004000     0x2
0x00000000fec00000     0x0000000000001000     0x2
0x00000000fed10000     0x0000000000004000     0x2
0x00000000fed18000     0x0000000000002000     0x2
0x00000000fed1b000     0x0000000000005000     0x2
0x00000000fee00000     0x0000000000001000     0x2
0x00000000ffe80000     0x0000000000180000     0x2
0x0000000100000000     0x0000000038000000     0x1

Когда я суммирую доступные области памяти, я получаю ...

0x1 (доступно) - 3893,8 МиБ

Что кажется правильным, оставляя последние 200ish MiB зарезервированными для других устройств. Единственная проблема - общее количество других типов памяти:

0x2, 0x3, 0x4 - 331,5 МиБ

Положив мой общий объем оперативной памяти на 4225,3 МБ иличуть более 4,1 ГиБ, что приводит меня к моим вопросам:

Почему у меня больше 4 ГБ ОЗУ, если у меня установлен только 4 ГБ?

Почему последний базовый адрес в карте памяти 0x0000000100000000? При наличии только 4 ГБ ОЗУ 32 бита должны быть максимальным размером адреса, необходимого для адресации всего этого. Я что-то здесь неправильно понимаю?

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

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