April 30, 2022

Максимум из XP

понимаю что никому не нужно.
Но я таки установил какое максимальное количество памяти реально может адресовать Windows XP с hal.dll распакованной из HALMACPI.DL_ и справкой ntkrpamp.exe в hex редакторе. Метод ещё времён Windows XP-64 когда люди не хотели её ставить но хотели получить обработку всех 4 гигабайт. А потом и 8 гигабайт с выходом двухгиговых планок.

Максимум это 12 гигабайт на самом деле - не важно 8+4 или 4+4+4 .

И связано это с тем что область выше 12 гигабайт во времена XP считалась служебной. По первых там было адресное пространство шины PCI у таких южных мостов как ICH7 и многих той же эпохи. А во вторых по скольку это адресное пространство служебное то оно использовалось видеодрайверами для обращения к ресурсам видеокарты. Иногда это повыше в адресной структуре но чаще всего 12.

Да если отключить в биосе там где возможно ту часть адресного пространства что используется для работы с железом можно воткнуть в старые в платы 16 гигов и они будут нормально работать. Но вот драйвера под Windows XP работать без синих экранов не будут. И это связано именно с драйверами этой ОС.

Да на такую плату если процессор 64 бита то можно установить Windows 7 64 бита и она будет видеть 16 или 14 гигов и работать с ними без сбоев. Ибо драйвера под неё были написаны по другому.

Но даже если Windows 7 там будет видеть 16 гигов и работать с ними то Windows XP - синий экран.

только если в системе 12 гигов то они будут работать одинаково стабильно и видеть 12 гигов. Опять таки не забыть о модификации ntkrpamp.exe если два и более ядер и ntkrnlpa.exe если одноядерник.

Так что не смотря на то что XP 32 бита в стоке и 4 гига видит не полностью. Она реально может работать с 12 гигами полностью с одинаковой стабильностью. Просто эта функция в ней по умолчанию отключена. А вот больше 12 это то что работать нормально не будет. Более того очень часто сам чипсет не сможет обработать две планки по 8 гигов или 4 планки по 4 гига. При том что одну 8 гиговую он нормально видит.

Потому что вся 900 серия чипсетов интел G31 G41 они все физически ограничены 12 гигами именно своими мостами ICH6,ICH7,ICH8,ICH9, и только ICH10 был избавлен от этого ограничения. Аналогично и у АМД.
Да есть хак который позволяет изменить биос но .... работать нормально это не будет.

Собственно именно поэтому больше 12 гигов Windows XP видеть и не должна - в её эпоху железо настольное не серверное не могло даже адресовать более 12 гигов памяти чисто физически. хотя PAE-36 может адресовать 64 гигабайта, но если просто сделать ключик /PAE в boot.ini вы получите синий экран. Потому что драйвера. режим этот чисто для серверного железа. XP и не должна в нём работать. и отключили его не потому что "злые маркетологи" а потому что не было рыночного соглашения о том как размещать адреса физических устройств и писать драйвера. Исторически всё пришло к 12 гигабайтам хотя в реальности там ещё хвост почти на гиг всегда и больше иногда. А не имея соглашения разработчику пришлось бы нести ответсвенность за падение в синий коврик. Но теперь спустя время можно понять что консенсус по драйверам сложился именно так - 12 гигов это законная часть для оперативной памяти. И если кто то XP ещё использует он может использовать её с 12 гигами и PAE-36 понимая что не будет синих экранов. А больше будут даже если железо уже и новее например P45 с официальной поддержкой 16 гигабайт. Но вот только драйвера для XP не смогут нормально на ней работать с включенной PAE-36 если в системе установлено более 12 гигов памяти. Хотя железо само физически это может. Но только с Win7.