Сколько нужно оперативной памяти для windows xp 32 bit: Как я преодолевал предел 4Гб на Windows XP 32бит / Habr – Сколько памяти может использовать 32 битная операционная система

Как я преодолевал предел 4Гб на Windows XP 32бит / Habr

Сразу оговорюсь, «преодолевал» в названии отражает только тот факт, что теперь моя XP видит всю память, установленную на системной плате. Не я придумал способ, я просто им воспользовался и теперь хочу поделиться.
Вопрос о четырёх гигабайтах памяти в Windows XP (здесь, и далее 32 бит) поднимался на просторах Интернет неоднократно. И так же неоднократно делался вывод, что более четырёх увидеть в принципе невозможно, а так как оборудование тоже требует адресного пространства, то и того меньше. Обычно 3.25 Гб, или около того. Очень подробно и убедительно история вопроса освещена здесь: Четыре гигабайта памяти — недостижимая цель?

Меня этот вопрос тоже волновал. Хотя, казалось бы, можно поставить 64 битную систему, или даже Windows Server (как известно он даже в 32-битной версии видит всю память), но я хотел пользоваться Windows XP. Два раза за последние 3 года я переходил на Windows 7, в первый раз на 64-битную, второй раз на 32-х битную, но в итоге оба раза вернулся назад на XP, которая живёт у меня без переустановки с 2007 года.

Последний раз я отказался от семёрки в пользу старушки буквально две недели назад. Притом, надо отметить, что семёрка была хоть и 32-х битная, но в ней была разблокирована возможность видеть всю доступную память. Способ разблокировки доступен в Интернет. И теперь мне с новой силой захотелось решить этот вопрос и в XP.

Поиски привели на этот сайт: Patch Vista’s Kernel to Address more than 4 GB of Memory

Статья посвящена разблокировке Windows Vista, зато в комментариях, пара человек описывает аналогичный способ для Windows XP. Я решил последовать их советам и опробовать эту методику на практике.

Для начала нужен дистрибутив Windows XP SP1. Возможно, подойдёт и просто первый сервиспак, не знаю, у меня его нет. В общем-то, там нужен только один файл. А именно файл библиотеки Hardware Abstraction Layer. Начиная со второго сервиспака эта библиотека работает с PAE «фиктивно», т.е. даже если режим расширенной трансляции адресов включён – он ничего не делает и не выходит за пределы четырёх гигабайт. А вот библиотека от первого сервиспака работает полноценно и может адресоваться ко всей доступной памяти, аналогично тому, как работает с памятью 32-битный Windows Server. В установленной Windows XP данный файл называется hal.dll, но в дистрибутиве имеется несколько HAL-файлов, и только один из них инсталлируется в систему под именем hal.dll в процессе установки. Необходимо было узнать, какой из файлов нужно использовать на моём конкретном оборудовании. Делается это просто, надо вызвать Свойства в контекстном меню проводника на файле hal.dll в установленной Windows. Файл находится в папке %systemroot%\system32, и вот что я увидел:

В дистрибутиве Windows XP SP1 в папке I386, я взял файл HALMACPI.DL_. Это архив, в котором находится один файл, искомый мной halmacpi.dll. Я его извлёк WinRAR’ом, но можно обойтись и командной строкой:
expand HALMACPI.DL_ HALMACPI.DLL

Полученный файл надо поместить в папку %systemroot%\system32, что я и сделал. Хочу ещё раз обратить внимание, что если кто-то захочет повторить мои шаги, файл надо брать с именем, указанном в свойстве «Исходное имя файла» в свойствах hal.dll из установленной Windows XP.

Второе, что необходимо сделать, это получить пропатченную версию ядра Windows. Как известно, существует 4-ре версии ядра:

  • ntoskrnl.exe — однопроцессорное ядро Windows.
  • ntkrnlmp.exe— многопроцессорное ядро Windows.
  • ntkrnlpa.exe — однопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.
  • ntkrpamp.exe — многопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.

В той инструкции, которую я использовал, говорилось про ядро ntkrnlpa.exe и в моей инсталляции Windows стоит именно оно. Что делать, если попадётся другое ядро – я, честно говоря, не знаю.
Первым делом, я сделал копию ядра, назвал его krnl16.exe, в принципе название неважно. Далее HEX-редактором (я использовал DOS-Navigator, по старой памяти) надо найти последовательность

  • BB 00 00 10 00 33 FF 6A 07 8B F0 и заменить её на
  • BB 00 00 40 00 33 FF 6A 07 8B F0

Здесь 1000h = 4096 Мб, заменяем на 4000h = 16384 Мб. Т.е. поднимаем ограничение до 16Гб. В принципе, можно вписать и большее число. Пропатченный файл также должен располагаться в system32.

Теперь осталось отредактировать boot.ini. Нужно скопировать имеющуюся строчку и дописать пару параметров. У меня была строка:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN

Я добавил в неё /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE и в результате получилось:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU 16Gb» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE

Теперь есть возможность загружаться как в стандартный Windows с присущим ему ограничением на память, так и в пропатченный, так как я не заменял ни одного системного файла, а только добавил два, которые включаются в работу с помощью вышеописанных параметров boot.ini

Ребут!

И… BSOD.

В принципе, такое может быть. Как следует из обзора истории проблемы на ixbt причиной, по которой Microsoft отключила адресацию верхней памяти, было существование кривых драйверов под различное оборудование, кривизна которых, впрочем, проявлялась только в полноценном режиме PAE. Вполне вероятно, у меня сбоит один из них, за 6 лет в системе накопилось много всего, но какой? Пробую запуститься в безопасном режиме, и УРА! Вот они, мои гигабайты:

Но как определить сбойный модуль? Погуглив, я нашёл для этого методику, которая заключается в анализе малого дампа памяти, создаваемого Windows при BSOD. Анализ производится программой Blue Screen View, но вот все найденные мной способы включения режима записи дампа к успеху не привели: дамп не создавался, поэтому пришлось использовать научный метод тыка. Для начала я деинсталлировал то ненужное, что нашлось в системе. А именно драйвер защиты Guardant и драйвера ATI от старой видеокарты.

Ребут.

Результат превзошёл мои ожидания. Честно говоря, я не ожидал, что метод тыка даст такие результаты, и попробовал его просто, чтобы сделать хоть что-нибудь. Который из драйверов вызывал проблему, я точно не знаю, но думаю, что, скорее всего Guardant.

Но главное: цель достигнута, и теперь я подумываю о расширении памяти до 8-ми Гб.

  • Примечание 1. Поскольку в методике используется dll из первого сервиспака, есть вероятность, что в ней имеются какие-либо уязвимости, закрытые последующими сервиспаками. Я не изучал этот вопрос.
  • Примечание 2. Некоторые драйверы в пропатченой Windows XP могут вызывать BSOD. Впрочем, их крайне мало в природе.
  • Примечание 3. В первоисточнике ценных знаний сообщают, что на некоторых системах имеются проблемы с USB при использовании данной методики. У меня пока проблем нет. По крайней мере, клавиатуры, мышки и флешки работают в штатном режиме.

