techwork: (Default)
techwork ([personal profile] techwork) wrote2022-04-30 07:52 pm

Максимум из 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.

[identity profile] http://users.livejournal.com/any_/ 2022-04-30 09:31 pm (UTC)(link)
зачем ты тогда откапывал стюардессу?)))
в голову пришел пока только один вариант где XP может понадобиться — это всякая старая ботва типа каталогов и диагностики для автомастерских.

[identity profile] techwork.livejournal.com 2022-04-30 09:56 pm (UTC)(link)
у меня вон лежит Т40 так вот там вообще не винда.

На самом деле это был подкол.
В реальности XP только и нужна со старым проприетарным железом , но именно потому что дрова к нему писаны так что обращаются к железу напрямую.

Любая виртуальная машина тут бесполезна — так как она как раз и не даёт этого сделать.

И поэтому на такое железо XP ставится на прямую.

То есть единственная задача для которой нужна XP как раз таки и не позволяет использовать виртуализацию.

Смысла ставить XP на виртуальную машину ровно ноль. Там где достаточно виртуальной машины там достаточно и просто галочки в windows 7 , почему в семерке XP mode даже в самом начале оказался практически не нужным и единственный раз когда я его использовал для запуска 16 битных приложений писаных под 4NT. Всё дело в том что в 64 битной семёрке они не работают, а в 32 битном XP mode виртуальной машине штатной для семёрки они работают. Да это было ПО для промышленного оборудования.

Но опять таки это было сделано потому что это были ограничения на обьекте по которым я не мог поставить 4NT а доступ был только с машин локальной сети где по умолчанию 64 битная 7 стояла. И загрузка с флешки заблокирована.

Но полноценная виртуальная XP вообще нигде не нужна тем более с модицицировнным PAE

А вот на старом железе — например ПО для регулировки температурыи сепарации в элеваторе, или ПО для разработки сигнальных процессоров — а вот тут уже и была проблема того что ПО написано криво и утечки памяти — плюс топология схемы стала значительно больше чем раньше, это ещё должно было работать с симуляцией. В итоге и надо было придумать как заставить видеть 8 гигабайт но ОС не менять. Ибо заказывать переписывание программы никто не собирался а выгрузка на симуляцию осуществлялась в 32 битное приложение которое 4 гига выжирало одним блоком. И самое весёлое да сука — гвардиан или сентинел не помню уже ключик в жопе компа.

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

[identity profile] http://users.livejournal.com/any_/ 2022-04-30 10:01 pm (UTC)(link)
погоди, а проброс железа в виртуалку разве не вариант? я всякое говно запихивал — вроде все было без проблем, но конечно какиех-то уж очень промышленных вещей у меня не было.
ну да ладно — тебе видней.

[identity profile] techwork.livejournal.com 2022-04-30 10:20 pm (UTC)(link)
Нет не вариант. Потому что когда это работает тогда виртуальная машина просто не имеет смысл.

Какой смысл ставить виртуальную машину на железо которое тебе и так на прямую доступно ? Что бы что ? А если ты ставишь виртуальную машину на сервак то тебе железо на прямую не доступно.