[Цитировать]

    Metamorf
  • 462
  • Стаж: 9 лет
  • Сообщений: 85
  • Репутация:3

    [+] [-]
  • Откуда: Барнаул
Большинство пользователей Windows убеждены, что 32 битные ОС Microsoft не поддерживают более 4 Гб оперативной памяти. Таким образом, максимум памяти, доступной в Windows x86 — 4 Гб. А с учетом того, что Windows резервирует часть памяти под свои нужды и нужды периферийных устройств (чаще всего для видеокарты), конечному пользователю для использования доступны обычно около 3-3,5 Гбайт памяти.
На первый взгляд все логично – пределом адресации для 32 разрядной адресной шины являются те самые 4 Гб. Во всех официальных документах Microsoft указывает именно этот максимальный размер памяти, поддерживаемый во всех клиентских версиях x86-системе. Хотя на самом деле Microsoft немного вводит всех в заблуждение.
Но есть один интересный режим управления памятью:
Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум 4 ГБ виртуальной памяти.
-- определение взято с Википедии
В Windows ХР, PAE подключается добавлением в строке загрузки (в файле boot.ini) ключа /PAE в строчке загрузки операционной системы:
[boot loader]
timeout=30
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 /PAE
Включить режим PAE в Windows 8 (Windows 8.1) штатными средствами не получится (для этого придется вручную в HEX редакторе править файл ядра ntoskrnl.exe и переподписывать его). Проще всего воспользоваться готовым патчем PatchPae2, который написан энтузиастом Wen Jia Liu. Скачать патч PatchPae2 можно тут.
Патч представляет собой небольшую утилиту командной строки, которая позволяет модифицировать файлы ядра 32 битных версий Windows с целью активация режима PAE, позволяющего использовать более 4 Гб оперативной памяти (до 128 Гб памяти).
Патч PatchPae2 будет работать со следующими ОС:
Windows Vista SP2
Windows 7 / Windows 7 SP1
Windows 8 / Windows 8.1
Установка:
- Распакуйте архив и скопируйте файл PatchPae2.exe в каталог %Windir%\system32 (обычно он находится на диске C:\)
- Запустите командную строку с правами администратора.
- Создадим модифицированную копию ядра Windows 8, поддерживающего работу с памятью объемом до 128 Гб:
PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe
- Создадим новый модифицированный загрузчик, позволяющий отменить проверку наличия цифровой подписи ядра при загрузке:
PatchPae2.exe -type loader -o winloadp.exe winload.exe
Примечание: В случае успешного каждой из предыдущих команд должна появиться надпись «Patched»
- Далее создадим новый вариант загрузки, скопировав текущий и в качестве комментария указав “Windows (PAE Patched)” (или любой другой комментарий):
bcdedit /copy {current} /d "Windows (PAE Patched)"
.
- Далее необходимо скопировать полученный уникальный {boot ID} — {074c09ef-9794-11de-aef9-935525eb400a} (в вашем случае он будет отличаться) и последовательно выполнить следующие команды (в качестве boot ID необходимо использовать полученный вами идентификатор):
- Выберем загружаемое ядро
bcdedit /set {boot_ID} kernel ntoskrnx.exe
- Зададим новый загрузчик
bcdedit /set {boot_ID} path \Windows\system32\winloadp.exe
- Отменим проверку подписи загрузчика
bcdedit /set {boot_ID} nointegritychecks 1
- Зададим вариант загрузки с модифицированным ядром по умолчанию
bcdedit /set {bootmgr} default {boot_ID}
Зададим таймаут загрузки (время отображения загрузочного меню), например 10 секунд
bcdedit /set {bootmgr} timeout 10
Осталось перезагрузить компьютер и, если вы все сделали правильно, появится такой экран. Выберем вариант Windows (PAE Patched), после чего 32-битная версия Windows 8 или 8.1 должна загрузиться в режиме, поддерживающем более 4 Гб оперативной памяти.
.
P.S. В Linux необходимо подключать модуль PAE kernel. В каждом дистрибутиве это делается по своему, к примеру в Ubuntu так:
1 sudo apt-get install linux-generic-pae linux-headers-generic-pae


Последний раз редактировалось: Metamorf (2016-12-07 11:55), всего редактировалось 1 раз

[Цитировать]

    zxen
  • 32
  • Стаж: 9 лет 4 месяца
  • Сообщений: 263
  • Репутация:21

    [+] [-]
  • Откуда: Siberia
Этот патч может помочь и в том случае, если винда не использует всю память, не в смысле то, что овер 4 гб, а бывают глюки, когда винда ни в какую не хочет использовать даже все ~3,2 гб, может зарезервировать даже пару гигов, неизвестно куда. Такое случается.
И.. предостережение, так как патч вмешивается в управление памятью, драйверы некоторых устройств, могут вызвать BSOD. Замечал такое с вебкамерой и тв тюнером.

[Цитировать]

    Metamorf
  • 462
  • Стаж: 9 лет
  • Сообщений: 85
  • Репутация:3

    [+] [-]
  • Откуда: Барнаул
Ну меня конкретно по ХП спросили. Решил выложить сюда заодно сразу и о восмерке.
zxen, Предостережение правильное. Добавлю, что проблемы могут появится и при обновлениях винды.
И еще. ОДИН процесс (приложение) в любом случае не сможет использовать более 4-х Гб.