Сколько памяти может использовать 32 битная операционная система

Сколько памяти может использовать 32 битная операционная система

Сначала немного теории.
Простейший элемент информации – бит. Он является минимальной единицей информации и может принимать значение 0 или 1. За ним идет байт, он состоит из 8 бит. Так как бит может принимать 2 значения, то всего получается 28=256  значений байта.

Теперь рассмотрим адресацию памяти. У любого компьютера имеется оперативная память (ОЗУ) — адресное пространство, необходимое для хранения данных, используемых в данный момент. Для получения информации из ОЗУ вначале процессор должен выбрать адрес нужного бита, который храниться в одной из микросхем памяти, а уже потом его прочитать. Этот процесс и называется адресацией памяти. Одним из свойств архитектуры компьютера является количество битов, используемых при адресации памяти.

32 битные ОС для адресации памяти используют 232 бит, что составляет  4294967296 бит или 4 Гигабайт (Гб). Это значит, что максимальный объем памяти, к которому может обращаться 32 битная операционная система, составляет 4 Гб. Однако даже этот объем использовать в полной мере нам не удасться, поскольку компоненты операционной системы и устройства требуют выделенного адресного пространства в пределах первых 32 бит (4 Гбайт) оперативной памяти. Например, видеокарта с 512 Мбайт памяти потребует синхронизации этой памяти с оперативной, что снизит доступную ёмкость на 512 Мбайт.

Таким образом, общий объем памяти, доступной в 32 – битной ОС Windows обычно составляет 3.25-3.75 Гб в зависимости от используемого железа.

Некоторые версии Windows поддерживают функцию под названием Physical Address Extension (PAE), позволяющую использовать больше 4 Гбайт памяти благодаря специальной технологии переадресации. Данная технология позволяет процессору работать не с 32-битной, а с 36-битной адресацией, теоретически расширяя доступные ему адреса до 236 = 68719476736 байт (64 Гб).  При этом само адресное пространство остается 32-битным, то есть равным 4 Гб, но за счет измененного отображения на него физической памяти становится возможным использование большего ее объема.

Согласно официальной информации Microsoft, режим PAE можно использовать в следующих 32-битных операционных системах :

  • Microsoft Windows Server 2000 Enterprise/Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise/Datacenter Edition
  • Microsoft Windows Server 2008 Enterprise/Datacenter Edition

В Server 2008 PAE включен по умолчанию, если на сервере на хардварном уровне включена технология DEP (Data Execution Prevention), либо сервер имеет возможность горячего добавления памяти (hot-add memory). В противном случае PAE необходимо включить принудительно с помощью BCDEdit, следующей командой:

BCDEdit /set [{ID}] pae ForceEnabled

Чтобы включить PAE в Server 2000\2003, необходимо указать в файле Boot.ini ключ /PAE. Вот пример файла Boot.ini, содержащего ключ PAE:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=″Windows Server 2003, Enterprise″ /fastdetect /PAE

Стоит заметить, что возможность использовать режим PAE для клиентских ОС была реализована во втором сервис-паке к Windows XP. Однако в процессе тестирования выяснилось, что при использовании этого режима происходит большое количество сбоев. Дело в том, что драйверы некоторых устройств, в основном таких как аудио- и видео, жестко запрограммированы на работу с адресами памяти в пределах  4ГБ. Они обрезают все адреса выше этого объема, что приводит к повреждению содержимого памяти со всеми сопутствующими последствиями.  Поскольку, как правило, сервера не используют подобные устройства, то с серверными системами подобных проблем не возникало.

В связи с выявленными недостатками решено было убрать из 32-разрядных клиентских систем возможность работать с памятью свыше 4ГБ, хотя теоретически это возможно. Поэтому в клиентских ОС семейства Windows данная технология хотя и присутствует, однако не активирована на уровне ядра, и попытка ее использовать ни к чему не приведет.

Подводя итог скажу, что если есть необходимость в объеме памяти больше 4Гб, то наилучший вариант — это использовать 64 битную ОС, ведь в ней ограничение на размер памяти составляет до 192 Гб для настольных и 2 Тб для серверных ОС.

И еще, уточнить информацию о поддержке памяти различными версиями Windows можно здесь:  Memory Limits for Windows and Windows Server Releases.

Сколько нужно оперативной памяти для Windows XP? Системные требования ХР

Природа человеческая такова, что каждому из нас часто хочется иметь что-нибудь самое лучшее, самое новое – например, операционную систему. ХР, конечно, уже далеко не самая новая, но для подавляющего большинства действительно старых компьютеров это едва ли не единственный шанс получить более-менее современный вид. Вполне возможно, что Ваш старенький компьютер способен потянуть ХР, но Вас одолевают сомнения другого рода – а не слишком ли много оперативной памяти она будет потреблять? Тогда ведь все характеристики компьютеров были несколько поскромнее, чем сейчас.

Вариации на тему оперативной памяти

Если Вы поспрашиваете ответ на этот вопрос у своих знакомых, то можете услышать самые различные мнения по поводу того, сколько же оперативной памяти требует обсуждаемая нами операционная система. В чем подвох? Начнем с минимума – для установки и запуска Windows XP достаточно невероятно скромных по современным меркам 64 Мегабайт оперативной памяти. Обрадовались? Притормозите, это только для запуска системы и самых минимальных программ из стандартного пакета, да и тормозить все это будет очень жутко. Разработчики считают, что для нормальной работы нужно не менее 128 Мегабайт оперативки (ключевые слова – «не менее»), но опять же, еще вопрос, что у Вас будет хорошо работать из программ при столь скромных возможностях компьютера. Пользователи, имеющие длительный опыт работы с этой системой, обычно советуют ориентироваться на 256 или 512 Мегабайт, если Вы не играете в игры, или же 1-2 Гигабайта, если играете – в обоих случаях система должна «летать» и доставлять Вам сплошное удовольствие при работе с ней.

Еще раз про Windows и четыре гигабайта

Прошло несколько лет с тех пор, как была написана статья «Четыре гигабайта памяти — недостижимая цель?», а вопросов, почему Windows не видит все четыре гигабайта, меньше не стало. К числу вопрошающих добавились и обладатели 64-разрядных систем, которых эта проблема, казалось бы, не должна была коснуться. И стало ясно, что пора писать новую статью на эту же тему. Как и раньше, речь пойдет только об операционных системах Windows, причем в основном клиентских, то есть Windows XP, Windows Vista, Windows 7 и грядущей Windows 8. В некоторых случаях намеренно будут использоваться несколько упрощенные описания тех или иных аспектов. Это даст возможность сосредоточиться на предмете данной статьи, не вдаваясь в излишние подробности, в частности, внутреннего устройства процессоров и наборов микросхем (чипсетов) для системных плат. Рекомендуем предварительно прочитать указанную выше статью, так как не всё, сказанное в ней, будет повторено здесь.

