Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

The Question

SuperUser reader Rrazd is curious about the history of DOS and how it interacts with the current iterations of Windows:

How much of a role, if any, does MS-DOS play in Windows today?

The Answer

SuperUser contributor JdeBP leaps in with a very detailed and heavily documented answer:

 

The DOS+Windows lineage comprises DOS+Windows all versions up to version 3. 11, DOS+Windows 95, DOS+Windows 98, and DOS+Windows Millennium Edition. It has Windows layered on top of DOS. Entire books have been written on the subject of this layering, and it is the subject of some contention, not least because a lot of people for a fair while in the early to middle 1990s wanted the world to believe that DOS was gone and Windows was the operating system. This is the DOS+Windows bootstrap process. The Windows NT lineage comprises Windows NT 3. x, Windows NT 4. 0, Windows NT 5. 0 (“Windows 2000”), Windows NT 5. 1 (“Windows XP”), Windows NT 5. 2 (some editions of Windows XP and “Windows Server 2003”), Windows NT 6. 0 (“Windows Vista”), and Windows NT 6. 1 (“Windows 7”). It is not layered on top of DOS, works in a completely different way to DOS, and can run DOS applications by dint of an NT Virtual DOS Machine (NTVDM) which is a virtual machine that runs on top of Windows NT rather than the other way around. This is the Windows NT 6. x bootstrap process.

What also doesn’t help is when people mistakenly talk of a “DOS prompt” in Windows NT, as has even happened in answers here. Aside from the fact that it is command interpreters that prompt, not operating systems, this conflates “DOS” with “textual user interface” and “command interpreter”, neither of which are in actuality synonymous with DOS. DOS is a family of operating systems: MS-DOS, PC-DOS, DR-DOS, FreeDOS, OpenDOS, et cetera.

If one has a command prompt window open on Windows NT then one is almost always running CMD, which is Microsoft’s default command interpreter supplied in the box and which is an ordinary, textual user interface, Win32 program. There’s no “DOS”, nor NTVDM. There’s just a Win32 program talking to its Win32 console object. And in fact for many TUI programs that one can run on Windows NT, including all of the tools in Microsoft’s various Resource Kits, there is still no whiff of DOS anywhere in the picture, because these are all ordinary Win32 programs that perform Win32 console I/O, too.

Ironically, given that Windows NT 3.1 was released in 1993, the Windows NT lineage actually is the not-based-upon-DOS Windows-is-the-operating-system system that all of the people in the middle 1990s were trying to convince the world that DOS+Windows 95 was.

And, eighteen years later, we’re still trying to get it through to some people that Windows NT doesn’t work like DOS and never has. ☺

Further reading

Jonathan de Boyne Pollard (2006).  A book list for operating system kernel developers and device driver writers. Frequently Given Answers. Mark E. Russinovich, David A. Solomon, Alex Ionescu (2009).  Windows Internals (5th Edition). Microsoft Press. ISBN 9780735625303. Walter Oney (1996).  Systems Programming for Windows 95. Microsoft Press. ISBN 1 55615 949 8. Matt Pietrek (November 1995).  Windows 95 System Programming Secrets. IDG Books. ISBN 1-56884-318-6. Andrew Schulman (1994).  Unauthorized Windows 95. IDG Books Worldwide. ISBN 9781568841694. Matt Pietrek (1993).  Windows internals: the implementation of the Windows operating environment. Addison-Wesley. ISBN 9780201622171. Andrew Schulman, David Maxey, Matt Pietrek (1992).  Undocumented Windows: A Programmers Guide to Reserved Microsoft Windows Api Functions. Addison-Wesley. ISBN 9780201608342.

Have something to add to the explanation? Sound off in the the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.