[Цитировать]

    Xki
  • 2550
  • Стаж: 8 лет 2 месяца
  • Сообщений: 28
  • Репутация:0

    [+] [-]
Metamorf,
Очепятка - В Windows ХР, PAE подключается добавлением в строке загрузки (в файле boot.ini) ключа /PAE
[boot loader]
timeout=30
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 /PAE

[Цитировать]

    Metamorf
  • 462
  • Стаж: 9 лет
  • Сообщений: 85
  • Репутация:3

    [+] [-]
  • Откуда: Барнаул
Xki, Спс, хотел выделить изменения жирным, но внутри тега "code" не работают другие тэги (((

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Патч уже обсуждался здесь, писал под него батник.
@echo off
cd /d %~dp0
md BackUp
PatchPae2.exe -type kernel -o %SystemRoot%\system32\ntkrnlpx.exe %SystemRoot%\system32\ntkrnlpa.exe
PatchPae2.exe -type loader -o %SystemRoot%\system32\winloadp.exe %SystemRoot%\system32\winload.exe
bcdedit /export "BackUp\bcd-backup"
for /f "tokens=2 delims={}" %%a in ('bcdedit /copy {current} /d "Windows (PAE)"') do set id=%%a
bcdedit /set {%id%} kernel ntkrnlpx.exe
bcdedit /set {%id%} path \Windows\system32\winloadp.exe
bcdedit /set {%id%} nointegritychecks 1
color 9e
echo.
echo ###############################################################
echo #######################           #############################
echo ####################### Completed #############################
echo #######################           #############################
echo ###############################################################
echo.
set /p xx=^>^>
color 0f
goto :eof
В принципе, если не нужно меню загрузки без pae, можно просто заменить ntkrnlpx.exe и winloadp.exe, можно просто заменить эти файлы пропатченными, не трогая BCD.

[Цитировать]

    E9N
  • 14238
  • Стаж: 7 лет 8 месяцев
  • Сообщений: 7
  • Репутация:0

    [+] [-]
  • Откуда: (GMT+6)
33110Metamorf,
Но после доустановки дров на мамку (встроенное видео от Интель), винда по пункту PAE -...
Справка в архиве
https://www.dropbox.com/s/pltylsdz1gjidmb/fix128v40.7z?dl=0

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
А у меня один вопрос - а какая крайность вообще ставить 32х битную ОС на ПК с 4 и более ГБ ОЗУ учитывая кучу возможных глюков?
В голову приходит только один вариант - врагам ставить, но только так, что бы потом не нашли ag
P.S. Хотя чисто с теоретической точки зрения интересно.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
33293А у меня один вопрос - а какая крайность вообще ставить 32х битную ОС на ПК с 4 и более ГБ ОЗУ учитывая кучу возможных глюков?
Неполноценная поддержка x86 подсистемы, некоторые программы просто вылетают с ошибкой.
Проблема с драйверами, для некоторых устройств драйвера просто не существуют.
Проблема с не подписанными драйверами.
Ну, и наконец, лишнее потребление ресурсов, например при 4 Gb на x86 можно в большинстве случаев работать без файла подкачки, для x64 этой памяти может не хватить.

[Цитировать]

    stea.61
  • 2490
  • Стаж: 8 лет 2 месяца
  • Сообщений: 656
  • Репутация:67

    [+] [-]
  • Откуда: 61 RUS
33301
33298Ставить Primo RAMdisk ..... Использовать невидимую память.
И использовать его как файл подкачки ?
То-же вариант, но напоминает танцы с бубнами.
Имеющий, правда, целых 2 существенных, на мой взгляд, ПЛЮСА по сравнению с PAE-патчем:
1. Отсутствие проблем с драйверами встроенной графики INTEL
2. Родные подписанные файлы в системе и, следовательно, легитимные загрузка и обновление.

[Цитировать]

    Kon Diter
  • 2891
  • Стаж: 8 лет
  • Сообщений: 14
  • Репутация:0

    [+] [-]
Давненько уже, когда экспериментировал с подобными патчами, столкнулся с тем, что действительно требовательные приложения падают, когда пытаются выйти за границы использования памяти в x86 системах. Как минимум, падал x264 кодек, при использовании высоконагруженных avisynth скриптов, кушающих память.
Отсюда вопрос к тем, кто продолжает экспериментировать с pae на системах, где он изначально отключен: вы пробовали тестировать систему ну хотя бы сжав большой файл при помощи 7zip, задав в настройках большой размер словаря?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Kon Diter,
Патч не снимает ограничения x86 систем - 2 Gb на процесс (для x64 - 8 Tb).

[Цитировать]

    Kon Diter
  • 2891
  • Стаж: 8 лет
  • Сообщений: 14
  • Репутация:0

    [+] [-]
отлично, тогда какой смысл в этом патче, если нельзя задать ограничение в 2gb на процесс для произвольного приложения?

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
Kon Diter, смысл в том, что смысла особо нет. Имхо, это чисто теория "к сведению", просто "так можно", не имеющая реальной практической перспективы. Просто костыль, не решающий проблему, а вроде бы её уменьшающий.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 2 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
33473отлично, тогда какой смысл в этом патче, если нельзя задать ограничение в 2gb на процесс для произвольного приложения?
Это ограничение самого x32 приложения, даже при запуске его в winx64 оно остается, и не зависит от подключенной памяти.

Страница 1 из 2


Показать сообщения:    

Текущее время: 28-Мар 14:57

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы