Предыдущую тему про сабж закрыли, однако там не сказали одной важной вещи.
На 32 битных системах можно теоретически использовать не 4G, а 64G в режиме PAE.
PAE = physical address extensions.
XP 32 бит вначале предполагали разрешать видеть 64G, но возникли проблемы с некоторыми драйверами, не расчитанными на PAE, и ms для упрощения себе жизни тупо ограничил видимость памяти >4G.
Но в серверных редакциях windows 2003 , 2008, 2008 R2 ограничение не действует.
2003 standard edition лицензионно ограничен 4G
2003 enteprise - max 32G
2003 datacenter - max 64G
2008 enterprise - max 64G
2008 R2 - это серверный аналог win7 на том же самом ядре. только некоторые вещи, привычные в win7, по умолчанию отключено. ставите desktop experience, включаете audiosrv, и получаете почти тот же самый win7
но в отличие от win7 32 bit, 2008 R2 32 бит замечательно увидит до 64 г памяти и будет их использовать
в доказательство прилагаю скриншот винды 2003 x86 на виртуалке с 5 г памяти
Собственно, сам способ Способ есть и он проверенно работает
Винда берет параметры количества максимальной памяти из ключика реестра HKLM\SYSTEM\CurrentControlSet\Control\ProductOptio ns\ProductPolicy
там находится бинарный блок информации, но если его смотреть в regedit, то вполне можно различить уникодные параметры
примерно по смещению A68 находится параметр Kernel-WindowsMaxMemAllowedx86, а за ним в формате DWORD количество доступных мегабайтов. по умолчанию 0x1000, что значит 4096.
но есть ряд моментов, которые усложняют жизнь
1) модифицировать этот ключ с ходу нельзя. надо либо цеплять хайв с другой системы, либо вводить систему в setup режим. это делается так
HKLM\Setup\SetupType=1
CmdLine=cmd.exe
после ребута выкинется cmd, откуда пускаем regedit, и там уже нет блокировки от изменения ProductPolicy
2) Если поставить туда значения менее 4g, например 2g - 0x0800, то памяти станет после ребута 2G. но если больше, то Software Protection (sppsvc) сервис сбрасывает это значение обратно в 0x1000. если отключить sppsvc, то значение не сбрасывается, но система упорно видит все те же 3G
значит где-то еще есть какой-то параметр
3) то что увидеть много памяти можно просто модификацией ProductPolicy и отключением sppsvc, я это уже подтвердил.
Подтвердил так
Запускаем установку винды с CD. Жмем Shift-F10. появляется cmd
оттуда пускаем taskmgr. Он видит 5 гигов памяти
Копируем через regedit оттуда блок ProductPolicy
В нем только минимум значений, ограничения памяти вообще нет
Загружаемся в установленную систему и импортируем этот блок
ребутаемся
Основная система видит все 5Г !
Но, поскольку все-таки там нет многих опций, то ряд фишек винды типа игр перестают запускаться.
пока это все, покопаю еще дальше
ключевые остаются 2 задачи : найти полностью работающий product policy, который не режет память и не отключает различные фичи винды
и запретить sppsvc модифицировать реестр. предполагаю, это можно сделать просто через deny пермишин