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] ljuser888.livejournal.com 2022-05-01 08:20 pm (UTC)(link)
Чтобы АНБ закладки в чипсетах/процах не стучали есть три выхода:
1. Использовать старые процы/чипсеты кое-какие Оптероны от АМД, и старые ноутбуки от Thinkpad, которые можно проапгрейдить до Core 2 Quad. Такого железа достаточно для большинства задач, кроме игр, документы, чаты, программирование, просмотр видео и.т.п.
2. Использовать новое железо изолировано, т.е. никакого подключения к какой-бы то ни было сети. Никаких встроенных и невстроенных wi-fi/bluetooth, клетка Фарадея для пущей надежности.

3. Использовать новое железо с многоуровневым подключением к проводной сети.
Закладки в чипсетах/процах если и работают, то со встроенным в материнку сетевыми интерфейсами, т.к. чтобы работать со всеми возможными и существующими сетевыми интерфейсами придется запихнуть в чипсет кучу дров для работы с этими интерфейсами, поэтому _маловероятно_, что закладки могут работать со всеми имеющимся сетевыми интерфейсами, а значит у них есть поддержка только того, что на материнке плюс дрова самых распространенных сетевых карт.

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

Поэтому если у вас современный комп, но хотите по максимуму обезопаситься от закладок, то
1. Не использовать встроенные сетевые интерфейсы для подключения к Интернету
2. Использовать USB-Ethernet адаптеры
3. Использовать старый компьютер без IntelME / PSP в качестве роутера к Интернету
4. Настроить шифрованный туннель от современного компа к роутеру, желательно с каким-нибудь самописным шифрованием или цепочкой шифро-алгоритмов
5. Ограничить доступ приложений к шифрованному туннелю

В принципе это отчасти обезопасит современный комп с закладками от АНБ от слива инфы.

[identity profile] techwork.livejournal.com 2022-05-01 08:26 pm (UTC)(link)
1. собственно почему я писал о камнях и прочем где нет закладок — но такого очень мало осталось. 6276 6281 последнее где чисто но это уже 10+ лет.
2. ну да клетка фарадея..... увы. но в корпосети такого быть не может.
3. ты не в теме, Intel ME глубоко насрать с какой сетевой картой работать. не неси ахинеи если не в теме не про ring0 и тем более -1 и про сетевухи ты не в курсе и несёшь и про шифрование ахинею.


поэтому.
1. дяденька ты дурак но с апломбом думающий что он что-то знает.
2. дяденька ты дурак но с апломбом думающий что он что-то знает.
3. дяденька ты дурак но с апломбом думающий что он что-то знает.
4. дяденька ты дурак но с апломбом думающий что он что-то знает.
5. дяденька ты дурак но с апломбом думающий что он что-то знает.

Edited 2022-05-01 20:27 (UTC)

[identity profile] ljuser888.livejournal.com 2022-05-01 09:35 pm (UTC)(link)
3. ты не в теме, Intel ME глубоко насрать с какой сетевой картой работать. не неси ахинеи если не в теме не про ring0 и тем более -1 и про сетевухи ты не в курсе и несёшь и про шифрование ахинею.

Я в свое время контрибутил в проекты coreboot/libreboot, так что давайте обойдемся без того, чтобы предполагать, что знает собеседник и чего не знает. Постоянно слежу за темой от Марка Ермолова и Максима Горячих.

Intel ME далеко не насрать с какой сетевухой работать. Так что разберитесь сначала как Intel ME работает, а потом что-то утверждайте. А то так и продолжим мериться писюнами.

[identity profile] techwork.livejournal.com 2022-05-01 10:43 pm (UTC)(link)
Вообще то я знаю что я говорю. И что то я сомневаюсь что ты реально что внёс в coreboot своего.

Потому что ты тогда бы не нёс чушь .

Если у тебя на машине UEFI то сном твоих сетевух оно и управляет, как и поведением их во время этого сна.
Да конечно если у тебя сетевуха чипсетная то всё что есть у тебя на компе через Intel ME можно вытянуть даже на standby машине, так же можно на ней внести обновление в ОС Intel ME и кстати там не Minix позитив спиздел. Можно внести коррекцию в криптоалгоритмы , ну и многое другое.

Но на материнках и так часто стоят НЕ чипсетные сетевухи. Похуй что они на материнке распаяны. Для режима пробуждения и удалённого управления это не важно. И не знанием этого ты выдал то что ты кидис. Потому что я когда то как раз ставил компы где другие компы были загружаемые дистанционно HP шные станции в те времена когда никакого IntelME не было и даже AMT не родился. И дистанционно управлялись машины благодаря сетевухе которая ставилась в самый обычный слот PCI — просто в Биосе включался режим WakeUP от сетевой карты.

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

Так вот у всех и так в основном распаяные на платах реалтеки стоят. Ну кроме самых последних где даже вайфай в чипсете.

Тем не менее Intel ME с ними прекрасно работает. Просто закладка располагается в реалтеке , точнее это не закладка а формально фича для дистанционной загрузки компьютера в режиме терминала.

При этом в UEFI тебе даже не поможет втыкание старой сетевухи типа RTL8139D так как там есть универсальная микропрограмма для работы с любыми сетевухами на стадии их инициализации.

Если на материнке старый BIOS то да — такая сетевая карта не даст сделать сетевую загрузку, не даст в тихую внести изменения в ОС и программы IntelME и спиздить данные с SSD без включения компа и чтобы Intel ME тебя поимел тебе нужно включить компьютер когда он подключен к интернету. При чем если в сети есть коммутатор который формально не пускает в интернет это не важно, это все равно подключен к интернету. Только воздушный зазор и никакого радиоинтерфейса.


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

Чипсет и так знает какое прерывание он выделил карте. Сетевая карта и так идентифицирует себя как сетевая карта при последовательном опросе, диапазонов ввода вывода не так уж и много. И более того обмен данных , хотя и со сбоями возможен и при неправильном диапазоне ввода вывода даже если он не реконфигурируем программно. Ну и плюс адресация вообще похер так ОС intelME вообще не использует внешнюю адресацию. Собственно если ты проявишь внимательность и окопаешься в дистрибутивах той же семёрки ты найдёшь там универсальный драйвер сетевого адаптера и он будет работать. Как ты думаешь почему ?

Чтобы тебя трахнуть АНБ шнику на самом деле хватит и 10 мегабитной скорости с которой он поставит в закрытую операционную систему нужный драйвер для полноскоростного обмена ( а точнее просто набор диапазонов выставит) . А корявую возможность залезть в IntelME он получит сразу же как ты включишь компьютер.

Кстати то что ты не знаешь такой простой вещи — что в реальности не требуется весь зоопарк драйверов на весь зоопарк карт чтобы карта начала работать и рассуждаешь на уровне ОС выдаёт в тебе что ты немного припиздел про своё участие в coreboot.

Я доже когда то в древности на ROM.BY ошивался и биосы ковырял, но я не говорю что я участник проекта внесший какой то там вклад, хотя препарировал ряд биосов , нашёл адреса смещений, нашёл возможности подмен модулей, и не помню уже что то я там с памятью намудрил а да нашёл как проддержку диска болльше не помню уже 8 вроде гигов врубить что то там с режимами LBA ну реально это маловажная древность для меня, дедушка забыл. Но я микрокод этих модулей не писал, и если они были не в чистом виде то и кода их в диасамблере не видел и понимал что они работают как черный ящик. То есть не надо припёздывать про свою роль, это выдаётся не знанием работы элементарных вещей.

[identity profile] ljuser888.livejournal.com 2022-05-02 12:23 am (UTC)(link)
А вот если связь есть — то как только ты включишь компьютер .... потому что ты не понимаешь, но драйвера требуются ОС а не железу.

а что по твоему крутится на чипсете как не ОС, раньше это была RTOS threadx, на новых чипсетах minix (жидки в Интел решили сэкономить на выплате лиценз. отчислений)