Хотя теоретически 32-разрядной системе доступны (без дополнительных ухищрений) до 4 ГБ физической памяти, 32-разрядные клиентские версии Windows не могут использовать весь этот объем из-за того, что часть адресов используется устройствами компьютера. Ту часть ОЗУ, адреса которой совпадают с адресами устройств, необходимо отключать, чтобы избежать конфликта между ОЗУ и памятью соответствующего устройства — например, видеоадаптера.

Рис. 1. Если оперативная память в адресах, используемых устройствами, не отключена, возникает конфликт

Оперативная память заполняет адреса, начиная с нулевого, а устройствам, как правило, отводятся адреса в четвертом гигабайте. Пока размер ОЗУ не превышает двух-трех гигабайт, конфликты не возникают. Как только верхняя граница установленной памяти входит в ту зону, где находятся адреса устройств, возникает проблема: по одному и тому же адресу находятся и ячейка оперативной памяти, и ячейка памяти устройства (того же видеоадаптера). В этом случае запись данных в память приведет к искажению изображения на мониторе и наоборот: изменение изображения — к искажению содержания памяти, то есть программного кода или данных (скажем, текста в документе). Чтобы конфликты не возникали, операционной системе приходится отказываться от использования той части ОЗУ, которая перекрывается с адресами устройств.

В середине девяностых годов прошлого века для расширения доступного объема ОЗУ была разработана технология PAE (Physical Address Extension), увеличивающая число линий адреса с 32 до 36 — тем самым максимальный объем ОЗУ вырастал с 4 до 64 ГБ. Эта технология первоначально предназначалась для серверов, однако позже появилась и в клиентской Windows XP. Некоторые особенности реализации этой технологии в современных контроллерах памяти дают возможность не только использовать PAE по ее прямому назначению, но и «перекидывать» память в другие адреса. Таким образом, часть памяти, которая ради предотвращения конфликтов не используется, может быть перемещена в старшие адреса, например в пятый гигабайт — и снова стать доступной системе.

В обсуждении первой статьи было высказано замечание, что некорректно отождествлять наличие в контроллере памяти системной платы поддержки PAE — и способность платы переадресовывать память; что это вполне могут быть вещи, друг с другом не связанные. Однако практика показывает, что в «железе» для настольных систем это понятия взаимозаменяемые. К примеру, Intel в документации к своему набору микросхем G35 ни слова не говорит о возможности (реально существующей) переадресации памяти, зато подчеркивает поддержку РАЕ. А не поддерживающий PAE набор i945 не имеет и переадресации памяти. С процессорами AMD64 и последними моделями процессоров Intel дело обстоит еще проще: в них контроллер памяти встроен в процессор, и поддержка PAE (и ОЗУ размером более 4 ГБ) автоматически подразумевает поддержку переадресации.

Рис. 2. Переадресация

Рисунок достаточно условный, переадресация совсем не обязательно выполняется блоками именно по одному гигабайту, дискретность может быть другой и определяется контроллером памяти (который, напомним, является либо частью оборудования системной платы, либо частью процессора). В программе BIOS Setup компьютера обычно бывает настройка, разрешающая или запрещающая переадресацию. Она может иметь различные наименования — например, Memory remap, Memory hole, 64-bit OS и тому подобное. Ее название лучше всего выяснить в руководстве к системной плате. Необходимо отметить, что если используется 32-разрядная система, то на некоторых системных платах, преимущественно достаточно старых, переадресацию необходимо отключать — в противном случае объем доступного системе ОЗУ может уменьшиться.

По умолчанию в Windows XP режим РАЕ был отключен, поскольку реальной надобности в нем не было (напомним, что в 2001 году типичный объем памяти настольного компьютера составлял 128—256 МБ). Тем не менее, если его включить, то ХР могла бы использовать все четыре гигабайта памяти — при условии, конечно, что системная плата поддерживала бы РАЕ. Но, повторим, реальной надобности включать этот режим в те годы не было. При желании читатель может для пробы установить на современный компьютер Windows XP или Windows XP SP1 (делать это для работы, конечно, не стоит), включить режим PAE и своими глазами убедиться, что системе доступны четыре гигабайта ОЗУ.

В 2003 году «Майкрософт» начала разрабатывать второй пакет исправлений для Windows XP (вышедший в 2004 году), поскольку столкнулась с необходимостью существенно снизить число уязвимостей в компонентах ОС. Одним из путей было использование предотвращения выполнения данных (Data Execution Prevention, DEP) — набора программных и аппаратных технологий, позволяющих выполнять дополнительные проверки содержимого памяти и в ряде случаев предотвращать запуск вредоносного кода. Эти проверки выполняются как на программном уровне, так и на аппаратном (при наличии соответствующего процессора). AMD назвала эту функцию процессора «защита страниц от выполнения» (no-execute page-protection, NX), а Intel использовала термин «запрет на выполнение» (Execute Disable bit, XD).

Однако использование такой аппаратной защиты требует перевода процессора в режим PAE, поэтому Windows XP SP2 при обнаружении подходящего процессора стала включать этот режим по умолчанию. И вот тут «Майкрософт» столкнулась с довольно серьезной проблемой: оказалось, что не все драйверы могут работать в режиме PAE. Попробуем пояснить эту особенность, не слишком углубляясь в устройство процессоров и механизмы адресации.

В Windows используется так называемая плоская модель памяти. Тридцать два разряда адреса обеспечивают обращение к пространству размером четыре гигабайта. Таким образом, каждой ячейке ОЗУ или ячейке памяти другого устройства соответствует определенный адрес, и никаких двусмысленностей тут быть не может. Включенный режим PAE дает возможность использовать 36 разрядов адреса и увеличить количество ячеек памяти в 16 раз. Но ведь система команд процессора остается той же самой и может адресовать только 4 миллиарда (двоичных) байтов! И вот, чтобы обеспечить возможность доступа к любому из 64 миллиардов байтов, указав только 32 разряда адреса, в процессоре включается дополнительный этап трансляции адресов (те, кого интересуют подробности, могут обратиться к специальной литературе — например, книге Руссиновича и Соломона «Внутреннее устройство Windows»). В результате 32-разрядный адрес в программе может указывать на любой из байтов в 36-разрядном пространстве.

Прикладных программ эта особенность никак не касается, они работают в своих собственных виртуальных адресах. А вот драйверам, которые должны обращаться к реальным адресам конкретных устройств, приходится решать дополнительные задачи. Ведь сформированный этим драйвером 32-разрядный адрес может после дополнительного этапа трансляции оказаться совсем другим, и выданная драйвером команда может, например, вместо вывода значка на экран изменить значение в одной из ячеек таблицы Excel. А если окажутся запорченными какие-либо системные данные, то тут и до аварийного завершения работы с выводом синего экрана рукой подать. Поэтому для успешной работы в режиме PAE драйверы должны быть написаны с учетом особенностей этого режима.

Однако поскольку исторически сложилось так, что до того времени в клиентских компьютерах PAE не использовался, некоторые компании не считали нужным поддерживать этот режим в написанных ими драйверах. Ведь оборудование, которое они выпускали (звуковые платы, к примеру), не предназначалось для серверов, и драйверы не имели серверной версии — так зачем без необходимости эти драйверы усложнять? Тем более, что для тестирования работы в режиме PAE раньше требовалось устанавливать серверную ОС и использовать серверное оборудование (системные платы для настольных компьютеров лишь относительно недавно стали поддерживать PAE). Так что разработчикам драйверов проще и выгоднее было просто забыть про этот PAE и обеспечить работоспособность на обычных клиентских компьютерах с обычными персональными, а не серверными ОС.

И вот с такими драйверами и возникли проблемы в XP SP2. Хотя количество фирм, драйверы которых переставали работать или даже вызывали крах системы, оказалось невелико, количество выпущенных этими фирмами устройств исчислялось миллионами. Соответственно, и количество пользователей, которые могли бы после установки SP2 получить неприятный сюрприз, оказывалось весьма значительным. В результате многие пользователи и сами отказались бы устанавливать этот пакет, и разнесли бы о нем дурную славу, что повлияло бы и на других пользователей. Они, хоть и без каких-либо веских причин, тоже отказались бы его устанавливать.

А необходимость повышения безопасности ХР компания «Майкрософт» ощущала очень остро. Впрочем, рассуждения на тему, почему мы увидели Windows XP SP2 и не увидели чего-то наподобие Windows XP Second Edition, выходят за рамки данной статьи.

Главное, что нас интересует, это то, что для обеспечения совместимости с плохо написанными драйверами функциональность PAE в SP2 для Windows XP была обрезана. И хотя сам этот режим существует и, более того, на компьютерах с современными процессорами включается по умолчанию, никакого расширения адресного пространства он не дает, просто передавая на выход те же адреса, которые были поданы на вход. Фактически система ведет себя как обычная 32-разрядная без PAE.

То же самое поведение было унаследовано Windows Vista, а затем перешло к Windows 7 и будущей Windows 8. Конечно, 32-разрядным. Причина, по которой это поведение не изменилось, осталась той же самой: обеспечение совместимости. Тем более что необходимость выгадывать доли гигабайта отпала: те, кому нужны большие объемы памяти, могут использовать 64-разрядные версии ОС.

Иногда можно услышать вопрос: если именно этот обрезанный режим PAE мешает системе видеть все четыре гигабайта — так, может, отключить его вовсе, чтобы не мешал, и, вуаля, системе станут доступны 4 ГБ? Увы, не станут: для этого требуется как раз наличие PAE, притом полноценного. Другой не так уж редко задаваемый вопрос звучит так: если устройства действительно мешают системе использовать всю память и резервируют ее часть под свои нужды, то почему же они ничего не резервировали, когда в компьютере стояло два гигабайта ОЗУ?

Вернемся к первому рисунку и рассмотрим ситуацию подробнее. Прежде всего отметим, что нужно четко различать два понятия: размер адресного пространства и объем ОЗУ. Смешение их воедино препятствует пониманию сути вопроса. Адресное пространство — это набор всех существующих (к которым может обратиться процессор и другие устройства) адресов. Для процессоров семейства i386 это 4 гигабайта в обычном режиме и 64 ГБ с использованием PAE. У 64-разрядных систем размер адресного пространства составляет 2 ТБ.

Размер адресного пространства никак не зависит от объема ОЗУ. Даже если вытащить из компьютера всю оперативную память, размер адресного пространства не изменится ни на йоту.

Адресное пространство может быть реальным, в котором работает сама операционная система, и виртуальным, которое ОС создает для работающих в ней программ. Но особенности использования памяти в Windows будут описаны в другой статье. Здесь же отметим только, что к реальному адресному пространству программы доступа не имеют — по реальным адресам могут обращаться только сама операционная система и драйверы.

Рассмотрим, как же в компьютере используется адресное пространство. Сразу подчеркнем, что его распределение выполняется оборудованием компьютера («железом») и операционная система в общем случае не может на это повлиять. Есть только один способ: изменить настройки оборудования с помощью технологии Plug&Play. О ней много говорили в середине 90-х годов прошлого века, но теперь она воспринимается как что-то само собой разумеющееся, и всё увеличивается число людей, которые о ней даже не слышали.

С помощью этой технологии можно изменять в определенных, заданных изготовителем, пределах адреса памяти и номера портов, используемых устройством. Это, в свою очередь, дает возможность избежать конфликтов между устройствами, которые могли бы произойти, если бы в компьютере оказалось два устройства, настроенных на использование одних и тех же адресов.

Базовая программа в системной плате, часто обобщенно называемая BIOS (хотя на самом деле BIOS (базовой системой ввода-вывода) она не является) при включении компьютера опрашивает устройства. Она определяет, какие диапазоны адресов каждое устройство может использовать, потом старается распределить память так, чтобы ни одно устройство не мешало другому, а затем сообщает устройствам свое решение. Устройства настраивают свои параметры согласно этим указаниям, и можно начинать загрузку ОС.

Раз уж об этом зашла речь, заметим, что в ряде системных плат есть настройка под названием «P&P OS». Если эта настройка выключена (No), то системная плата выполняет распределение адресов для всех устройств. Если включена (Yes), то распределение памяти выполняется только для устройств, необходимых для загрузки, а настройкой остальных устройств будет заниматься операционная система. В случае Windows XP и более новых ОС этого семейства данную настройку рекомендуется включать, поскольку в большинстве случаев Windows выполнит требуемую настройку по крайней мере не хуже, чем BIOS.

Поскольку при таком самоконфигурировании распределяются адреса памяти, не имеет никакого значения, сколько ОЗУ установлено в компьютере — процесс все равно будет протекать одинаково.

Когда в компьютер вставлено некоторое количество ОЗУ, то адресное пространство для него выделяется снизу вверх, начиная с нулевого адреса и дальше в сторону увеличения адресов. Адреса устройств, наоборот, выделяются в верхней области (в четвертом гигабайте) в сторону уменьшения адресов, но не обязательно смежными блоками — чаще, наоборот, несмежными. Как только зоны адресов, выделяемых для ОЗУ (с одной стороны) и для устройств (с другой стороны), соприкоснутся, становится возможным конфликт адресов, и объем используемого ОЗУ приходится ограничивать.

Поскольку изменение адреса при настройке устройств выполняется с некоторым шагом, определяемым характеристиками устройства, заданными изготовителем, то сплошной участок адресов для устройств получить невозможно — между адресами отдельных устройств появляются неиспользуемые промежутки. Теоретически эти промежутки можно было бы использовать для обращения к оперативной памяти, но это усложнило бы работу диспетчера памяти операционной системы. По этой и по другим причинам Windows использует ОЗУ до первого адреса памяти, занятого устройством. ОЗУ, находящееся от этого адреса и выше, останется неиспользуемым. Если, конечно, контроллер памяти не организует переадресацию.

