Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
Good morning,
can someone explain to me Real-mode and protected mode and the relation with virtual machines? or maybe a link
Thanks for your time

On 386 and above, the CPU starts out in real mode. It can address only 1 meg of memory... with the exception of flat real mode, in which you go into protected mode, screw up some registers, go back into real mode, and then you can address a full 4 gigs of memory.
In Protected mode, you have different registers, instructions, etc. You can address 4 gigs of physical memory and I think 64 terabytes of virtual memory.
Virtual 8086 (V86) is a subset of protected mode. It is something like real mode, however some instructions are disabled. If it will run in real mode, it will probably run in V86 mode too. You have the ability to map physical memory to spaces in logical memory, too, which is needed to create upper memory or emulate EMS.
The Intel 8086 and 8088 (and the NEC V20 and V30, I guess) could run in real mode only, and thus could only address, or simply access, 1 meg of memory. EMS was most helpful on these systems because it allowed you to address more, but you needed special hardware.
The 80186, which was very very uncommon, was kinda the same... I think.The 80286 (286) could run in real mode as well as protected mode, however could address only 16 megs of memory. No Virtual 8086 mode existed either.
The 80386, and on (386, 486, Pentium, AMD 586, etc) had all 3 modes... real, protected, and V86.
So... virtual machines.
The system runs in V86 mode and maps some physical memory to a logical address space, and whatever is running there doesn't really know or care what's happening, so everything is peachy, usually. Then to switch to another virtual machine, it (the OS, usually) maps a different area of physical memory to the same logical address space.Hope I might have provided you with some info...

Thank you Chris. Yes it does help
Further reading as also clarified some
concepts (I think). Can you confirm if this is right?
32-bit and 16 bit programs under windows 98 run in the system virtual machine. 32 bit are fully protected from another as they are assigned separate memory addresses.16-bit programs on the other hand eventhough they are running in WIN98 virtual machine do not use separate memory address. All 16-bit programs share the same memory space. Finally DOS based program do not share at all and are not running in Windows 98 system virtual machine.
So... what this means is that if I'm running 2x32-bit,2x16-bit and 2-dos base program and a 32-bit program fails, only that program will halt, if a 16-bit program fail then all 16-bit program fail but does not affect the 32-bit programs and finally if a DOS base program fail it does notaffect any of the 32-bit and the 16-bit programs from running
Correct?
Christine

![]() |
![]() |
![]() |

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |