32-разрядная клиентская версия Windows имеет физическое адресное пространство 4 ГБ. Было бы хорошо, если бы все это пространство можно было использовать для оперативной памяти, но это не так. Часть этого адресного пространства используется для аппаратных устройств с отображенной памятью. Процессор может обмениваться данными с этими устройствами, читая или записывая их адресное пространство так же, как это происходит с оперативной памятью. Существуют и другие доступные методы, но оборудование с отображением памяти работает намного быстрее, что важно для высокопроизводительных устройств, таких как видеосистемы. Обычно устройства с отображенной памятью потребляют от 0,5 до 1 ГБ, но в некоторых случаях могут быть более или менее.
Вы не можете иметь 4 ГБ ОЗУ и устройства с отображением от 0,5 до 1 ГБ в одном и том же 4 ГБ адресном пространстве. Это просто не подходит. Таким образом, все пространство, используемое для аппаратных устройств, не доступно для оперативной памяти. Если у вас 3 ГБ или меньше ОЗУ, обычно есть свободное адресное пространство, и ОЗУ не теряется.
Если адресное пространство, используемое для аппаратных устройств, вычитается из 4 ГБ, то для оперативной памяти остается от 3 до 3,5 места. 3,25 ГБ просто типично, а число часто цитируется.
Я полагаю, что все это можно было бы сделать по-другому, но это усложнило бы дизайн, а адресное пространство в 4 ГБ в то время было огромным. Изменение его сейчас будет иметь серьезные проблемы с совместимостью. И у нас уже есть намного лучшее решение в использовании 64-битной ОС. 64-битная ОС имеет гораздо большее адресное пространство, поэтому здесь достаточно места для всего.
PAE часто предлагается в качестве решения. Это особая настройка, которая позволяет значительно увеличить физическое адресное пространство. Конфликтующее ОЗУ может быть адресовано выше 4 ГБ, где оно может быть адресовано. Эта опция поддерживается 32-битными серверными операционными системами. Проблема заключалась в том, что многие драйверы устройств вели себя очень плохо в такой среде с очень печальными результатами, такими как сбои или повреждение данных. По этой причине клиентские системы просто игнорируют объем оперативной памяти выше 4 ГБ. Это стало лицензионным ограничением и применяется в ядре.
Поскольку PAE не работает в клиентских системах, а 32-битные серверы практически устарели, это, по сути, мертвая проблема.