Иногда задают вопрос: а можно ли повлиять на распределение адресов, чтобы сдвинуть все устройства в адресном пространстве как можно выше и сделать как можно больше памяти доступной системе. В общем случае без вмешательства в конструкцию или микропрограммы самих устройств это сделать невозможно. Если же руки все-таки чешутся, а времени не жалко, можно попробовать следующий метод: в BIOS Setup включить настройку «PnP OS» (она может или вовсе отсутствовать или называться по-другому), чтобы адреса для большинства устройств распределяла Windows, а затем переустанавливать драйверы, используя отредактированные файлы inf с удаленными областями памяти, которые, на ваш взгляд, расположены слишком низко.

В интернете можно найти разные советы, которые, якобы, должны дать системе возможность использовать все четыре гигабайта, основанные на принудительном включении PAE. Как легко понять из изложенного, никакого выигрыша это дать не может, поскольку не имеет значения, включен ли PAE автоматически или принудительно — работает этот режим в обоих случаях одинаково.

Может возникнуть также вопрос: а что будет, если установить видеоадаптер с четырьмя гигабайтами памяти. Ведь тогда получается, что система останется совсем без ОЗУ и работать не сможет. На самом деле ничего страшного не произойдет: видеоадаптеры уже довольно давно используют участок адресного пространства размером 256 МБ, и доступ ко всему объему памяти видеоускорителя осуществляется через окно такого размера. Так что больше 256 мегабайт видеоадаптер не отнимет. Возможно, в каких-то моделях размер этого окна увеличен вдвое или даже вчетверо, но автору в руки они пока не попадали.

64 разряда

Итак, с 32-разрядными системами мы разобрались. Теперь перейдем к 64-разрядным.

Вот уж тут-то, казалось бы, никаких подводных камней быть не должно. Система может использовать куда больше четырех гигабайт, так что, на первый взгляд, достаточно воткнуть в системную плату память и установить систему. Но оказывается, не все так просто. Прежде всего, отметим, что специального оборудования, предназначенного только для 64-разрядных систем, найти не удастся (мы говорим об обычных ПК). Любая системная плата, сетевая плата, видеоадаптер и пр., работающие в 64-разрядной системе, должны с одинаковым успехом работать в 32-разрядной.

А это означает, что адреса устройств должны оставаться в пределах первых четырех гигабайт. И значит, все ограничения, накладываемые на объем памяти, доступный 32-разрядной системе, оказываются применимыми и к 64-разрядной — конечно, в том случае, если системная плата не поддерживает переадресацию или если эта переадресация отключена в настройках.

Не поддерживают переадресацию системные платы на наборах микросхем Intel до 945 включительно. Новыми их, конечно, не назовешь, но компьютеры на их базе еще существуют и используются. Так вот, на таких платах и 64-разрядная, и 32-разрядная системы смогут увидеть одинаковое количество памяти, и оно будет меньше 4 ГБ. Почему меньше — описано выше.

С 64-разрядными процессорами AMD дело обстоит проще: у них контроллер памяти уже довольно давно встроен в процессор, и переадресация отсутствует только в устаревших моделях. Все процессоры для 939-контактного гнезда и более новые поддерживают больше 4 ГБ и, соответственно, умеют выполнять переадресацию памяти. То же самое относится к процессорам Intel семейств Core i3, i5, i7.

Впрочем, и тут может быть загвоздка: если на системной плате не выполнена разводка дополнительных адресных линий, то не будет и возможности обратиться к переадресованной памяти. А некоторые младшие модели системных плат для удешевления выпускают именно такими, так что необходимо смотреть описание конкретной системной платы.

И здесь нас поджидает сюрприз, подобный тому, с которым мы сталкиваемся в 32-разрядной системе: использование адресного пространства для работы устройств может ограничить объем памяти, доступный Windows.

Например, если системная плата поддерживает до 8 ГБ ОЗУ (скажем, использующая набор микросхем G35), и установить все эти 8 ГБ, то использоваться будут только ≈7—7,25 ГБ. Причина заключается в следующем: на такой системной плате разведены 33 линии адреса, что, с точки зрения изготовителя, вполне логично — зачем усложнять конструкцию, если больше 8 ГБ плата все равно не поддерживает? Поэтому даже если контроллер памяти сможет перекинуть неиспользуемый участок ОЗУ в девятый гигабайт, обратиться к нему все равно будет невозможно. Для этого потребуется 34-разрядный адрес, который физически нельзя сформировать на 33-разрядной системной шине. Точно так же на платах, поддерживающих 16 ГБ, Windows сможет использовать ≈15—15,25 ГБ и так далее.

С переадресацией связан еще один малоизвестный нюанс. Ограничение размера памяти, выполняемое в программе msconfig (или соответствующими настройками конфигурации загрузки) относится не к собственно величине памяти, а к верхней границе адресов используемой памяти.

Рис. 3. Эта настройка ограничивает верхнюю границу адресов, а не размер памяти

То есть если задать эту величину равной 4096 МБ, то память, расположенная выше этой границы (переадресованная в пятый гигабайт, например), использоваться не будет, и фактически объем памяти будет ограничен примерно тремя гигабайтами. Эту особенность в некоторых случаях удается использовать для диагностики того, работает переадресация или нет. Например, автору встретился случай, когда на ноутбуке Windows использовала 3,75 ГБ из четырех, и было неясно: то ли не работает переадресация, то ли память используется на какие-то нужды. Установка флажка и ограничение размера памяти четырьмя гигабайтами привели к тому, что стали использоваться только 3,25 ГБ. Из этого можно сделать вывод, что переадресация работала, а четверть гигабайта, следовательно, использовалась для видеоадаптера или каких-то других целей.

Ну и напоследок стоит сказать о том, что даже при работающей переадресации и 64-разрядной системе несколько десятков или даже сотен мегабайт памяти все равно могут оказаться зарезервированными для оборудования. Причины такого резервирования лучше всего выяснить у изготовителя системной платы, но чаще всего можно предположить, что она используется для встроенных видеоадаптера или контроллера RAID.

Автор статьи является MS MVP — Windows Expert-IT Pro

Какой объем оперативной памяти видит windows ХР

Оперативная память является одним из наиболее важных компонентов персонального компьютера. От ее количества зависит быстродействие ПК, а также скорость обработки различных запросов центральным процессором. Если оперативной памяти становится слишком мало, то частично решить проблему может виртуальная память.

