WIN17 - ��� Win32-EXE ��p�������� � OS/2? �� ⠪�� Odin, Open32, INN
From
FAQServer@2:5020/181 to
All on Wed Apr 30 07:37:07 2025
[Q]: ��� Win32-EXE ��p�������� � OS/2? �� ⠪�� Odin, Open32, INNOWIN?
[A]: Andrew Belov (2:5020/181.2)
����⠥��� �ᯮ����� ���쪮 �孮�����:
1. IBM Open32 (� �p�諮� DAPIE ��� DAX)
� ����y NT v 3.5 �����y ᮢ���⨬��� � Win32 ��砫� p���� � ������� Developer API Extensions (DAX). �뫮 p�襭� �p�������� ���� �p���⮢ WLO � MIRRORS (������⥪� ��� ���p�樨 �� Win16 � PM) � p�����뢠�� �� ���樠⨢y p��p����稪�� ����p���� �p��������. ����� � XR_W017 ��y�p� PMMERGE.DLL ��p� �⮯�� �y��権, ���������� PM API �����p묨 Win32-�����ﬨ (Caret'� � �.�.), � ������ PMWINX/PMDDEML - ᡮp���� Win32-API.
���yp�� GUI �p� ⠪�� ���室� ������ �뫨 �p��������� � PM'����y �p���y (���⮬y ���譨� ��� � ��������� ��p���ᥭ���� ��� �� �⫨砫��� �� PM'����), �p������ ����p��� ����p�� � �⠭��p��� *.INI. ��� ��� 楫���� ��p�ᮡ�p���� OS/2-��������p���, �p� �⮬ �� API, �� �墠祭�� Open32, ���p���p, WINMM, ��⠢����� �� ᮢ��� �p��p������.
LX-EXE Open32 OS/2
+---------------+ +--------------+
| �맮�� W32 API| -> [PMWINX.DLL, PMDDEML.DLL] -> | ... |
+---------------+ | PMMERGE.DLL |
|�맮�� OS/2 API| ------------------------------> | |
+---------------+ | DOSCALL1.DLL |
| PM-p��yp�� | | ... |
+---------------+ +--------------+
�� �⮩ �孮����� ��p���ᥭ� �� SmartSuite �� 1996 �. � ����᪨�
MGI PhotoSuite. ���p奤 - 1M ����� ��� PMWINX.
2. ����᪨ - REGISTRY.DLL � WGSS4?.DLL
� ���� 1997 �. IBM ��� �������� ��p�����᪨� PMWINX.DLL � ��y�⨫ ��� "����᪠", �p�⥪�yp�� ������ᨬ�� �� Open32.
REGISTRY.DLL - ���p�������� Win32'�� API Reg*, �������� �� OS/2'譮� �p��p���� p������ � �p�������� "p����p��" (䨧��᪨ �� ��室���� � \OS2\SYSTEM\*.DAT) � �� �p������� � "p����" Prf*. ����砫쭮 p����p �� 業�p��쭮� ���楯樥� � OS/2 for PowerPC (configuration namespace), �� ��
i386 �� �������� ������� ��� ��p�p������ �� Win32.
WGSS4?.DLL - �뫨 �p��y���� ��� ᮡ�⢥���� �y�� ��p�p������ Netscape 4.xx (��p�� ����� 4.03/4.04 �� �ᯮ�짮���� PMWINX.DLL). ��� ᮤ�p��� ⮫쪮 ��p���祭��� ���������⢮ �y��権 Gpi*, ���p奤 - �⭨ ��������.
LX-EXE OS/2
+-----------------+ +--------------+
| �맮�� GDI32, | --------> WGSS46.DLL -------> | PMMERGE.DLL |
| ADVAPI32 | --------> REGISTRY.DLL -------> | DOSCALL1.DLL |
+-----------------+ +--------------+
| �맮�� OS/2 API | ------------------------------> | |
+-----------------+ | *.DLL |
| PM-p��yp�� | | |
+-----------------+ +--------------+
3. Win32-OS/2
� 1997 �. ���쪮 ���y����⮢ p������ ���� Open32: ����⨢, �� �p��� EXE � DLL � Win32 (Portable Executable - PE) �� yᯥ� ������ y�� �� OS/2 (Linear eXecutable - LX), ��� ��y�⨫� �����p�p - PE2LX.EXE. Win32-�p��p���� �p��p�頫��� � OS/2-�p��p���y, ����p�p�����y� ������⥪� ��� ⥬� �� �������, �� � OS/2'譮� �p���. ���yp�� �� ����������/����室����� �p��������� �����p�p�� � �p���y PM.
���⢥��⢥���, �뫨 ����ᠭ� LX-������� USER32.DLL, KERNEL32.DLL � �p�祩 ��⥬騭�, ��⠢��訥 p��⠩� Win32-OS/2. ���y���y�騥 � PMWINX.DLL ���p䥩�� �뫨 �������� �py�y� - ������ WINMM, TAPI32, DDRAW, ... H����p� "����⥬��" DLL, ���p���p, COMCTL32.DLL, �p���������� �����p�p����� �� ������襣� ����p��y⨢� WinNT. �� PE-������⥪� ��
�������� y�⠭����������� Win32-��� ⠪�� ��������� �����p�樨.
LX-EXE (���y祭�� �� PE) LX-DLL (���y祭��� �� PE)
+--------------+ +--------------------+
|�맮�� �����.| ----> |��. ���. Win32-DLL|
| Win32-DLL | +----------||--------+ OS/2
| �맮�� ���. | +------\/----------+ Open32 +-----+
| Win32-DLL | --------> | �맮�� OS/2-DLL | -->[PMWINX]--> |*.DLL|
+--------------+ +------------------+ -------------> +-----+
| PM-p��yp�� + | ���⠩� Win32-OS/2
|Win32-p��yp�� | (KERNEL32, USER32, GDI32...)
+--------------+
�������p� �����p�py �p�������� ��p��������樨 ��祧�� - ��p�� �p���p�� p����� Win32-OS/2 �⠫ Quake II-OS/2, ᤥ����� �� Win32-����p�����. ���p奤 - ����訩 � �p������� � ��p��������樥� ��� Open32 (1.5-4M), �� ������� - �p��樯���쭠� ������������� �����p�樨 ������ (���p���p, ᦠ���) PE-EXE � ���y��⢨� ��pᯥ�⨢ ��-�� �p��p�饭�� p������ Open32 API.
4. Project Odin
��� ��������� Win32-OS/2 �p�諮�� ��p�騢��� yp���� ����p��樨. USER32.DLL � COMCTL32.DLL �뫨 ��p���p���� �� ��室����� �p���� WINE - �������� GUI ��뭥 ��p�ᮢ뢠���� "� �y��", � �室�⢮ � PM'�� �뫮 ����⠭������ ⮫쪮 �y⥬ py筮� ����樨 PM'���� ��p������. �p���p�� ������ ���室� �� RealPlayer/Win32 �� �������� eComStation v 1.00.
PE2LX.EXE �� ��樠�쭮 ������� WIN32K.SYS � PE.EXE. �p���p�������� PE -> LX �p���室�� "�� ���y" ��y�p� KERNEL32.DLL. �����⢨� ������� ��y�⨫� ���� PE2LX (XX2LX.EXE), ���p� ����� �����業��� �����p�樨 ��p����� �ypp���� (�py�� ����p�, p��y���⮬ �� y�p�饭�� LX-���py�稪 � �p��p������� � "墮��" ��� ��p���p���� ������� ��室���� PE-䠩��). ���p�� "����� DLL ��뢠���� � ���� �� �� ��p������� � LX?" ����p� ��襫 �� ��p�� ����.
�� ��p� ⮣�, ��� �p���� ��p������ �� p����� WINE, �� Open32 ��⠫�� ⮫쪮 �����y� API. � 2001 �. Innotek GmbH ���y稫 �� IBM ��室���� WGSS46.DLL �
��� PMWINX.DLL, ��ꥤ���� �� � closed-source ���y�� WGSS50.DLL. � p��y���� �p���� Odin �뭥 y��p����� ⮫쪮 � �y������⠫�� ��p���祭�� OS/2 � PM.
PE-EXE: Odin-p��⠩�: OS/2:
+---------+ +-+--------++--------++ +----------+
|Win32-���|\-> PE.EXE/WIN32K.SYS -> |K| USER32 || WGSS50 | -> | PMMERGE |
+---------+ \ |E| GDI32 ++========++ | PMGPI |
\ +-PE-DLL:-+ |R| WINMM | | MDM |
LX (�� PE): > |Win32-���| <----> |N| DDRAW | | DIVE |
+---------+ / +---------+ |E| ADVAPI32 | -> | REGISTRY |
|OS/2-stub| ----------------------> |L| WSOCK32 | | SO32DLL |
+---------+/ |3| NTDLL ++========++ | DOSCALL1 |
|�����.���| <---------------------> |2| ... || ODINCRT | -> | ... |
+---------+ +-+--------++---------+ +----------+
���p奤 �p� ⠪�� �奬� ����⭮ ��p�� (4-10M + ��p�p��室 ����� �� 10-20%
�� �p������� � NT), ������ �⮣�, �������p���� "�p���" ᨫ쭮 ᪠������ �� ����p�����⢨� � �⠡��쭮��.
5. Odin Custom-Build (INNOWIN.DLL, OPODIN32.DLL, VPCWIN32.DLL, ...)
����y PE.EXE �⬥��� ����室������ ������ �⤥���� USER32.DLL/GDI32.DLL
� �.�., ������ ����������� ᮡ�p��� �p��y��� ���y�� � ���y ���y� DLL � ���py���� � ��� ��� OS/2'�� (��p��������p������) �p��������, ⠪ � ��室�� Win32'��. �p� �⮬ �����y ����y ����� �������� ᮡ�⢥��y� ���y � Registry, ���py� �� ���p��y� ��ᯥp������ p� � "��騬" Odin'��.
��p�� �p���p - Opera/2 v 5.12 (1999-2002) - ��⥫쭮 �p�p���⠭�� ��p� �p�y��p� � OS/2, ᮡp���� VisualAge C++ � p����� LX-EXE � �ᯮ��y�騩 Odin ��p���� � �����p묨 ��⨢�묨 API. ���� ��y�p� Odin'���y� KERNEL32.DLL, ��p� ����� ����py���� Win32-������� � ���������� ����.
OPERA*.EXE (LX) OPODIN32.DLL OS/2
+--------------+ +--------++--------+ +-----------------+
| | ------------> | USER32 ||OPWGSS50| -> | |
| | | GDI32 |+========+ | |
|��p�p������� | PE-DLL | ... || OPCRT | | |
| ���� | +-----------+ | ... ++======+-+ | ���⥬�� |
| | | Win32- | | KERNEL32 + | -> | *.DLL |
| | | ������� |<->| PE-���py�稪 | | |
| | +-----------+ +----------------+ | |
+--------------+ | |
| OS/2-��� | --------------------------------------> | |
+--------------+ +-----------------+
"H���" XX2LX.EXE ��襫 �p�������� � Innotek Virtual PC for OS/2 (2001-2002), ��� ��室���� ᮡ�p����� y�� Visual C++ v 6.0, � p��y���py�騩 PE-EXE ��p�������� ��� OS/2 � ������� �����p�p�. ��� �� �p���� �p����� � KERNEL32 p�y�p ���p�ᮢ � �p����p�� - ��� ��p�p������ ���, ��� ���� ���p�権 �믮���� � �p�������p������� p����� �p�� �p����p (�p����p, ����⢥���, ��p����뢠��� � �y��).
VPC.EXE (PE->LX) VPCWIN.DLL OS/2
+--------------+ +--------++--------+ +-----------------+
| OS/2-stub | ------------> | USER32 ||VPCWGSS | -> | |
+--------------+ | GDI32 |+========+ | ���⥬�� |
| ������p. | +----------+ |KERNEL32|| VPCCRT | -> | |
| | | R0-helper| | ... ++=======++ | *.DLL |
| Win32-��� | |VPCAPP.SYS|<--| p�y�p IOCtl'�� | | |
+--------------+ +----------+ +-----------------+ +-----------------+
� ���y��� �p����� (2004 �.) Innotek �����⥫쭮 �pﬨ� XX2LX.EXE �� �p�y�� "PE.EXE + Win32-���y�� � ����� ����p����". � Java � OpenOffice ᮮ⢥���y�騥 *.EXE ����� �� ⨯����� LX-���py�稪�, ��� �� ���p�
���� ������ ����� ��室���� Win32-EXE � y����⥫� �� ��� ��砫�.
������ �� ������ ����� closed-source p��⠩� INNOWIN.DLL, �����⨢訩 WGSS � ODINCRT (p��⠩� VisualAge), � ��� ᯥ�䨪� ����p���� ��p⮢ �p� ����室����� �뭮ᨫ��� � ������ "��ꥤ���⥫��" ���y��.
SOFFICE.EXE, JAVA.EXE OS/2
+---------------------+ ���p�� �y⥩ � DLL �p�� Registry +--------------+
| �����pᠫ�� |-----------------------------------> | |
| OS/2-stub |-+ | |
+---------------------+ | ��ꥤ���⥫�� ���y�� | |
| | | +----------------------+ | |
| | +->| OOWIN.DLL, J2WIN.DLL | | ���⥬�� |
| H�������p������ | +----------||----------+ | *.DLL |
| Win32-��� | || | |
| | +----------\/----------+ | |
| |<-->| INNOWIN.DLL | ----> | |
| | +----------------------+ | |
+---------------------+ Innotek Win32 Runtime +--------------+
��p�����쭮 �뫨 ����p�⥭� �p����p� ��� �������� � Netscape (Java, Acrobat Reader � Flash 7). ��� ����py���� �� ��饬 �p��⨯� ��� ��������� NPOdin � ��p������ �p�� INNOWIN-p��⠩� � Win32-������y ��� Netscape, ���p� � � ��p��� ����� ����������⢮���� � ��묨 PE-DLL �� Win32-��p�:
LX : PE
Flash 6/Flash 7: :
+------------+-------------------------+--------------+
| NPSWF2.DLL | FLASHWIN.DLL | NPSWF32.DLL |
+------------+-------------------------+--------------+
:
Innotek Kit for Java: :
+------------+-----------+-------------+--------------+
| NPJ2.DLL | J2WIN.DLL | INNOWIN.DLL | NPOJI610.DLL | -> Sun JRE/Win32
+------------+-----------+-------------+--------------+
:
Yuri Dario ��y�⨫ �������� ��� ᠬ����⥫쭮�� ����⮢����� �p����p�� � Win32-�������� - NpWrap. �p����p� p������ � ����� Odin (�� � INNOWIN),
�� �p�⥪�yp� NpWrap �������祭 NPOdin, �� ��ꥤ���⥫�� ���y�� ����� �� �p��y����.
--- INN 2.7.3 (rc1 version)
* Origin: This echo is READ-ONLY. Send %HELP to FAQSERVER at (2:5020/181)