Subj : Family executables again
To   : Mike Luther
From : Jonathan de Boyne Pollard
Date : Sat Oct 27 2001 04:37 pm

ML> He said that after close consultation (but not with whom!) they
ML> removed I think he said four files from all their WIN-NT operations:

ML>      OS2.EXE
ML>      OS2.DLL
ML>      POSIX.EXE
ML>      (?) one more

ML> Their reasoning was that in the early days of WIN-NT, any program
ML> which was strictly a POSIX compliant code operation that originated
ML> in OS/2,could, for example be run with OS2.EXE and the corresponding
ML> .DLL!   Their security analysis of the threat of OS/2 to them was so
ML> great for simplistic programs which could be uploaded to them which
ML> might be run under OS/2 shim in this way that it was un-acceptable!

They were idiots, with no clue about proper threat assessment.  If that was a
verbatim report of their rationale, they were also idiots with no clue about
what the OS/2 and POSIX subsystems are, and how they do not relate to each
other in the slightest.

ML> Is this a similar scenario, to what we know, as the early WIN-95
ML> programs which will run under OS/2 vis the WIN32S.DLL if they do not
ML> require, for example, past version 1.25 of it?

At one level of abstraction: yes.

OS2.EXE and OS2.DLL facilitate running 16-bit OS/2 programs (/i.e./ programs
written to run on Microsoft OS/2 version 1.x) on Windows NT.  There are a whole
load of things that such programs cannot do because the "OS/2 subsystem" in
Windows NT does not support doing them, however.  Several system API function
calls simply return errors to the calling program.  There is also no support
included in Windows NT for 16-bit OS/2 programs that use (16-bit) Presentation
Manager.  Only textual 16-bit OS/2 programs are supported.  There were,
supposedly, aftermarket products from other companies that provided 16-bit
Presentation Manager.

32-bit OS/2 programs, of any sort (graphical or textual), have *never* been
supported by any version of Windows NT.

The "POSIX subsystem" is for support of POSIX programs.  However, this does
*not* provide the ability to take binaries from Unix systems and run them
directly on Windows NT.  This provides *source-level* POSIX compatibility.  To
run a POSIX program on Windows NT, one takes the source of the program and
compiles it with Microsoft's C/C++ compiler, using a special set of headers,
libraries, and compiler and linker switches, to generate a PE format executable
that classifies itself as a "POSIX" program (rather than a Win32 program).

The primary /raison d'�tre/ of the "POSIX subsystem" in Windows NT was
marketing.  It allowed Windows NT to meet the requirements imposed by various
U.S. Government procurement regulations, which specified POSIX compatibility.

� JdeBP �

--- FleetStreet 1.22 NR
* Origin: JdeBP's point, using Squish <yuk!> (2:257/609.3)