При выборе и покупке определенного количества оперативной памяти пользователю стоит учитывать ее максимальное количество, которое способна поддерживать операционная система и материнская плата. Обычно проблема заключается именно в ОС. Например, Windows XP поддерживает только до 4 гигабайт оперативной памяти (при условии, что установлена 32-х разрядная версия). В том случае если ее будет больше, то ОС просто не будет ее считывать, соответственно, остальная ее часть не будет использоваться. Что касается 64-х разрядных версий, то они способны поддерживать до 128 Гб оперативной памяти. К сожалению, количество максимально поддерживаемой ограничивается еще и версией операционной системы, а не только ее разрядностью.

Кроме того, небольшая часть оперативной памяти расходуется еще и на используемые устройства. То есть если у пользователя установлена 32-х разрядная операционная система Windows XP и 4 гигабайта оперативной памяти, то приблизительно 400-500 Мб будет уходить на обеспечение работоспособности другим устройствам.

Что касается современных операционных систем семейства Windows, то они способны работать при наличии 192 гигабайт оперативной памяти, а Windows Server 2008 поддерживает до 2 терабайт. Подобное расширение стало возможно благодаря использованию виртуального адресного пространства. Каждый пользователь персонального компьютера может более подробно ознакомиться с максимально поддерживаемым количеством оперативной памяти каждой версии ОС Windows на их официальном сайте. В целом, для хорошей работоспособности персонального компьютера сегодня требуется не меньше 4 гигабайт оперативной памяти (при условии если компьютер будет использоваться в качестве своеобразной мультимедийной станции). Если на персональном компьютере будут выполняться только офисные задачи и использоваться только офисные приложения, то вполне хватит 1-2 гигабайт оперативной памяти. Конечно, если пользователь будет использовать ПК как для игр, так и для офисных приложений, то количество оперативной памяти лучше довести до возможного максимума.

Максимально поддерживаемый объём оперативной памяти для разных версий Windows

Речь в этой статье пойдет об оперативной памяти и Windows. А именно о том, сколько оперативной памяти поддерживает и может использовать Microsoft Windows XP, 7, 8.1 и 10. Допустим, у вас медленно работает 1С или тормозят игры и вы решили выполнить небольшой апгрейд. Одним из пунктов стало увеличение объема оперативной памяти.

Как вариант можно предположить, что у Вас уже имеется 4 Гб, и вы решили добавить еще 4 Гб.  Разбираете компьютер, сдуваете вековую пыль, вставляете новенькую свежую память, включаете компьютер, заходите в свойства системы, а там все те-же 4Гб Почему так? Обманул продавец? Не исправная память? Снова виновны Китайцы? Давайте постараемся разобраться с этой проблемой.


🔔 Все операционные системы Windows с разрядностью x86 (32 bit) не важно какая версия, все они видят только до 4 Гб. памяти. Это связано с внутренними архитектурными ограничениями. Стоит отметить, что большинство так называемых «патчей» для использования всего объема позволяют лишь увидеть установленный объем памяти, но далеко не все позволяют его использовать при этом сохраняя стабильность системы! 


И сейчас у Вас наверняка возник резонный вопрос, а сколько же оперативной памяти  видит каждая из версий ОС Windwos? Пришло время ответить на этот простой вопрос…

Сколько оперативной памяти максимально видит разная версия Windows

Windows XP

  • Windows XP x86 (32 bit): 4 гб
  • Windows XP x64 (64 bit): 128 Гб

Windows 7

  • Windows 7 Starter x86 (32 bit): 2 Гб
  • Windows 7 Home Basic x86 (32 bit): 4 Гб
  • Windows 7 Home Premium x86 (32 bit): 4 Гб
  • Windows 7 Professional x86 (32 bit): 4 Гб
  • Windows 7 Enterprise x86 (32 bit): 4 Гб
  • Windows 7 Ultimate x86 (32 bit): 4 Гб
  • Windows 7 Home Basic x64 (64 bit): 8 Гб
  • Windows 7 Home Premium x64 (64 bit): 16 Гб
  • Windows 7 Professional x64 (64 bit): 192 Гб
  • Windows 7 Enterprise x64 (64 bit): 192 Гб
  • Windows 7 Ultimate x64 (64 bit): 192 Гб

Windows 8 / 8.1

  • Windows 8 x86 (32 bit): 4 Гб
  • Windows 8 Professional x86 (32 bit): 4 Гб
  • Windows 8 Enterprise x86 (32 bit): 4 Гб
  • Windows 8 x64 (64 bit): 128 Гб
  • Windows 8 Professional x64 (64 bit): 512 Гб
  • Windows 8 Enterprise x64 (64 bit): 512 Гб

Windows 10

  • Windows 10 Home x86 (32 bit): 4 Гб
  • Windows 10 Home x64 (64 bit): 128 Гб
  • Windows 10 Pro x86 (32 bit): 4 Гб
  • Windows 10 Pro x64 (64 bit): 512 Гб

Как Вы можете заметить, 64-битные версии Windows поддерживает достаточно большой объем оперативной памяти, а вот 32-битный версии к сожалению только 4Гб. Поэтому, перед выбором ОС или покупкой оперативной памяти нужно быть внимательным.

Время подвести итоги

Если Вы решили превратить Ваш компьютер в сервер удаленных рабочих столов или просто выполнить его обновление, то в первую очередь обратите внимание на версию вашей операционной системы. Допустим для Ваших задач необходимо минимум 512мб оперативной памяти на 1 пользователя и Вы планируете подключать всего 10 человек к 1 компьютеру. Вам явно не хватает объема оперативной памяти и у вас все начинает работать еще хуже чем было  раньше. Вы бежите в магазин, покупаете еще 16Гб оперативной памяти, но это Вам не поможет, если у вас 32 битная версия ОС..  

Для того, чтобы узнать, какая версия Windows установлена на вашем компьютере, откройте пункт «Система» в панели управления (или кликните по «Мой компьютер» правой кнопкой мыши и выберите «Свойства»).

🔔 Если вам была полезна наша статья, тогда пожалуйста не забудьте поставить оценку, и поделится ей с друзьями!

Максимум из ОЗУ объемом 4 Гб в Windows XP.

В середине 80-х объема conventional (обычной) памяти вполне хватало для драйверов, резидентных программ и нормальной работы системы.Ещё пять лет назад в домашней системе вполне адекватно смотрелись две планки по 128 Мб, то сейчас и двумя гигами никого не удивишь. Windows Vista дала понять, что памяти много не бывает, и ставить ее стоит столько, на сколько у тебя хватит денег.

Начал расти спрос, а вслед за ним и предложение – производители памяти увеличили ассортимент четырех гигабайтных Dual-Channel Kit’ов, которые вдруг резко перестали казаться таким уж излишеством. И вот тут-то и появились первые проблемы – далеко не у всех системы соглашались принять все предоставленное им богатство.Чем же грозит установка четырех гигабайт памяти и как побороть возможные проблемы.

