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

...
  • Круто! Респект!!
    The best way to predict the future is to create it.
  • Полмегабайта на асме - это круто!
  • Крутой проект. И очень масштабный. Ковырял подобное. Потом изучал сырцы Wine ради описаний ядерных функций, ну и с целью что-то портировать. Терпения не хватило)
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • Спасибо. И ваша цитата очень в тему:The best way to predict the future is to create it. :wink:
  • "Полмегабайта на асме - это круто!"
    Это еще код причесанный без кмментариев и пояснений. Мой рабочий файл содержит 1,7 Мбт :D
  • " Ковырял подобное. Потом изучал сырцы Wine ради описаний ядерных функций, ну и с целью что-то портировать. Терпения не хватило)"

    Я также с этого начал и убил зря три месяца... Это тупиковый путь!!!
    Нужно просто поставить самую первую практическую цель -запустить в Колибри первый файл от Винды -ntdll. Как только начал по этой цели работать, тут же у меня поперло!!! :D Даже азарт появился -добить этот ntdll, заставить инициализироваться. А дальше уже пошло по накатанной....
  • Отличный проект. Хорошо, что занялись этим.

    Я попытался запустить, но:
    WCore вылетает, если запускать с диском, на котором Windows XP Professional 2002 Service Pack 3.
    Ядро я перекомпилировал, поставив 1ГиБ в core/dll.inc (408 и 514 строки в последней ревизии: 9885). Таким образом, менял kernel.mnt и kolibri.krn в raw-диске KolibriOS r9885.
    В процессе также происходит перезапись в 0-ой ячейке памяти (заголовок приложения стирается).

    Да, было написано, что запускать с SP-2, но у меня такой пока нет, а это, может, пригодится (вдруг дело не в Service Pack).
    Attachments
    Screenshot_20221208_163715.png
    Screenshot_20221208_163715.png (105.74 KiB)
    Viewed 19860 times
  • Спасибо за инфу.
    Там сообщает, что какой-то объект не найден. Чтобы узнать какой объект не найден, надо будет трассировать.

    Ваша цитата:
    "В процессе также происходит перезапись в 0-ой ячейке памяти (заголовок приложения стирается)."
    Это нормально. Системные модули Винды постоянно обращаются к памяти по селектору fs:[0]. Поэтому мне пришлось выделить пустое место в 40h, чтобы они не затирали названия функций.
  • Jurgen wrote: Thu Dec 08, 2022 8:32 pm Это нормально. Системные модули Винды постоянно обращаются к памяти по селектору fs:[0]. Поэтому мне пришлось выделить пустое место в 40h, чтобы они не затирали названия функций.
    Это не нормально. fs:[0] не должен указывать туда-же, что и ds:[0]. fs:[0] это TLS данные, для каждой thread свои.
  • Было бы интересно получать список файлов, к которым обращается эмулятор. Может быть сделать лог для этого где-нибудь на /tmp0/1 ?
  • "Это не нормально. fs:[0] не должен указывать туда-же, что и ds:[0]. fs:[0] это TLS данные, для каждой thread свои."

    Может быть для Винды это ненормально... :wink: Но для эмулятора такая реализация селектора является "нормальным", потому-что так задумано.
    Я "разрешил" системным модулям Винды использовать адреса от 0 до 40h для своих нужд.
    В итоге, такое "ненормальное" применение селектора не мешает эмулятору запустить Notepad :)
  • "Было бы интересно получать список файлов, к которым обращается эмулятор. Может быть сделать лог для этого где-нибудь на /tmp0/1 ?"

    Если вас интересует список загружаемых файлов при стартовой инициализации эмулятора, то он есть в исходнике со структурами.

    В ходе формировании среды окружения, системные модули Винды дополнительно автоматически подгружают около десятка модулей.
    Если вас интересует такая инфа, то вы можете сделать свой обработчик данных на основе исходников эмулятора.
  • Есть такая проблема с фукцией номер 0 - создание окна. (См. скрин)
    При создании окна отсутствует такая опция - не показывать его в трее.

    Так как дополнительное окно приходится создавать для субменю и контекстного меню, то в трее появляется новый объект. Это ведет к ненужным расходам процессорного времени на отрисовку лишних элементов.
    Эта проблема есть и у Tinypad.

    Может, кто-то возьмется доработать эту функцию?
    Attachments
    proba3.jpg
    proba3.jpg (85.18 KiB)
    Viewed 19676 times
  • А, не думали/рассматривали ли возможность разработки представленногo решения для запуска программ из Win98/95 (может и Win 3.11)?

    P.S. В рамках запуска слвременного софта в WinXP показывает неплохие результаы проект Core One API
    Думают и возможности запуска Хромиум 100 под Win98.
    Windows 98 Second Edition в обсужении на ru-board.com
  • Who is online

    Users browsing this forum: No registered users and 2 guests