MS-DOS was the dominant computer operating system of the 1980s and early 1990s. It was the operating system most people loved to hate, yet it remained a bestseller. It formed the foundation of Microsoft’s market dominance of the 1990s and beyond. What were the advantages and disadvantages of MS-DOS?
The joke about MS-DOS
There’s an old joke about MS-DOS that goes something like this: A 16-bit clone of an 8-bit operating system originally written for 4-bit CPUs by a 2-bit company that can’t stand 1 bit of competition.
Like most jokes, it’s the element of truth that makes it funny. MS-DOS was a 16-bit clone of CP/M, a popular 8-bit operating system. The 4-bit part is a stretch. Gary Kildall, author of CP/M, did mess around with Intel 4004 CPUs, but did any of that code end up in CP/M? I don’t know, but it strings the joke along. Apple and Amiga fans certainly see Microsoft as a 2-bit company that can’t stand 1 bit of competition.
The joke also illustrates the knock on DOS. Its design philosophy dates back to the 1970s. You can bolt new stuff onto an antiquated core, but it felt old-fashioned compared to other, newer alternatives.
As a side note, the circumstances under which MS-DOS cloned CP/M are controversial.
Advantages of MS-DOS
The advantage of MS-DOS was familiarity. Thousands of people knew how to program CP/M, and hundreds of thousands of people knew how to use it. MS-DOS was so similar to CP/M that people who could program one could program for the other. And people who could use one could use the other.
MS-DOS did make MS-DOS friendlier than CP/M. A straightforward copy command replaced the arcane pip. Startup commands went into something called autoexec.bat instead of profile.sub. It takes less imagination to figure out that something called autoexec.bat runs stuff automatically.
If you already knew how to use CP/M, the transition to an IBM PC running DOS was no harder than transitioning from Windows 7 to Windows 10 today.
And being written for a 16-bit CPU, MS-DOS could handle larger amounts of memory. More memory meant more room to stretch out and add better functionality for new technology like hard drives. It also allowed bigger, more powerful software like Lotus 1-2-3. So there was a benefit to making that transition.
For most of the 1980s, the advantages and disadvantages of MS-DOS were irrelevant. Whatever system had Lotus 1-2-3 won. Nothing else mattered.
Disadvantages of MS-DOS
Being better than CP/M was less of an advantage in 1981 than it was in 1985. MS-DOS offered no multitasking and no memory protection. You couldn’t flip between your word processor and spreadsheet like you can today. At best, you could load a program like Sidekick that let you pop up a calculator or a notepad while your spreadsheet or word processor paused.
Lack of memory protection meant no security, and less stability. When you only had one task running, memory protection was less of a problem, but once you loaded Windows on top of it and tried to multitask, it became a problem. One program could step on another one and access its memory. That can cause problems.
It also wasn’t intuitive. You booted up and the system presented you with a black screen with gray text and a flashing cursor next to a prompt that read C:\> or A:\>. There was no visual indication whatsoever what you were supposed to do next to interact with the machine.
And although it was a command-line interface, it was nowhere near as powerful as the command line interfaces in operating systems like Unix. Due to the limitations in the way DOS handled memory, there were limits to how much it could scale.
Memory limitations of MS-DOS
And if you want to talk confusing, let’s talk about memory. EMS vs XMS is confusing but isn’t even the half of it.
MS-DOS had conventional memory, which was the memory range from 0 to 640K. It had upper memory, which was haphazard blocks in the range between 640K and 1 megabyte. There was expanded memory, which you accessed 64K at a time via a block of that memory in that 640K-1 megabyte range (and lost for any other use). Then there was extended memory, which lived above the 1 megabyte mark.
None of these memory types were 100% interchangeable. So it was possible to get errors stating you didn’t have enough memory even if you had 16 megabytes of RAM. If you didn’t have enough of the right type, you had to reconfigure your system so it would run.
And forget about plug and play
MS-DOS also wasn’t plug and play. When you added peripherals like modems or sound cards, you had to tell the system where the hardware lived in memory, often with cryptic commands stored in a file called config.sys. Installing a network card or a sound card in a crowded system could turn into a weekend project, especially if you chose off-brand hardware. I bought a Media Vision sound card in 1994 and never did get it to work completely in DOS. It worked, but only as a lowest-common-denominator Sound Blaster clone.
You also had to tell your software about your system, because it couldn’t query the computer to detect what it had. Most games presented a list of questions at launch time about what kind of graphics card and sound card, if any, you had.
Why MS-DOS won
MS-DOS won mostly for the same reason the 8086 CPU won in spite of its limitations. Free markets rarely choose the best technical solution. They almost always choose the cheap, good-enough solution. IBM sold MS-DOS with the IBM PC for $40, versus $240 for CP/M-86. The IBM PC itself wasn’t cheap at all, but the IBM brand name helped it sell, and the cheapest operating system for it was likely to win. Once cheap IBM PC clones appeared, such as the Korean-made Leading Edge Model D, and the Tandy 1000 sold at ubiquitous Radio Shack stores, MS-DOS was unstoppable. It was cheap. It ran on cheap hardware. You could buy it anywhere. And it had abundant software.
Since DOS was itself a clone of CP/M, it didn’t take much to turn CP/M into a clone of MS-DOS. Microsoft engaged in some questionable behavior to keep Digital Research’s competing DOS at bay, signing exclusivity agreements with larger computer makers and announcing new features and functionality years before it had any intention of delivering. After Microsoft reached the top of the mountain, it changed the rules to ensure nobody else could take the same path to success.
But to Microsoft’s credit, it recognized opportunities and seized on them. Rather than sell DOS to IBM, it licensed it, allowing it to license MS-DOS to other companies even while IBM sold its functionally identical PC DOS. As improved versions of Intel’s 8086 CPUs came out, Microsoft extended DOS to take at least some advantage of the new capability. DOS should have been completely outmoded by 1985. Certainly by 1995, Microsoft kept DOS well-hidden, but DOS remained the heart of Microsoft’s consumer operating systems until August 2001 when Windows XP appeared.
Neither IBM nor Microsoft expected MS-DOS to survive on the market much past 1987. I guess you can say they both miscalculated the advantages and disadvantages of MS-DOS, since it dominated the market in one form or another for 20 years. That’s a pretty good run. Windows NT outlasted it, but Windows NT ramped up far more slowly. It also had far fewer disadvantages.