Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[NT] Ntoskrnl/ReactOS (Amirul'у & всем - всем - всем) 08.07.03 11:02
Автор: Zef <Alloo Zef> Статус: Elderman
|
Валялась у меня РеактОсь, и решил я ее заюзать...
В чистом виде она мне не нужна, только, как справочник по внутренним структурам мастдая, но вот, хотел я сделать вот что: подсунуть отдельные файлы (начиная с Ntoskrnl) в "родной" Мастдай и посмотреть, что получится.
А не получилось ни XYZа!
Не буду, говорит, за гружаться, пока Ntoskrnl missing or corrupt!
Я, пока не приглядывался, но точки входа у них сильно различаются:
родная по адр 40D010 а в ReactOS - C0001000, ну и далее, я пока не приглядывался (завтра начну).
И так, вопрос:
Может, кто уже пробовал что-нить подобное и добился каких-нить успехов, или, хотя бы имеет идеи на этот счет?
|
|
[NT] Ntoskrnl/ReactOS - мои 5 коп 08.07.03 13:16
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
1. Чексум верный?
2. Проверь, совпадают ли экспорты.
|
| |
[NT] Экспорты должны совпадать, а чексум - ни каким боком, он вообще в 3,5 раза короче. 09.07.03 03:32
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
| | |
[NT] Я имел в виду, что чексум вообще должен быть 09.07.03 22:08
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
В ReactOS могли отказаться от идеи чексуменья ядерных модулей и не считать его. Я бы во всяком случае так и сделал :)
|
| | | |
[NT]А Ntloader можно как-нить задебажить? Есть идеи? 10.07.03 04:59
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
| | | | |
[NT] Имхо только из виртуальной машины со встроенным отладчиком 10.07.03 09:16
Автор: amirul <Serge> Статус: The Elderman
|
Хотя в DDK есть какой-то ntldr_dbg, но я не знаю, что с ним делать :-)
Единственной ВМ со встроенным отладчиком, из тех что я знаю (2 штуки :-)) ) является bochs. Да и там отладчик на любителя. Хотя сырцы то вот они. Бери и меняй по своему вкусу - остальные только спасибо скажут :-)
Кста, о боксе. Там вообще не используется аппаратная эмуляция. То бишь процессор в режиме трейса. Это снижает производительность, но покажите мне хоть одного человека думающего о производительности в ВМ :-) В ВМ лезут не от хорошей жизни. Зато такая обработка инструкций дает массу преимуществ, в числе которых очень гибкая система точек прерывания.
Мдя, немного на рекламу смахивает, тем более что в реальной жизни мне хватает VM Ware :-)
|
| | | | | |
[NT] А если 10.07.03 12:55
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
взять ntldr из самой ReactOS? Что мешает? Или просто интересно эту тему размутить?
|
|
[NT] Похоже МС-овский ntloader согласен грузить только родные ядра 08.07.03 13:08
Автор: amirul <Serge> Статус: The Elderman
|
Как он их одупляет - другой вопрос. Потому как точка входа может быть любой (если в ms-е в проекте винды поменяют порядок объектников для линкера - она тоже поменяется).
> Валялась у меня РеактОсь, и решил я ее заюзать... > В чистом виде она мне не нужна, только, как справочник по > внутренним структурам мастдая, но вот, хотел я сделать вот > что: подсунуть отдельные файлы (начиная с Ntoskrnl) в > "родной" Мастдай и посмотреть, что получится. > А не получилось ни XYZа! > Не буду, говорит, за гружаться, пока Ntoskrnl missing or > corrupt! > Я, пока не приглядывался, но точки входа у них сильно > различаются: > родная по адр 40D010 а в ReactOS - C0001000, ну и далее, я Я, кста, давно заметил, что драйвера (и ядро вот) компилятся с произвольным Base Address-ом, в память они все равно по этому адресу никогда не попадают. А реактос, я так понял, честно указывает куда собирается грузиться.
> пока не приглядывался (завтра начну). Кроме этого в реактосовском ntoskrnl.exe нет битмапов для вывода бегущих кубиков. Если б проблема только в этом, то /noguiboot помогло бы. Так ведь и hal не заменяется. Еще вспомнилось, что структура реестра у реактоса - plain text. А работа с реестром идет именно из ядра. И даже если удастся заставить кернел загружаться, первый же дривер, который попытается считать свою конфигурацию испортит всю малину. Я так подозреваю, что это не единственные грабли, с которыми предстоит встретиться, если пытаться заменить любую часть (как это в свое время делали с юнихом). Может это временно, а может и by design. Типа упор делается на то, чтоб софта внутри НОВОЙ ОС-и чувствовала себя нормально, а не ось была ТОЧНО ТАКОЙ же как NT-я (что было задачей при переписывании юниха).
А начинать лучше сразу с ntldr-а, только вот никак не дойдут руки поставить bochs с внешним отладчиком - все в vmware-и делаю (вот чего там реально не хватает так это встроенного отладчика). А вообще неплохо бы потрейсить ntldr в том месте, где он выводит это самое missing. Это бы могло дать ответ на тот самый "другой вопрос" (что винде мешает загружать чужой кернел). Приятнее всего было бы если это какая-то явная проверка, а не нехватка чего то где-то.
> И так, вопрос: > > Может, кто уже пробовал что-нить подобное и добился > каких-нить успехов, или, хотя бы имеет идеи на этот счет? Похоже пока реактос можно ставить только полностью, совместимостью там еще не очень пахнет. И не уверен, что когда нибудь можно будет вытворять такие вещи. Вот реактосовские примеры я запускал в винде - работают. Скорее всего будут работать и виндовые проги, если они не используют unimplemented функций. Насколько видно из дизайна реактоси там будут также работать и большинство дриверов. Но самые низкоуровневые штуки типа ядра, хала и т.д. - вряд ли. Хотя время покажет...
|
| | |
[NT] Формат реестра не совместимый? Хреново... 09.07.03 04:11
Автор: Zef <Alloo Zef> Статус: Elderman
|
Т.е. если я даже заставлю его грузиться, то с существующим реестром он работать не будет? А как же оно тогда рег-файлы импортирует?
Кстати, я потом Kernel32.dll подменить попробовал - упало!
|
| | | |
[NT] Формат реестра не совместимый? Хреново... 09.07.03 15:59
Автор: amirul <Serge> Статус: The Elderman
|
> Т.е. если я даже заставлю его грузиться, то с существующим > реестром он работать не будет? А как же оно тогда рег-файлы > импортирует? > > Кстати, я потом Kernel32.dll подменить попробовал - упало! Вот кусок system.hiv:
REGEDIT4
[\Registry\Machine\SYSTEM]
[\Registry\Machine\SYSTEM\ControlSet001]
[\Registry\Machine\SYSTEM\ControlSet001\Control]
[\Registry\Machine\SYSTEM\ControlSet001\Control\NLS]
[\Registry\Machine\SYSTEM\ControlSet001\Control\NLS\CodePage]
"10000"="c_10000.nls"
"1252"="c_1252.nls"
"437"="c_437.nls"
"850"="c_850.nls"
"ACP"="1252"
"OEMCP"="437"
"MACCP"="10000"
[\Registry\Machine\SYSTEM\ControlSet001\Control\NLS\Language]
"0401"="l_intl.nls"
"0402"="l_intl.nls"
"0403"="l_intl.nls"
"0404"="l_intl.nls"
"0405"="l_intl.nls"
"0406"="l_intl.nls"
"0407"="l_intl.nls"
"0408"="l_intl.nls"
"0409"="l_intl.nls"
"040a"="l_intl.nls"
"040b"="l_intl.nls"
"040c"="l_intl.nls"
"040d"="l_intl.nls"
"040e"="l_intl.nls"
"040f"="l_intl.nls"
"0410"="l_intl.nls"
"Default"="0409"
"InstallLanguage"="0409"
---
И т.д. Так и импортирует - формат хранения хайвов разный. API - одинаковые
|
| | | | |
[NT] Протупил я 10.07.03 14:52
Автор: amirul <Serge> Статус: The Elderman
|
Не ставил - и не смотрел, просто увидел текстовый файл в инстал каталоге и сделал поспешные выводы :-(
Щас поставил - там все файлы реестра такие же и в том же формате. Теперь попытаюсь прикрутить free-loader к win2k
|
|
|