Ограничения памяти в 16, 32 и 64-разрядных системах

Теоретические ограничения памяти на 16, 32 и 64-разрядных машинах следующие:

  • 16 бит = 65 536 байт (64 килобайта)

  • 32 бит = 4 294 967 296 байт (4 Гигабайта)

  • 64 бит = 18,446,744,073,709,551,616 (16 Экзабайт)

Я помню из DOS/Windows 3.11 дней, что 16-разрядная память может быть разделена на сегменты, чтобы 16-разрядная машина могла получить доступ к большему объему памяти, чем 64 Килобайт.

У меня есть машина с 16 ГБ памяти, и я выполняю двойную загрузку 32-битной операционной системы и 64-битной операционной системы. Я могу получить доступ ко всем 16 ГБ с 64-битной, но только к 3,21 ГБ в 32-битной.

Итак, мой вопрос: если 16-битные операционные системы разрешают доступ к памяти объемом более 64 КБ из-за сегментации памяти, почему 32-битные машины не следуют тому же принципу?