From: JdeBP@jba.co.uk (Jonathan de Boyne Pollard)
Newsgroups: comp.os.ms-windows.advocacy,comp.os.os2.advocacy
Subject: Re: Real Cost of Upgrading to Win95
Date: 12 Aug 1995 15:40:25 +0100
Organization: JBA Software Products, Studley, England.

Tim Smith (tzs@u.washington.edu) wrote:
: Gary McNees <gkm@mars.superlink.net> wrote:
: >>Windows has preemptively multitasked DOS applications since 3.0.
: >  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: >
: >If you want to call that multitasking, so be it. I don't! [...]
:
: You don't call running in separate protected address spaces [...]
: multitasking?

<AHEM>  

DOS+Windows 3.x does not fully separate the address spaces of its individual
DOS boxes.  All DOS boxes share the same copy of DOS and all of the TSRs 
and device drivers that were loaded before WIN.COM was run.  You can see
this for yourself by running MEM, Microsoft Diagnostics, or Quarterdeck
Manifest in multiple DOS boxes under Windows.  

Because of the memory management scheme used by the DOS extender that seats 
the Windows kernel on top of DOS it is possible for Windows applications to 
access this shared conventional memory and thus affect the operation of DOS 
applications running in DOS boxes.

It is interesting to note that DOS+Windows 95 *also* makes all of the
drivers and TSRs loaded prior to WIN.COM being run visible in all of its
DOS boxes, just as DOS+Windows 3.x does, and that the abovementioned tools
give very similar results to DOS+Windows 3.x when run on DOS+Windows 95.  

Contrast this with OS/2 2.x and 3.x, where each individual VDM has a
complete copy of the DOS kernel (a much cut down copy that mostly just
forwards things on to the OS/2 kernel) all to itself.  Each VDM effectively
is a fresh boot of DOS running in v8086 protected mode (hence why
AUTOEXEC.BAT is run once each time a VDM is started).  

Because OS/2 is the DPMI host for Windows when Windows is run on top of
OS/2, the shared conventional memory problem no longer exists.  In fact,
a VDM is treated by OS/2 as simply another process with a linear address 
space, and thus no VDM running either DOS or DOS+Windows applications can 
actually access the memory space used by any other VDM.

