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.