MS-DOS
Windows NT

Windows NT-based operating systems boot to a kernel whose purpose is to load Windows and run the system. One cannot run Win32 applications in the loader system in the manner that OS/2, UNIX or consumer versions of Windows can launch character-mode sessions.

The command session permits running various supported command-line utilities from Win32, MS-DOS, OS/2 1.x and POSIX. The emulators for MS-DOS, OS/2 and POSIX use the host's window in the same way that Win16 applications use the Win32 explorer. Using the host's window allows one to pipe output between emulations.

The MS-DOS emulation takes place through the NTVDM (NT Virtual DOS Machine). This is a modified SoftPC (a former product similar to VirtualPC), running a modified MS-DOS 5 (NTIO.SYS and NTDOS.SYS). The output is handled by the console DLLs, so that the program at the prompt (CMD.EXE, 4NT.EXE, TCC.EXE), can see the output. 64-bit Windows has neither the DOS emulation, nor the DOS commands EDIT, DEBUG and EDLIN that come with 32-bit Windows.

The DOS version returns 5.00 or 5.50, depending on which API function is used to determine it. Utilities from MS-DOS 5.00 run in this emulation without modification. The very early beta programs of NT show MS-DOS 30.00, but programs running in MS-DOS 30.00 would assume that OS/2 was in control.

The OS/2 emulation is handled through OS2SS.EXE and OS2.EXE, and DOSCALLS.DLL. OS2.EXE is a version of the OS/2 shell (CMD.EXE), which passes commands down to the OS2SS.EXE, and input-output to the Windows NT shell. Windows 2000 was the last version of NT to support OS/2. The emulation is OS/2 1.30.

POSIX is emulated through the POSIX shell, but no emulated shell; the commands are handled directly in CMD.EXE.

The Command Prompt is often called the MS-DOS Prompt. In part, this was the official name for it in Windows 9x and early versions of Windows NT (NT 3.5 and earlier), and in part because the SoftPC emulation of DOS redirects output into it. Actually only COMMAND.COM and other 16-bit commands run in an NTVDM with AUTOEXEC.NT and CONFIG.NT initialization determined by _DEFAULT.PIF, optionally permitting the use of Win32 console applications and internal commands with an NTCMDPROMPT directive.

Win32 console applications use CMD.EXE as their command prompt shell. This confusion does not exist under OS/2 because there are separate DOS and OS/2 prompts, and running a DOS program under OS/2 will launch a separate DOS window to run the application.

All versions of Windows for Itanium (no longer sold by Microsoft) and x86-64 architectures no longer include the NTVDM and can therefore no longer natively run DOS or 16-bit Windows applications. There are alternatives such as virtual machine emulators such as Microsoft's own Virtual PC, as well as VMware, DOSBox etc., unofficial compatibility layers such as NTVDMx64, OTVDM (WineVDM), Win3mu and others.
startend:quotation, length_constraints:number_paragraphs[3]