При этом в UEFI тебе даже не поможет втыкание старой сетевухи типа RTL8139D так как там есть универсальная микропрограмма для работы с любыми сетевухами на стадии их инициализации.

Я в свое время драйвер для DOSa с нуля писал для почти идентичного чипа RTL8139C. Поэтому, кишки устройства сетевых интерфейсов знаю хорошо, но фишка в том, даже с учетом того, что они похожи, наличием RingBuffer-ов на прием и отдачу пакетов, и некоторыми другими общими моментами, все они отличаются адресами и размером управляющих регистров, адресами портов ввода-вывода и.т.п, т.е. отличается в деталях, и именно эти отличия в деталях и дает такой зоопарк драйверов, иначе бы был универсальный драйвер для всех карт и наступила бы гармония и радость с сетевыми интерфейсами.


Чипсет и так знает какое прерывание он выделил карте. Сетевая карта и так идентифицирует себя как сетевая карта при последовательном опросе, диапазонов ввода вывода не так уж и много. И более того обмен данных , хотя и со сбоями возможен и при неправильном диапазоне ввода вывода даже если он не реконфигурируем программно.

Сетевая карта сама себя не идентифицирует в том плане, что должен быть кто-то внешний по отношению к ней, кто бы по VendorID & ProductID идентифицировал её как сетевую карту, я тут речь про PCI устройства говорю, а не про USB сетевые устройства, которые да, оповещают систему, что они за тип устройств.

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

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

[identity profile] techwork.livejournal.com 2022-05-02 01:52 pm (UTC)(link)
нет там не minix

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

Кроме того есть метод определить эти порты последовательным опросом на хост — если отправка пакета не производится — порт закрыт. Если производится порт открыт, таким образом очень легко определяется диапазон портов. Да конечно на уровне ОС высокого уровня это сделать сложно. На уровне более низком — легко.

Стучатся именно изнутри.

Ещё раз если ты хочешь передать данные со скоростью 10 мегабит совершенно пофиг на внутреннюю архитектуру карты — то что нужно для передачи узнаётся очень легко , а адрессное пространство это вообще — если ты на аппаратном уровне общаешься с чипом сетевой карты даже через PCI то ты можешь выделить любое адресное простраство, это не важно. Это лишь отвечает за взаимодействие с ОС — не с железом. Управляющие регистры ? ты о чём ? О переключении режимов симплекс дуплекс, определения скорости ? а это совершенно не важно для самой возможности подключится.

??? ты думаешь что имея на борту кварк на 200 мегагерц и ПЗУ на 64 мегабайта нельзя запустить программу для идентификации сетевого устройства plug&play ? 64 мегабайта это жесткий диск 1993 года. И то туда игры пихали. Работали они нормально и в 1998 году. И сетевые карты там если плуг энплейные спокойной определялись. И 200 мегагерцовый пень тоже тогда был довольно дорогой. Я вот себе не мог такой позволить даже с летними подработками на стройках. А это и есть IntelME

Как это может вызвать синий экран когда компьютер в режиме standby ? Опрос то изнутри проводится в этом режиме. Даже если он ничего не получил при этом, то при включеном режиме он так же не может быть потому что обращения ОС высокого уровня к железу к которому обращается IntelME в это время обладают меньшим приоритетом и просто образуется задержка в несколько тактов пока IntelME не свалит увидев что идёт внешнее обращение. Ты даже ничего не заметишь на частоте 3000 Мгц это например 30 тактов то есть 0,00000001 с Ты заметишь расхождение в 0,00000001с ? Очевидно что нет. ОС тоже не заметит — никто не заметит вообще.

[identity profile] techwork.livejournal.com 2022-05-01 10:44 pm (UTC)(link)
То что ты насочинял про то что достаточно воткнуть не ту сетевуху что распаяна на материнке это очевидный бред. При работащем компьютере это не даст ничего на любом железе где IntelME или AMD PSP есть. А при выключенном — ну да есть варианты когда АНБшник ничего не сможет сделать — но каков сокральный смысл такой конструкции ?