Os2host32
os2host32 — экспериментальный слой совместимости с открытым исходным кодом, позволяющий запускать неизменённые бинарные файлы OS/2 в среде Windows. По своей идее проект аналогичен Wine, который позволяет запускать Windows-приложения в Linux и других Unix-подобных системах.
Проект пишется на C.
Веб-сайт проекта: https://github.com/neozeed/os2host32
Содержание
Общие сведения
- Автор и разработчик: neozeed.
- Текущий статус: первый публичный релиз (v0_0), проект находится на ранней стадии разработки.
- Целевая платформа: ориентирован прежде всего на Microsoft OS/2 2.0 Beta Release 6 (версия 6.78).
Установка и использование
- Проект должен устанавливаться строго в корень диска C:, в каталог
C:\os2. - Для активации окружения необходимо запустить
c:\os2\env.cmd. - После активации окружения доступен
cmd32os2.exe— 32-битная нативная замена командной оболочки. - В командной строке поддерживаются автодополнение по клавише Tab и история команд.
Технические особенности
Маршрутизация вызовов
Выполнение внешних .EXE-файлов перенаправляется через модуль DOSCALLS.283 в OS2HOST32.
Эмулируемые модули
Проект включает ряд DLL, эмулирующих ключевые системные модули OS/2:
-
DOSCALLS.dll -
KBDCALLS.dll -
VIOCALLS.dll -
SESMGR.dll -
NLS.dll -
PMWIN.dll -
PMGPI.dll
National Language Support
Реализовано независимое ядро National Language Support (NLS, поддержка национальных языков), не зависящее от Win32-загрузчика локали. Поддерживаются, в частности, вызовы:
-
DosQueryCp -
DosQueryCtryInfo -
DosMapCase
а также работа с кодовыми страницами (например, 437 и 850).
SDK-заголовки
В состав проекта входят многочисленные заголовочные файлы, происходящие из Microsoft OS/2 2.0 Beta 2 SDK, в том числе:
-
bsedos.h -
pmwin.h -
os2nls.h
Совместимость
На момент релиза v0_0 проект способен запускать ряд SDK-примеров. В частности, сообщается о работоспособности приложения SarienPM и об эмуляции функции DosBeep.
Как запустить
Проверялось в ReactOS.
1. Скачайте архив.
2. Распакуйте папки
- c386
- os2
в корень диска C:
3. создайте 4 cmd-файла (имена произвольные):
1)
C:\unios2_1.cmd
cd c:\ cd os2 cmd c:\os2\env.cmd
2)
C:\os2\unios2_2.cmd
c:\os2\cmd.cmd cmd32os2
3)
C:\os2\unios2_3.cmd
env.cmd
4)
C:\os2\unios2_4.cmd
cmd32os2
Запускайте эти скрипты по очереди.
Запустится консоль:
[C:\os2>]
Выполните:
>] env.cmd >] cd demos
И попробуйте запустить какую-нибудь программу:
>] neko >] hanoi >] wmchar
Галерея
Запуск в ReactOS
Запуск в Wine в ALT Linux
Запуск в Windows
Ссылки
| OSFree | ||
|---|---|---|
| osFree | Архитектура • План работ • Компоненты • Используемые проекты • Связанные проекты • Экраны • FreePM • L4 • Скриншоты | |
| Загрузчик | [ Последовательность загрузки: поток выполнения • изменение карты памяти ] • Загрузочный сектор • L4Ka::Kickstart | |
| Personalities | OS/2 personality | VIO API • FamilyAPI |
| Win16 personality | Win16API | |
| MVM | MVM API | |
| Разработка | Получение исходных кодов • Сборка • Отладка • Отправка отчетов | |
| API | TPCrt | |
| Сообщество | IRC • Новости проекта | |
| OS/2 | Presentation Manager • IFS • Петиции к IBM | |
| Статьи | Микроядро L4 как основа ядра ОС | |
| Родственные проекты | os2host32 | |
