C++ through the lens of MS-DOS!!

Hey folks,

While recently working on a rigorous C++ programming exercise that had multiple classes (including a linked-list class template) with scores of member functions, I dabbled into using the command prompt(MS-DOS) on my Windows computer before I could successfully compile/link the disparate blocks of the huge program. I was positively stunned at the insight I got into the file/directory hierarchy and memory access system. Let's face it, hasn't Windows, in essence, spoiled us all!! I only have a little grasp of the MS-DOS file system; hence, I want to learn and master it.

Does anyone know a very instructive, robust, and user-friendly site that exhaustively teaches the MS-DOS operating system?? Please, furnish it if you do, it would be appreciated. Thanks.
You are not using MS-DOS, you're still using Windows.

To be more precise, you're using the program cmd.exe, an emulator of the DOS shell, cmd.com.

The commands it supports are listed here:
http://ss64.com/nt/
Thanks kbw for the link you provided. It's greatly appreciated.

Drawing from what you wrote, can one infer that the cmd.exe emulator is a subset of MS-DOS? In order words, would platforms that run MS-DOS be automatically cmd.exe compliant? By the same token, can one conclude that the MS-DOS system is a subset of the Unix OS?
DOS and Unix are totally unrelated. They are two distinctly different operating systems. Just about the only thing they have in common is that their primary form of user I/O is through a command prompt.

Windows is yet another, completely different operating system.

cmd is not a subset of MS-DOS because MS-DOS is an operating system and cmd is merely a command prompt/shell.

There are lots of things you could do in MS-DOS that could not be done with cmd.exe. And in fact... that's why more complete DOS emulators (like DosBox) exist.


EDIT:

Also... no... Windows has not spoiled us.
Last edited on
Thx Disch for your informed and prompt reply. I do have some observations and questions.

Windows is yet another, completely different operating system.

I always thought that MS-DOS is the precursor to the ubiquitous Windows and, hence, both OSs would share some common grounds. Going back to the cmd.exe simulator, would you say a complete and masterful grasp of this simulator suffices for all command-prompt memory data access/processing in any Windows-OS application?

It sounds like you're implying that DosBox is better than cmd.exe; right? Do you know of any relevant site(s) that explain(s) the workings of the DosBox emulator?

Is it beneficial to even learn the MS-DOS in this age? If yes, what are the likely spheres of application?

If some of my questions sound trivial, I apologize! I started programming in C++ not too long ago.
Last edited on
I always thought that MS-DOS is the precursor to the ubiquitous Windows and, hence, both OSs would share some common grounds.


A [incomplete and extremely simplified] history of Microsoft Desktop OS's:

MS-DOS
Windows (a la, Win 3.11)
Windows 9x (a la, Windows 95, 98, ME)
Windows NT (a la, Windows NT, 2k, XP, 7)

Each of these could be seen as a "generation" with each "generation" consisting of several different versions.

While there are some similarities shared between each of these generations... in many cases, the differences outweigh the similarities. In some cases, many core workings like the kernel and file system structure are totally different. To say nothing about how they manage memory and external hardware.

Modern Windows (NT family) is 3 generations removed from MS-DOS. It shares practically nothing with it any more.


Going back to the cmd.exe simulator, would you say a complete and masterful grasp of this simulator suffices for all command-prompt memory data access/processing in any Windows-OS application?


Cmd is the command prompt. So you're basically asking "does a masterful understanding of the command prompt suffice for understanding the command prompt?"

So the answer is "yes". But the question doesn't really make sense.

It sounds like you're implying that DosBox is better than cmd.exe; right?


No. You're comparing apples and oranges. They're completely different.

cmd is a [series of] tool[s] used for command prompt functionality on Windows.

DosBox is a program that emulates an entirely different operating system on Windows (similar to how NES emulators simulate a Nintendo system on Windows... or how Wine simulates Windows on *nix)

Again... cmd and DOS have literally nothing to do with each other. The only similarity is that they use command prompts. EDIT: And some of the same commands might be available on both of them /EDIT.

Is it beneficial to even learn the MS-DOS in this age? If yes, what are the likely spheres of application?


It's never harmful to have more information. And understanding older OS's might give you insight into OS design and lower level system mechanics. So I can't say it's totally useless.

But it's not really practical, no. Practically nobody runs DOS anymore. It probably wouldn't even run on most modern hardware.

EDIT: That said... it IS VERY beneficial to learn how to use the command prompt.

If some of my questions sound trivial, I apologize! I started programming in C++ not too long ago.


No need to apologize! You seek knowledge. There is nothing wrong with that!

Though this has little/nothing to do with C++ ;)
Last edited on
Topic archived. No new replies allowed.