Установка четырех и более гигов памяти в систему может быть чревата проблемами – далеко не весь ее объем будет виден и, тем более, доступен приложениям. Причина этих неудобств давно известна и, в общем-то, банальна – 32-битные операционки попросту не могут адресовать более четырех гигабайт памяти (2^32=4294967296 – вот предел адресного пространства для такой среды без дополнительных ухищрений. 64-битные редакции, как правило, работают с предоставленным им объемом без проблем – их такие проблемы не затрагивают за счет куда большего адресного пространства. Итак, проблема касается объемов более четырех гигабайт, но как же быть тем, кто установил, скажем, четыре планки по 1 Гб, а получает в лучшем случае 3.5-гигабайта.По идее 4 Гб детище Microsoft должно с легкостью поддерживать! На деле не все так просто. И, возможно, для того чтобы задействовать весь потенциал оперативки,придется пойти на определенные жертвы в лице стабильности, производительности или кардинальной смены ОС.И так перейдём к делу.И начнем с проблем, которые могут тебя настигнуть еще до загрузки операционки.

BIOS

Первое – это неправильное определение ее объема в BIOS’е. Как правило, в этом случае отображается от чуть менее 3 Гб до примерно 3.8 Гб – в зависимости от системы и ее конфигурации. В этом случае с чего стоит начать, – это проверка материнской платы на совместимость. Загляни в мануал к плате – объем поддерживаемой памяти должен составлять не менее 4 Гб. Давайте выясним, куда же деваются «лишние» мегабайты. Дело в том, что все 32-битное адресное пространство невозможно отдать только лишь под приложения. Ресурсы системы, будь то чипсет, PCI-устройства и особенно видеокарта, также нуждаются в «месте под солнцем», то есть им необходимо присвоить определенный диапазон адресов. И если масштаб, в котором может действовать BIOS, составляет всего 4 Гб, то объем памяти, зарезервированный под оборудование, приходится отделять от оперативки. В противном случае неизбежно могут возникнуть конфликты между приложениями и системными устройствами.

Современные материнские платы решают эту проблему несколькими способами. Некоторые модели изначально правильно определяют объем памяти без каких-либо ухищрений – в этом случае тебе повезло . Другие решения требуют нашего вмешательства – как правило, в их BIOS’ах присутствует настройка «Memory Remap Feature» (название может варьироваться). Эта функция переназначает сегмент памяти, выделяемый устройствам, за пределы четырех гигабайт – таким образом, система начинает видеть твою память целиком уже на этапе загрузки. Если же подобной функции или ее вариантов в BIOS’е нет, а система упорно не желает видеть всю память, нам остается только посочувствовать – в этом случае «медицина бессильна». Впрочем, всегда остается возможность обновить прошивку материнской платы до последней версии – вполне вероятно, что это исправит проблему или хотя бы добавит в BIOS вожделенный пункт. Заметим, что в случае с Windows XP SP2 включение данной опции не только не принесет пользы, но и усугубит ситуацию, хотя об этом мы поведаем чуть ниже.

Если матплата не имеет в настройках BIOS Memory Remap Feature, это еще не значит, что она не работает с увеличенным объемом памяти. К примеру, когда мы установили четыре планки по 1 Гб в Gigabyte GA-965P-S3, плата сразу определила ровно 4 гигабайта, при этом в BIOS’е никаких настроек по перемещению выделяемого под устройства диапазона адресов не было.Когда система определила всю доступную ей память, наступает момент перейти к следующему пункту – поддержке на уровне операционных систем. Но еще одно отступление…

PAE и AWE

Вот теперь ты знаешь, что адресное пространство для 32-битной операционки ограничено четырьмя гигабайтами.Более того, о ее решении позаботились задолго до того, как ты впервые подумал о возможности установки в систему четырех гигов – в 1995 году. Именно тогда на арену вышел процессор Intel Pentium Pro с поддержкой технологии PAE – Physical Address Extension…

Что означает эта аббревиатура — вкратце, то данная технология позволяет процессору работать не с 32-битной, а с 36-битной адресацией, теоретически расширяя доступные ему адреса до 2^36 = 68719476736 байт (64 Гб). При этом само адресное пространство остается 32-битным, то есть равным 4 Гб, но за счет измененного отображения на него физической памяти становится возможным использование куда большего ее объема.

Разумеется, поддержка PAE имеется и в Windows – в этом и содержится ключ к детектированию полного объема оперативной памяти. Проблема в том, что не всегда технология включена по умолчанию – для ее использования должна загружаться специальная версия ядра. На данный момент поддержка PAE имеется у следующих операционок:

Windows 2000 Advanced Server

Windows 2000 Datacenter Server

Windows XP (все версии)

Windows Server 2003 (and SP1), Standard Edition

Windows Server 2003, Enterprise Edition

Windows Server 2003, Datacenter Edition

Windows Server 2003 SP1, Enterprise Edition

Windows Server 2003 SP1, Datacenter Edition

Windows Vista (все версии, кроме Starter Edition – у нее поддержка памяти ограничена 1 Гб)

Если твой процессор поддерживает аппаратную антивирусную защиту NX-bit, то, вполне вероятно, что PAE в системе уже включена. Дело в том, что поддержка NX-bit со стороны Windows может работать только при включении данной опции, причем Windows XP SP2 и 2003 Server SP1 в большинстве случаев сами определяют наличие этого бита и устанавливают, какое ядро необходимо загружать. Если же PAE отключена (об этом можно узнать в окне «Свойства системы» или же с помощью утилиты вроде Everest), то ее необходимо активировать. Как это сделать, мы поясним ниже на примере различных операционок.

И о плохом: даже если Windows определит всю доступную память, пользу это принесет, в лучшем случае, твоему самолюбию. Причина в том, что область памяти за пределами 4 Гб в 32-битной среде может быть доступна только приложениям, написанным с использованием интерфейса AWE (Address Windowing Extension). Проще говоря, если PAE – это поддержка большого объема памяти со стороны железа и операционки, то AWE – это ее поддержка со стороны софта. И вся проблема в том, что такой поддержкой обладает разве что софт, оперирующий огромными объемами данных – к примеру, СУБД или программы, выполняющие сложные научные расчеты. Играм или офисному софту это попросту не нужно, соответственно, и прироста производительности в них ты не увидишь. А вот какой-нибудь Microsoft SQL Server получит очень даже ощутимую пользу!

Есть еще один способ «хака» памяти, доступной приложениям. Далеко не все знают, что виртуальное адресное пространство, которое, как ты помнишь, составляет 4 Гб, делится системой ровно пополам: 2 Гб на приложения и 2 Гб под системное ядро. Фактически, ни один процесс не может заполучить в свое распоряжение более 2 Гб памяти – еще одно доказательство того, что рядовому пользователю большой объем оперативки попросту ни к чему. Впрочем, есть способ обойти и это ограничение. Если добавить в файл C:\boot.ini к параметрам загрузки команду /3GB, то память перераспределится следующим образом: объем, выделяемый под ядро, ужмется до 1 Гб, а на процесс станет выделяться уже три гигабайта! Но и здесь мы натыкаемся на пресловутую поддержку со стороны софта – большинство приложений предоставленной им радости попросту не поймет. А поймет ее только софт, скомпилированный со специальным ключом /LARGEADDRESSAWARE – это, опять же, далеко не игры, и даже не любимый «Фотошоп». Заметим, что при использовании операционной системы с поддержкой большого количества памяти (к примеру, до 32 Гб) ключ /3GB сократит количество доступной памяти до 16 гигов. То есть, если в твоем сервере отображается 16 Гб, а установлено гораздо больше – ищи проблему в boot.ini и безжалостно удаляй.

Теперь рассмотрим, что могут предложить нам текущие операционки от Microsoft…

Windows 2000

С этой операционной системой не все гладко: старовата она для работы с большими объемами памяти, и с PAE работают только две версии: Advanced Server и Datacenter Server. Они, впрочем, поддерживают до 8 и 32 Гб памяти соответственно, а это весьма неплохая перспектива для 32-битной среды! Итак, чтобы увидеть четыре и более гига в данной системе (при условии того, что BIOS видит весь объем), достаточно добавить в boot.ini ключ «/PAE» (без кавычек) – после этого ОС должна увидеть всю имеющуюся память. Использовать ее она, разумеется, будет только при наличии соответствующего софта, но ведь если ты используешь такие операционки, то и софт найдется, правда?

Windows XP

Самое интересное в нашем рассказе то, что наиболее популярная ОС от Microsoft хуже всего оснащена поддержкой большого количества памяти. Если не сказать большего – вообще не оснащена. А обиднее всего, что так было не всегда, а лишь до появления пакета обновлений Service Pack 2 – именно в нем возможности PAE были значительно урезаны. Если быть точнее, то во избежание конфликтов доступное адресное пространство было ужато с 36 бит до стандартных 32 бит, а сама PAE стала использоваться разве что для поддержки NX-бита. В результате это приводит к забавным казусам – при включении опции «Memory Remap Feature» BIOS начинает видеть больше памяти, а Windows, наоборот, меньше! К примеру, если до включения опции BIOS определял 3.5 Гб, то после он видит уже 4 Гб, в то время как в Windows определяется всего 3 Гб! А дело все в том, что Memory Remap Feature переносит память за пределы четырех гигабайт блоками по гигабайту. То есть если после выделения памяти под железо BIOS определял 3.5 Гб, то после «выноса» этой памяти за пределы адресного пространства остается всего 3 Гб. Соответственно, если первоначально было видно, к примеру, 2.8 Гб, то «передислоцировалось» уже 2 Гб, и столько же оставалось Windows, которая без нормальной поддержки PAE попросту не могла видеть то, что находилось за пределами ее восприятия.

Отсюда неутешительный вывод: Memory Remap Feature для Windows XP SP2 применять бесполезно – это принесет лишь вред. Только два варианта могут заставить XP видеть 4 Гб памяти – использование версии Service Pack 1 (на что вряд ли кто-то пойдет), либо же установка 64-битной версии операционки.

Windows Server 2003

В сравнении с Windows XP, это детище Microsoft гораздо лучше обучено использованию больших объемов памяти. Единственный представитель линейки, у которого, насколько нам известно, имеются проблемы с режимом PAE – это Windows Server 2003 Standard Edition SP1, причем он не только «болен» той же проблемой, что и XP, но и «заразился» ей точно так же – с выходом последнего сервис-пака. Соответственно, на всех остальных версиях 4 Гб памяти должны определяться элементарно – сразу после включения Memory Remap Feature в BIOS и добавления параметра «/PAE» в boot.ini (последний, возможно, уже будет выставлен).

Windows Vista

Вот мы и дошли до операционной системы, не очень актуальной пока, но претендующей на лидирующую роль в самое ближайшее время. Пользователей Vista проблема поддержки 32-битной версией 4 Гб памяти беспокоит особенно сильно – ведь, по сути, такой объем дорогущей оперативки приобретается именно ради нее. Но здесь мы наблюдаем все то же самое: от 2 до 3.5 Гб видимой памяти вместо четырех, как того требует справедливость. Есть ли решение у данной проблемы? В отличие от Windows XP, действительно есть, и довольно тривиальное!

Файла boot.ini в Vista нет – вместо него конфигурацию загрузки можно редактировать специальной утилитой BCDEdit.exe. Итак, все, что требуется сделать, это войти в командную строку (cmd) и набрать там следующее:

BCDEdit /set PAE forceenable

BCDEdit /set nolowmem on

Первый пункт здесь форсирует поддержку PAE, ну а второй загружает системные файлы и драйвера в область за пределами 4 Гб, высвобождая место в адресном пространстве. После перезагрузки ОС должна увидеть все 4 Гб памяти, ну а стоило ли это затраченных усилий, решай сам. А заодно и протестируй систему на стабильность – вполне возможно, что теперь ее поубавится.

Выводы

Ты уже понял, установка большого объема памяти в систему – не такая уж тривиальная задача, особенно в случае с использованием «домашних» операционок XP и Vista. Инаиболее правильный способ задействовать весь объем оперативки – установка 64-битной операционной системы. Все остальные методы, рассмотренные в статье, можно воспринимать лишь как «хаки», и не удивляйся, если научившись использовать всю доступную память, винда вдруг начнет нещадно глючить. В любом случае , какую версию ОС использовать, – это решать тебе самому, в зависимости от потребностей и целей. Да и 4 Гб памяти, для домашней системы пока многовато …

Редактирование boot.ini, файла с конфигурацией загрузки Windows, осуществляется так:

1) Включи отображение скрытых файлов и папок.

2) Найди boot.ini в корневом каталоге системного диска (обычно C:\) и сними с него атрибут «только чтение».

3) Открыв файл, ты увидишь примерно следующее (в зависимости от ОС):

[boot loader]

;timeout=3

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=»Microsoft Windows XP Professional RU» /noexecute=optin /fastdetect

4) Изменения вносятся в пункт, касающийся необходимой операционки (в данном случае она одна). Если необходимо внести параметр /3GB, то результат должен выглядеть так:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=»Microsoft Windows XP Professional RU» /noexecute=optin /fastdetect /3GB

5) Сохрани файл и выставь параметр «только чтение» обратно.

У ключа /3GB есть аналог и в Windows Vista. Более того, ты можешь гораздо более гибко регулировать, сколько памяти выделять пользовательским процессам, а сколько оставлять ядру. Для этого используй команду «BCDEdit /set IncreaseUserVa МБ», где МБ – число, лежащее в пределах от 2048 до 3072 и составляющее количество памяти, выделяемой на процесс. 4096 минус это число – столько мегабайт будет выделено ядру операционной систем.

P.P.S. Если у Вас есть вопросы, желание прокомментировать или поделиться опытом, напишите, пожалуйста, в комментариях ниже.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *