Consumer PCs didn’t always run Windows. Before Windows arrived, PCs came with Microsoft’s MS-DOS operating system. Here’s what the command-line environment was actually like to use.
No, MS-DOS was not just like using the Linux terminal or firing up the Command Prompt in a window on your fancy graphical desktop. Many things we take for granted just weren’t possible back then.
The DOS PC Experience
DOS was a command-line operating system with no graphical windows. You booted up your computer and then saw a DOS prompt. You had to know the commands to type at this prompt to launch programs, run built-in utilities, and actually do something with your computer.
You had to know a few commands to get around the operating system. To switch between different drives — for example, to access a floppy drive at drive A: — you’d type something like A: at the prompt and press Enter.
To change directories, you’d use the CD command. To view the files in a current directory, you’d use the DIR command. To run a program, you’d type the name of the program’s executable file at the prompt.
For example, if you picked up a new floppy disk with an awesome new program on it, you’d push the floppy disk into your floppy drive — waiting while the loud magnetic drive read the contents of your disk — and then run commands like the following:
SETUP or INSTALL (depending on the name of the program’s installer)
You’d then go through the installer and install the program — basically just extracting the files — to a folder on your tiny hard drive. You’d often have to swap floppy disks because larger programs didn’t fit on a single floppy, but afterwards you could run the program without using a floppy disk.
You’d then run the C: command to go back to drive C, use the CD command to enter the folder containing your installed program, and run the program with a command like PROGNAME. The program file’s name would have to be that short, too — MS-DOS limited file names to eight characters followed by a period and a three-letter extension. For example, PROGNAME.EXE is the longest file name you could have.
Some programs tried to simplify things for typical users. For example, you had file managers like Norton Commander that provided for viewing and managing files without needing commands. This is the style of most DOS programs you’d find — it’s all about arranging text on the screen.
Forget multitasking; DOS did one thing at a time. When you opened a program, that program took up your entire screen. Want to use another program? You’d need to close the current program and enter the command to open the other program.
To get around this limitation, DOS provided a “terminate and stay resident” (TSR) function. A program that supported this feature could hook into a keyboard shortcut. You’d press the appropriate keyboard shortcut and the current program would shut down and stay in memory. The other program would then load itself from memory.
TSR isn’t really multitasking. The program isn’t actually running in the background. Instead, it’s shut down and there’s a quick way to relaunch it. DOS can only run one program at a time.
This is significantly different from modern shells like the ones found on Linux, which allow you to run programs and services in the background, use multiple text-mode terminals, and do other advanced things. DOS was nowhere near as powerful as that.
Hardware Support and Real Mode
DOS didn’t really support hardware devices in the way operating systems support hardware today. Programs that needed to directly access hardware — for example, a DOS game that wanted to use your sound card to output sound — had to support that hardware directly. If you were developing a DOS game or a similar application, you’d have to code in support for all the types of sound cards your users might have. Luckily, many sound cards were Sound Blaster compatible. You’d use a SETUP program to configure this setting separately for each program you used.
Because of the way DOS worked, programs that wanted to directly access memory and peripherals needed to run in real mode, or real address mode. In real mode, a single program could write to any memory address on the on the computers hardware with no protection. This only worked because you could only run one program at a time. Windows 3.0 brought protected mode, which restricted what running applications can do.
To this day, you still can’t run many DOS games in the Command Prompt on Windows. The Command Prompt runs applications in protected mode, but these games require real mode. This is why you need DOSBox to run many old DOS games.
Windows Was Just Another DOS Program
The original popular versions of Windows — think Windows 3.0 and Windows 3.1 — were actually programs that ran under MS-DOS. So you’d start your computer, see the DOS prompt, and then type the WIN command to launch the Windows program, which gave you that Windows 3-style desktop, known as the Program Manager. Of course, you could have your computer automatically launch Windows by adding the WIN command to your AUTOEXEC.BAT file and DOS would automatically run the Windows command when you booted.
You could exit Windows and go back to DOS, which was actually necessary at the time. People had DOS applications and games that required real mode and couldn’t be run from within Windows.
Windows 95, 98, 98 SE, and ME pushed DOS further to the background. Windows 95 acted like an operating system of its own, but DOS always lurked in the background. These versions of Windows were still built on DOS. It was only with Windows XP that consumer versions of Windows finally left DOS behind and switched to a modern, 32-bit Windows NT kernel.
The Windows desktop is now regarded by many people — even Microsoft themselves — as a relic that’s out-of-date in an age of simplified mobile interfaces and touch screens. But there was a time when the Windows desktop was the new, user-friendly interface.
Image Credit: mrdorkesq on Flickr