Максимум из 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.
Но я таки установил какое максимальное количество памяти реально может адресовать 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.
no subject
а что по твоему крутится на чипсете как не ОС, раньше это была RTOS threadx, на новых чипсетах minix (жидки в Интел решили сэкономить на выплате лиценз. отчислений)
При этом в UEFI тебе даже не поможет втыкание старой сетевухи типа RTL8139D так как там есть универсальная микропрограмма для работы с любыми сетевухами на стадии их инициализации.
Я в свое время драйвер для DOSa с нуля писал для почти идентичного чипа RTL8139C. Поэтому, кишки устройства сетевых интерфейсов знаю хорошо, но фишка в том, даже с учетом того, что они похожи, наличием RingBuffer-ов на прием и отдачу пакетов, и некоторыми другими общими моментами, все они отличаются адресами и размером управляющих регистров, адресами портов ввода-вывода и.т.п, т.е. отличается в деталях, и именно эти отличия в деталях и дает такой зоопарк драйверов, иначе бы был универсальный драйвер для всех карт и наступила бы гармония и радость с сетевыми интерфейсами.
Чипсет и так знает какое прерывание он выделил карте. Сетевая карта и так идентифицирует себя как сетевая карта при последовательном опросе, диапазонов ввода вывода не так уж и много. И более того обмен данных , хотя и со сбоями возможен и при неправильном диапазоне ввода вывода даже если он не реконфигурируем программно.
Сетевая карта сама себя не идентифицирует в том плане, что должен быть кто-то внешний по отношению к ней, кто бы по VendorID & ProductID идентифицировал её как сетевую карту, я тут речь про PCI устройства говорю, а не про USB сетевые устройства, которые да, оповещают систему, что они за тип устройств.
Хранение ProductID&VendorID, и связанных с этим устройством разных настроек и адресов, и знание того, что это за адреса(управляющие регистры, кольцевые буфферы и.т.п.) это по сути и есть хранение драйверов этих устройств, а их всех хранить накладно в чипсете.
Поэтому либо хранить драйвера только самых распространенных сетевух, либо использовать набор эвристик в надежде, что это не вызовет зависание компьютера или синий экран при вмешательстве в работу сетевой карты.
no subject
советую тебе взять пятьдесят разных сетевух в том числе и намонтированных и ты очень удивишься тому что портов ввода вывода диапазонов в реальности не так уж и много.
Кроме того есть метод определить эти порты последовательным опросом на хост — если отправка пакета не производится — порт закрыт. Если производится порт открыт, таким образом очень легко определяется диапазон портов. Да конечно на уровне ОС высокого уровня это сделать сложно. На уровне более низком — легко.
Стучатся именно изнутри.
Ещё раз если ты хочешь передать данные со скоростью 10 мегабит совершенно пофиг на внутреннюю архитектуру карты — то что нужно для передачи узнаётся очень легко , а адрессное пространство это вообще — если ты на аппаратном уровне общаешься с чипом сетевой карты даже через PCI то ты можешь выделить любое адресное простраство, это не важно. Это лишь отвечает за взаимодействие с ОС — не с железом. Управляющие регистры ? ты о чём ? О переключении режимов симплекс дуплекс, определения скорости ? а это совершенно не важно для самой возможности подключится.
??? ты думаешь что имея на борту кварк на 200 мегагерц и ПЗУ на 64 мегабайта нельзя запустить программу для идентификации сетевого устройства plug&play ? 64 мегабайта это жесткий диск 1993 года. И то туда игры пихали. Работали они нормально и в 1998 году. И сетевые карты там если плуг энплейные спокойной определялись. И 200 мегагерцовый пень тоже тогда был довольно дорогой. Я вот себе не мог такой позволить даже с летними подработками на стройках. А это и есть IntelME
Как это может вызвать синий экран когда компьютер в режиме standby ? Опрос то изнутри проводится в этом режиме. Даже если он ничего не получил при этом, то при включеном режиме он так же не может быть потому что обращения ОС высокого уровня к железу к которому обращается IntelME в это время обладают меньшим приоритетом и просто образуется задержка в несколько тактов пока IntelME не свалит увидев что идёт внешнее обращение. Ты даже ничего не заметишь на частоте 3000 Мгц это например 30 тактов то есть 0,00000001 с Ты заметишь расхождение в 0,00000001с ? Очевидно что нет. ОС тоже не заметит — никто не заметит вообще.