1 (изменено: Freeman, 26.05.2023 в 09:46)

Тема: Эмулятор KolibriOS для Windows — KEm

KEm — это эмулятор KolibriOS API в Windows.
Обсуждение разработки было начато ещё в той теме, там же были выложены и первые версии программы.
Для сборки используется компилятор от Delphi 7.

На данный момент были сделаны исправления некоторых функций.
Начал делать поддержку сетевых функций и IPC, создание потоков с помощью CreateThread.

Необходимо запускать эмулятор KEm с правами администратора:

Правая кнопка мыши -> Свойства -> Совместимость -> Выполнять эту программу от имени администратора

misc.php?action=pun_attachment&item=114&download=0

Для начала работы при первом запуске программы нужно указать в реестре пути к распакованному образу с дистрибутивом.
Скачать сам образ KolibriOS можно, допустим, здесь или здесь, файл, к примеру, latest-img.7z.

Пример задания путей:

file.php?id=8596

В папке с программой находятся файлы cmd:

  • SetPaths.cmd — откроет нужный раздел реестра Windows, в котором необходимо задать пути как минимум для системного раздела, но можно добавить и другие, например:
    /hd0/1
    /hd0/2
    /kolibrios

  • EnableLowVaAccess.cmd — для версий Windows 7 и новее должен включить возможность использования нижних виртуальных адресов, так как в KolibriOS приложения грузятся по нулевому адресу,
    если у вас Windows 7 или новее, то это нужно обязательно запустить, иначе работать не будет, запускать следует от имени администратора.

Я тестировал эмулятор KEm на 64-битной Windows 7 Home Edition Service Pack 1 и у меня работало даже без EnableLowVaAccess.
Было бы интересно узнать результаты запуска на более современных версиях Windows.

Примерная последовательность действий:

  • Скачать и распаковать архив с эмулятором KEm

  • Скачать и распаковать образ KolibriOS

  • В свойствах программы KEm отметить пункт "Выполнять эту программу от имени администратора"

  • Запустить эмулятор KEm и попытаться выбрать файл для запуска

  • В открывшемся редакторе реестра задать пути к распакованному образу KolibriOS для "/rd/1" и "/sys"

  • Если потребуется, то запустить от имени администратора EnableLowVaAccess.cmd

Прикладываю архив с эмулятором и его исходным кодом KEm_19_12_2021.7z

Post's attachments

Иконка вложений KEm_19_12_2021.7z 77.94 Кб, 82 скачиваний с 2021-12-19 

Иконка вложений в_режиме_админа.png 39.84 Кб, 42 скачиваний с 2021-12-19 

2 (изменено: Leency, 20.12.2021 в 17:02)

Re: Эмулятор KolibriOS для Windows — KEm

Windows 10 x64 20H2.

SetPath почему-то не смогло создать папки. Пришлось вручную.
При запуске KEm.exe ошибка "NtAllocateVirtualMemory error." что с просто, что с EnableLowVaAccess (кстати в данном случае cmd отработал как надо).

3

Re: Эмулятор KolibriOS для Windows — KEm

Leency пишет:

SetPath почему-то не смогло создать папки.

Ну вообще именно создание делает сама программа при первом запуске, но похоже до этого дело не дошло из-за "NtAllocateVirtualMemory error.".
SetPath открывает уже созданный программой раздел.

Leency пишет:

При запуске KEm.exe ошибка "NtAllocateVirtualMemory error." что с просто, что с EnableLowVaAccess (кстати в данном случае cmd отработал как надо).

Винда не даёт нулевую страницу, а кроме как сделать вот так, вариантов не знаю.
Попробуй на Windows 7 64-бит\32 бит.
Я не знаю, как в десятке можно включить.
На данный момент известно, что работает в Windows XP, Windows 7, ReactOS.

В крайнем случае

для тестирования своих приложений можно просто собирать их с подходящим ImageBase и грузить примерно так:
KEm.exe -base 65536 test.kex

например

4

Re: Эмулятор KolibriOS для Windows — KEm

0CodErr пишет:

Винда не даёт нулевую страницу

Где-то была то ли статья, то ли анонс обновления, запрещающего выделение нулевой страницы, но ссылку найти не могу. По времени видел где-то в течение года от сегодняшней даты. У меня (Windows 7) не стоит никаких новомодных обновлений, и нулевая страница выделяется... Или это не про ImageBase = 0? Exe-шники запускаются, короче.

5

Re: Эмулятор KolibriOS для Windows — KEm

Да, это про ImageBase = 0. У меня на семёрке тоже запускается.