From: Theodore Ts'o (tytso@ATHENA.MIT.EDU)
Date: 09/01/92


From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
Subject: Re: VM386?  Possible?
Date: Tue, 1 Sep 1992 21:23:03 GMT


   From: lm@slovax.Eng.Sun.COM (Larry McVoy)
   Date: 1 Sep 1992 17:08:52 GMT
   Reply-To: lm@sun.UUCP (Larry McVoy)

   Forgive my ignorance, but is it possible to run a 386 program on a
   virtual 386 on a real 386? The reason I ask is this: aren't a lot
   of dos programs running in 386 mode? So even if you got VM86 working
   and got a dos emulator running, wouldn't things like windows apps
   not run at all? Or is everything still running as an 8086?

There's no such thing as a "virtual 386 mode" on a 386. If there was,
they'd have to be infinitely stacking, because you a program running on
the virtual 386 might want to run a virtual 386 mode on top of the
virtual 386 mode, and so on, and so on, and so on.....

Actually, most DOS programs don't run in 386 mode. There are two
reasons for this. One is that is takes a fair amount of effort to write
a 386-mode program, since DOS runs in 16bit mode, and so you would need
to use a so-called "DOS extender" which translates 32 bit subroutine
calls to the 16-bit calls necessary to invoke the DOS routines. The
other reason why most programs aren't written in 386 mode is that a lot
of people don't have 386 machines; they have 8086 or 80286 machines, and
if your program is 386-only, you've just locked out a good segment of
the market place from being able to use (and therefore buy) your
program.

It's true that you won't be able to run Windows on a VM86 emulator ---
but that's because it's trying to be an *operating system*, and Linux has
control over all of the page tables, interrupt descriptor tables, etc.,
and it cannot reliquish them over to Windows without completely messing
up Linux.

But for the majority of the PC *applications*, this shouldn't be a
concern; they tend to be written using only 8086 code.

                                                - Ted