Page 2 of 4

Re: Эмулятор ядра OS Windows

Posted: Tue Dec 13, 2022 9:10 pm
by Vaicheslav97
По идее если реализовать систему для ХП то можно воспользоваться ихней системой обратной совместимости на ХП она по крайней мере нормально работает.
Если говорить про Win98/95 можно будет части этого проекта включить для портретирования HX DOS Extender, который умеет в работу консольных приложений Вин95 в среде Дос и некоторые зачатки работы графических одно оконных приложений.

Re: Эмулятор ядра OS Windows

Posted: Wed Dec 14, 2022 5:14 pm
by Vaicheslav97
Я думаю это нужно переписать на FASM поскольку есть конфликт лицензии GNU GPL и MASM. Также думаю нужно в вести некоторое разделение поскольку ориентироваться в файле на 36к строк крайне весело, также и с нумерованными метками.
photo_2022-12-14_17-12-01.jpg
photo_2022-12-14_17-12-01.jpg (32.65 KiB)
Viewed 18019 times

Re: KPG

Posted: Wed Dec 14, 2022 7:01 pm
by Jurgen
Глобальная цель данного проекта сделать так, чтобы ОС Колибри и эмулятор стали необходимой и востребованной вещью для подавляющего большинства пользователей ПК и ноутов. Пользователи в основном "сидят" на ОС от Win XP до Win11.

По моему, после доработки эмулятора под Win XP, доработать его для совместимости под Win98/95 не составит большого труда для заинтересованного ассемблерщика.

Re: Эмулятор ядра OS Windows

Posted: Sun Apr 09, 2023 10:10 pm
by qullarwee
Amazing!

Re: Эмулятор ядра OS Windows

Posted: Thu Jul 20, 2023 12:19 pm
by superhacker35
Проект судя по всему сдох...

Re: Эмулятор ядра OS Windows

Posted: Sat Jul 22, 2023 10:28 am
by Jurgen
НЕ сдох.
Проект в работе. Будет сдыхать - напишу сам.
Уже много чего добавилось - идет отладка. А так, в конце года планирую написать что и как с проектом.

Re: Эмулятор ядра OS Windows

Posted: Sat Jul 22, 2023 6:47 pm
by Doczom
недавно взглянул на исходники, Пожалуйста не используйте системные функции 18.11, 64 и 37.2 , они могут быть удалены в скором будущем. 18.11 планируется к удалению в течении года так как устарела, в качестве альтернативы существует 70 и 80 функции.

Re: Эмулятор ядра OS Windows

Posted: Sun Jul 23, 2023 4:48 am
by Jurgen
Спасибо за инфу.
Применение Функций 64 и 37.2 у себя в текущей реализации не нашел.

По поводу 18.11. У него удобная "фича" - указание типа устройства и числа разделов распознанных на жестком диске.
В качестве альтернативы намекаете на функцию 70.5? Тогда непонятно как там определить последовательный список типов устройств - это нужно чтобы сопоставить имена томов Винды с типами устройств и с их разделами.

У Винды идет селекция имен томов по типам контроллера и расположении устройств на контроллере. То есть сначала идут дисководы, потом ЖД, потом CD.
Далее для ЖД сначала берутся данные от всех первичных контроллеров (Primary Master) и (Secondary Master) и о числе их разделов.
Потом берутся данные от всех вторичных контроллеров (Primary Slave) и (Secondary Slave) и о числе их разделов.
Потом составляется глобальный последовательный список Виндовых имен томов по алфавиту для всех устройств и разделов по ранжиру.
Если я забью на это сопоставление, то при извлечении из реестра Винды патчей, с готовыми именами томов, будут проблемы при открытии файлов.

Re: Эмулятор ядра OS Windows

Posted: Sun Jul 23, 2023 9:54 am
by Doczom
насколько я понял, нужно сопоставить полное название раздела в колибри с тем, что в винде. При чтении корневой директории мы получаем список дисков в котором тип устройства можно определить по имени без учёта цифр:
- fd - дискеты
- bd - диски видимые через биос
- hd - ide диски
- cd - ide atapi дисководы
- sd - sata диски
- usbhd - юсб флешки/внешние диски
- sdhci - SD карточки через SDHCI контролер

При получении информации о разделе(например /sd0/4) через 70.5 можно как-то получить имя раздела, скорее всего через установку нужного флага.

Re: Эмулятор ядра OS Windows

Posted: Sat Aug 05, 2023 2:24 pm
by Jurgen
Тут у меня пока такая проблема. Запускаю виндовый lsass.exe в первом процессе и потом services.exe во втором процессе.
Оба процесса для инициализации загружают один и тот же файл реестра.

Так вот, когда второй процесс загружает файл реестра, то в первом процессе происходит сбой из-за нарушения доступа к памяти. :shock:

У меня реализовано открытие файла так - в результате вызова функции 68,27 получаю адрес в памяти и сохраняю его в хэндле и далее работаем, используя этот адрес в памяти.


Выходит так, что полученный адрес файла от функции 68,27 является "временным от системы", который может стать недействительным в любой момент времени?

И чтобы не было проблем с этим файлом, я должен дополнительно перекопировать файл в локальную память процесса?

А если требуется межпроцессорный доступ к файлу, то должен дополнительно перекопировать файл в именованную область памяти?

Поправьте меня, если у меня неверные выводы.

Re: Эмулятор ядра OS Windows

Posted: Sat Aug 05, 2023 6:56 pm
by Pathoswithin
68,27 выделяет память в куче процесса через 68,12 и читает через 70,0. Естественно, другой процесс доступа к ней не имеет, и нужна именованная область.
Если файл не сжат через Kpack, то лучше непосредственно использовать функцию 70,0.

Re: Эмулятор ядра OS Windows

Posted: Sun Aug 06, 2023 5:18 pm
by superhacker35
Jurgen wrote: Sat Jul 22, 2023 10:28 am НЕ сдох.
Проект в работе. Будет сдыхать - напишу сам.
Уже много чего добавилось - идет отладка. А так, в конце года планирую написать что и как с проектом.
Слава богу. А то я боялся - в свои "перделки и свистелки" на Колибри не поиграю :lol:

Re: Эмулятор ядра OS Windows

Posted: Mon Aug 07, 2023 8:28 pm
by superhacker35
Кстати. Я нашёл в интернете сервак, где ты, если интересно, можешь посмотреть исходники Windows XP SP1 и Windows Server 2003 (чисто в качестве вдохновления. Copy-Paste запрещён :) ). Надо в личку ссылку дать?

Re: Эмулятор ядра OS Windows

Posted: Tue Aug 08, 2023 7:03 pm
by Jurgen
Скинь, может быть пригодится. Я иногда пользуюсь базами Wine и ReactOS, если нужно подсмотреть структуры и константы недокументированных функций Nt... Zw..

Re: Эмулятор ядра OS Windows

Posted: Wed Aug 09, 2023 4:55 pm
by superhacker35
Jurgen wrote: Tue Aug 08, 2023 7:03 pm Скинь, может быть пригодится. Я иногда пользуюсь базами Wine и ReactOS, если нужно подсмотреть структуры и константы недокументированных функций Nt... Zw..
Скинул. Лучше смотреть исходники оригинала, чем поделок вроде Wine и ReactOS (осторожно! В исходниках у винды можно в коментариях к коду встретить слово f*ck!!! )