А также WindowsNT4/2000 на 80386 (если угодно)...
Инструментарий:
1)Hiew by SEN. (patching)
2)Heaventools PE Explorer 1.95 (для просмотра ресурсов сообщений во 2-ой части setupldr.bin/cmldr)
Почитав форум и порывся в инете, а также покопався в дистрибутиве ХП СП2 нашел где идет проверка на инструкции CPUID/CMPXCHG8B. Наличие оных требуется для установки данной винды. :idea:
Я копался в аглицкой версии XPюши с SP2.
Файл называется SETUPLDR.BIN (он переименовывается в cmldr при использовании WindowsPE).
Для справки: setupldr.bin (260272) состоит из двух частей:
1-ая: бинарный кусок. (19632) до сигнатуры MZ. (REALMODE загрузчик?)
2-ая: обычный PE-файл. (240640)
Вот выдержка из него.
Как патчить - можно догадаться. Отключить эти проверки.
НО! Этого недостаточно. Нужно еще пересчитать контрольную сумму в PE-заголовке, а потом "склеить" 1 и 2-ую части файла. Вуаля!
Дополнительно проверка на CPUID и CMPXCHG8B осуществляется в файле SETUPLDR.EXE (SETUPLDR.EX_) - это обычный PE-файл.
P.S. По аналогии можно сделать и с Windows 2003 Server и с Windows XP c SP1, c русскими версиями наверное тоже можно разобраться.
P.S.P.S. Для ленивых: Патченый файл могу выложить или выслать по почте.
[/]
Подумалось про кеш процессора. Чем кеша больше, тем, (условно)предположим, лучше. Тем больше попадёт софта в проц и, если повзёт, то весь текущий софт будет крутиться в ядре. Чем большее число тактов так будет продолжаться, тем лучше. Что, если сравнить быстродействие операционок с (условно)разным размером ядра на проце с маленьким кешем? Например, протестировать на одной машине(если получиться, то 80486) на winnt3.51/nt4 и win2000/winxp или что там пойдёт. Запустить, например, winrar или ещё что-нибудь с бенчмарком. Только чтобы памяти было достаточно и свап при тестировании не вмешивался. Будет ли система с меньшим размером ядра давать лучшие результаты за счёт меньшего вытеснения ядра приложения из кеша. В качестве тестирующего софта лучше найти что-то такое, что использовало бы побольше функций ядра, а не просто чистую математику или пересылку в памяти.
Или же, размер постоянно используемого ядра будет пренебрежимо мал, чтобы влиять на вытеснение приложения?
а почему условно?
я таки думаю, что будет лучше и гораздо...
вот только не знаю маркировку кэша, чтобы увеличить его до 512Кб, может кто подскажет?
если подскажут и найду, то погоняю и сравню
Или же, размер постоянно используемого ядра будет пренебрежимо мал, чтобы влиять на вытеснение приложения?
Ну кроме размера кэша следует учесть и его скорость, посмотрите на Мендочины и Кламаты хотябы, мендочина может переплюнуть кламат, не смотря на то, что кеша на ней вчетверо меньше(зато fullspeed). В общем тут мороки много получается, да и результаты интересны разьве, что для себя или музея...
Если смотреть на 80486 то тут возникает пара приколов:
1) Зачем медленному процессору такой кеш (для 486 достаточно 256кб вроде ктото их старожилов проверял, 512 ник селу ни к городу для 286)
2) Банально опять упираемся в скорость, кеш по скорости медленен. Его увеличеные размеры не очень то и помогут (хотя довольно интересно увидеть тесты амдшки на 150мгц с 1мб кешем, если это реально вообще)
3) Ну и субъективизм: ну зачем 2к3 на486? (хотя и "Сэр Гетинакс знает толк в редкостных извращениях" (С) blood )
Broadcast message from PAO EC
Power is going down for shutdown NOW!
почитал про шаманство с setupldr - имхо проще 1й этап (копирование файлов) сделать на нормальной тачке, а 2й (собссно бут ядра и поиск/установка устройств/настройка винды) делать на целевом железе. setupldr грузится только при установке с сд... кстати - как вариант запуск установки из-под дос (с копированием файлов на винт): для 2к/хр - просто запуск winnt, для nt4 - winnt /b (вроде при этом копируется минимум файлов установки на винт и пользуется стандартный ntldr), но я особо с таким извращением дел не имел...
по поводу установки осей на старое железо - из своего опыта могу сказать, что для 386sx-20 с 4 метрами рамы все же предпочтительнее вин 95 чем вин 3.11 - сравнивал скорость работы как ворда 6 (16-бит), так и для сравнения на 95й ставил офис 97. на 386 в свое время с 3.11 в ворде жал "вставить картинку" и шел минут на 5 пить чай (пока свопило). с 95-й же все довольно резво бегает... 2-3 странички документы без проблем править... версию о "быстром винте" откидываю - это было 120мбайт какое-то чудо
Уважаемые коллеги, в переписке с нашими англоязычными партнерами помните: whether - который, weather - погода, wether - кастрированый баран!
У некоторых людей торс - это просто разветвитель, позволяющий подключить руки и голову к заднице.
Забыл самое главное!!!
Ведь, при отключенных проверках на нее, инструкция CMPXCHG8B (0F C7 xx) ВСЕ РАВНО встречается и ИСПОЛЬЗУЕТСЯ (~8 раз) в ntoskrnl.exe/ntkrnlmp.exe и прочих вариантах ядра (а может и еще где-то?). Значиться так... Эти точки нужно находить и ПАТЧИТЬ!!! Только после этого система XP/2003 может завестись на 80486 CPU.
Сам попробую это сделать на неделе. Если получиться - обязательно отпишусь.
DOOMED TO WALK THE EARTH AS SLAVES OF THE LIVING DEAD.
sarinn
наивно - ядро проверяет свою CRC и если она неправильная, то вываливается в BSOD. Появилась такая защита, ИМХО, еще в 2000.
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Root
А контрольную сумму (и/или ее проверку) тоже можно подправить. Было бы желание и время ковыряться с ядром.
DOOMED TO WALK THE EARTH AS SLAVES OF THE LIVING DEAD.
sarinn
ее сначала найти надо А копаться в 2МБ исполняемом файле охоты никакой, честно, нету...
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
2 Root
Хорошо. Предположу, что можно сделать драйвер ядра (заглушку), обрабатывающую CMPXCHG8B и всякие вызовы инструкции процессора на invalid opcode... Не буду утверждать что это 100% возможно. Но вдруг?
DOOMED TO WALK THE EARTH AS SLAVES OF THE LIVING DEAD.
2 all
Опытным путем определил минимальное количество оперативки, необходимое для запуска:
1) Windows NT SP6a (ENG) - 6!!! Mb.
2) Windows 2000 SP4 (ENG) - 16!!! Mb.
Ковыряние в кернеле XPSP2 продолжается.
Выяснил что CMPXCHG8B импользуется в ntoskrnl.exe (и его вариантах) 8 раз и в NTDLL.DLL.
Также установил что ядро WinXP при отключенной проверке на CMPXCHG8B/CPUID ошибочно воспринимает *любой* 486-й камень как 386-й и "вылетает" в недрах ntoskrnl.exe с отключенным ACPI (F7/F5):
DOOMED TO WALK THE EARTH AS SLAVES OF THE LIVING DEAD.
Отправить комментарий