Virtual DOS machine facts for kids
A Virtual DOS Machine (often called VDM) is a special feature on computers that lets you run older programs. These programs were made for DOS or Windows 3.x (an old version of Windows). VDMs help these old programs work on newer 32-bit computers, even when a different operating system is already running.
Contents
How Do Virtual DOS Machines Work?
Virtual DOS Machines usually use a special mode of your computer's main chip (the CPU), like the Intel 80386 or newer ones. This mode makes the old programs think they are running on a much older computer (an 8086). The computer's main operating system then acts like an emulator, pretending to be the old DOS system for the program.
Some VDMs, like the one in Windows 3.x (called 386 Enhanced Mode), can also help run programs that use a more advanced memory system called DPMI.
If an old DOS program in a VDM needs to use a piece of hardware, like a printer or a sound card, Windows gives it a "virtual device driver." This driver pretends to be the hardware, translating what the old program wants to do into commands that the newer operating system can understand.
Where Were DOS VDMs Used?
DOS VDMs first appeared in Windows/386 2.01 way back in 1987. They were also a big part of Windows 3.x (if you used 386 Enhanced Mode) and later versions like Windows 95, Windows 98, and Windows ME.
Just like in Windows 3.x, VDMs could let you run many DOS programs at the same time. This was possible by using a special setting called EMM386 /MULTI.
What is OS/2 MVDM?
Another type of VDM, called MVDM (which stands for Multiple Virtual DOS Machine), was used in OS/2 2.0 and newer versions. These MVDMs were often better than the ones in Windows NT for some tasks. For example, they were better at handling storage devices. While OS/2 1.x pretended to be DOS 3.0, OS/2 2.x acted like DOS 5.0.
Running old Windows 3.1 programs in OS/2 was a bit like the XP Mode feature in Windows 7. These "guest" VDMs allowed old programs to use the computer's hard drives and other parts, and they could even talk to the main operating system using special connections.
Windows NTVDM: Running Old Programs on NT
NTVDM is a feature found in many Windows versions built on the Windows NT system, as long as they are 32-bit. It lets you run older 16-bit Windows programs and 16-bit or 32-bit DOS programs. However, you won't find NTVDM in 64-bit versions of Windows.
The ntvdm.exe program helps by pretending to be the old systems that 16-bit DOS and Windows programs need to run. It uses special files like NTIO.SYS and NTDOS.SYS, which are like smaller, changed versions of the old MS-DOS files. These files help the old programs work with the newer Windows system.
Older 16-bit programs usually run together within one NTVDM process. But if you check "Run in separate memory space," Windows will create a new, separate process for that program. NTVDM also pretends to be the old BIOS functions and parts of the Windows 3.1 system.
For 32-bit DOS programs, NTVDM helps them use a special memory system called DPMI. The wowexec.exe program is specifically for running 16-bit Windows programs. Newer versions of Windows, like Windows 2000, even added some sound card emulation for NTVDM. However, you can't run old 16-bit or DOS virtual device drivers directly.
Since the special "virtual 8086 mode" only works on x86 computer chips, NTVDM had to completely pretend to be an older computer on other types of chips. For example, Windows NT 3.51 could only pretend to be an 80286 chip, but Windows NT 4.0 added the ability to pretend to be a 486 chip.
Security Concerns with NTVDM
In 2010, a computer security expert found a big problem in NTVDM. This problem could let someone who wasn't an administrator gain full control of the computer. This issue affected many 32-bit versions of Windows NT, from older ones to Windows 7.
Before Microsoft released a fix, one way to prevent this problem was to turn off support for 16-bit programs. Of course, this meant you couldn't run those old programs anymore. Luckily, 64-bit Windows versions never had this problem because they don't use NTVDM. After Microsoft released security updates, NTVDM could be used safely again.
Why NTVDM Has Limitations
NTVDM has some limits, especially on Windows XP and newer. For example, it can sometimes crash old 16-bit programs if they try to use too many graphics elements.
Also, on 64-bit computers, the special "virtual 8086 mode" isn't available when the computer is running in its fastest 64-bit mode. This is why NTVDM is not included with 64-bit versions of Windows. So, you can't run 16-bit programs directly on 64-bit Windows. To run them, you often need to use other programs like Windows XP Mode or other virtualization software.
NTVDM is also not great for playing old DOS games on modern computers. It only pretends to have very simple hardware. For example, sound might be limited, and the screen updates slowly for DOS programs. Also, old games often rely on the computer's speed for their timing. Since modern computers are so fast, these games might run too quickly or not work correctly because they can't wait long enough for things to happen.
Related pages
Images for kids
-
COMMAND.COM running in the NTVDM of Windows 8