Virtual 86 mode
<processor, programming> (Or "virtual mode" or "virtual 8086 mode") An operating mode provided by the
Intel 80386 and later processors to allow
real mode programs to run under
operating systems which use
protected mode.
In this sub-mode of protected mode, an operating environment is created which mimics the address calculation in real mode.
In virtual 86 mode the segment
MMU is practically turned off and the segment registers exhibit the same behaviour as in real mode.
The
paged MMU, however, still operates.
This means that the one megabyte
address space of real mode can be remapped in four kilobyte
pages to anywhere in the 32 bit
physical address space.
Each page can be protected separately from read or write accesses.
Virtual mode is handled on a per-task-basis, so each
exception (from protection violations or
interrupts) switches the processor back into protected mode.
It is therefore possible to have multiple tasks in virtual mode which run concurrently under the control of an operating system which runs in protected mode.
Most operating system services in
MS-DOS systems are called by
software interrupts, which are a kind of exception.
If an MS-DOS application runs in virtual mode under the control of a protected mode operating system, each call to MS-DOS causes a switch to protected mode.
The operating system emulates the MS-DOS service and switches back to the application in virtual mode.
From the viewpoint of the application nothing differs from real mode.
Microsoft Windows,
Windows NT, and
OS/2 use this feature to implement "DOS-boxes" in which both MS-DOS and real mode
application programs can run.