Old obsolete computer on wood table
Shutterstock/Santi S

In late 1980, someone at IBM had a pretty neat idea. Responding to the popularity of “personal computers” like the Apple II and the TRS-80, IBM decided to get into the game. After a fast-paced development, IBM announced the first IBM Personal Computer 5150 in August 1981. To hit the market quickly, IBM mostly used off-the-shelf parts and licensed or purchased other components from third parties. One of those was the operating system.

86-DOS to PC-DOS

Seattle Computer Products had previously developed QDOS, or the “Quick and Dirty Operating System,” but renamed it to “86-DOS” in 1980 when the company wanted to sell the software to others. No one wants to buy a product that’s “Quick and Dirty.”

Soon after, Microsoft purchased 86-DOS and then turned around to license 86-DOS to IBM as PC-DOS, the operating system for the forthcoming IBM Personal Computer.

On the surface, DOS may look like Unix, but actually DOS followed a different path. The 86-DOS was initially designed to be similar to another early personal computer operating system: CP/M by Digital Research. And CP/M itself borrowed ideas from older DEC operating systems. CP/M provided commands, such as DIR to display a list or directory of files, TYPE to display the contents of files, ERA to erase files, and REN to rename files. CP/M also used 8.3 filenames, meaning files could have names of up to eight characters, and an extension of up to three characters.

So it’s not surprising that the first versions of 86-DOS included similar commands like DIR, TYPE, ERASE, and RENAME. In addition, 86-DOS added other commands, such as a simple COPY command, a CHKDSK utility to check for errors on disks, and the EDLIN line-based editor.

After Microsoft updated 86-DOS to become PC-DOS, DOS also included other Microsoft tools, including a version of the BASIC programming language. BASIC was important for the time, because IBM needed to compete against the popular Apple II personal computer, which already featured a BASIC programming environment.

Further, PC-DOS 1.0 also provided COMP to compare two text files, separate DATE and TIME commands to set the system date and time, MODE to configure external devices, DISKCOMP to compare the contents of two floppy disks, and DISKCOPY to copy the contents of one floppy disk to another.

That first version of IBM PC-DOS also supported running “batches” of DOS commands, listed in a file called a batch file. And to support writing batch files, PC-DOS also added a REM command to add comment (“remarks”) to batch files, and a PAUSE command to prompt the user before continuing the batch file.

Microsoft eventually emerged from IBM’s shadow and released MS-DOS on its own. While IBM later released a separate PC-DOS, and other vendors like Digital Research’s DR-DOS tried to enter the market; most DOS versions were really MS-DOS. For the rest of DOS history, when you refer to “DOS,” you probably mean MS-DOS.

DOS and Killer Apps

With the birth of DOS came the rise of DOS applications. DOS applications reigned throughout the 1980s and into the 1990s, especially in offices. If you can think of a niche, there was probably a DOS application for it. And never mind that DOS applications primarily ran in text mode, only adding graphics modes after VGA became widespread in the late 1980s. Applications leveraged the text mode presentation of DOS, and users mostly loved it.

Several programs are notable for their popularity at the time. WordStar gained an early lead in word processing, mainly due to its popularity on CP/M, until later being displaced by WordPerfect. Lotus 1-2-3 was the top spreadsheet application and arguably a “killer app” for the PC during the 1980s and into the 1990s.

And there were the games. DOS had a long list of game spanning dozens of genres: Tetris dominated as the classic falling-blocks game. X-COM and Civilization were impressive turn-based strategy games. Warcraft was an immersive real-time strategy game. Star Wars X-Wing (and the follow-up game, Star Wars TIE Fighter) brought the popular flight sim genre into a sci-fi setting. Scorched Earth let you battle friends with tanks. Lemmings was an addictive puzzle game. SimCity let you build cascading cities. Commander Keen let you jump around a two-dimensional world, while Wolfenstein 3D and Doom spawned a hundred other first-person shooter clones.

DOS remained popular because it presented a platform for developers to create new applications and games. And those applications quickly became de facto standards. If you needed to do work from home, you needed to have WordPerfect and Lotus 1-2-3. And that meant you needed to run DOS.

The DOS Command Line

But while DOS mostly ran in text mode and included a command line interface, you weren’t really meant to live at the command line. DOS took a different approach than Unix, which featured a rich command line environment with powerful commands, including grep, awk, sed, and nroff to manipulate and process text files. DOS provided a few command line tools to let you modify the system, but otherwise had a limited command line feature set. Rather, DOS expected you to be at the command line just long enough to run the next program or game.

That’s why DOS never really focused the command line on the user. DOS 1 included some 20 commands to do basic system and file maintenance like DATE, TIME, FORMAT, COPY, ERASE/ DEL, and DIR. DOS 2 brought a host of new commands, although several were to support the new concept of “subdirectories,” a necessary addition with the introduction of the 10MB hard drive on the IBM PC-XT and other vendors. For example, DOS 2.0 was the first version of DOS to introduce MD / MKDIR, CD / CHDIR, and RD / RMDIR. This release also provided new commands to process batch files, such as ECHO, IF, GOTO, SET, and FOR.

DOS 4 only added two commands, MEM and TRUENAME. DOS 5 added over a dozen new commands, but again, many of these focused on system maintenance and Windows support. Aside from neat features like the new QBASIC and associated EDIT program, DOS 5 really only brought system-level commands like LH / LOADHIGH, LOADFIX, EMM386, and UNDELETE / UNFORMAT. DOS 6 added less than 10 new commands, mostly to keep your system running well, like DEFRAG, MSCDEX, SCANDISK and SMARTDRV.

Microsoft remained so focused on applications that it eventually replaced MS-DOS with another application-centric operating system. Windows 1 released in late 1985 in response to Apple’s Macintosh, released 1984. Windows 1 generated some interest, but it wasn’t very stable and didn’t have many features. Windows 2 debuted in 1987 with much needed functionality, but it was Windows 3 in 1990 and Windows 3.11 in 1993 that gave rise to Windows as a serious platform. Microsoft effectively “killed” MS-DOS as a platform in 1995, when it released Windows 95, the first version of Windows to not require a separate version of MS-DOS.

DOS Rises Again

In 1994, in the run-up to Windows 95, Microsoft made a lot of noise that the next version of Windows would mean the end of MS-DOS. A physics student named Jim Hall (that’s me) at the University of Wisconsin-River Falls wasn’t much of a fan of Windows, and decided “if Windows 4 is going to be anything like Windows 1, 2, or 3, I’d rather keep using DOS.” And as a programmer of sorts, I started work on a new version of DOS called “PD-DOS,” but we quickly changed to “Free-DOS” and (later) “FreeDOS.”

Since its start in 1994, FreeDOS has continued to support DOS users. FreeDOS is very compatible with MS-DOS, and any application that runs on MS-DOS should also run on FreeDOS. Even Windows runs on FreeDOS, which is quite a feat.

FreeDOS certainly lets you run your favorite DOS applications and games, but FreeDOS also has a larger focus on the command line. FreeDOS includes over 300 command packages divided into a dozen categories, including sound tools, software development, editors, and networking. In addition, FreeDOS also provides many commands borrowed from Unix, like cal, du, tee, and less. There’s even a version of the venerable Unix nroff text processor. So if you’re comfortable at the Linux command line, FreeDOS will feel very familiar.

But the big question is “Why DOS in 2020?” In an era when even the lowest of the low-end PCs come with 200 times as much memory and possibly 50,000 times as much disk space (the original IBM PC came with memory measured in kilobytes), why would you want to run DOS?

These days, most people run FreeDOS to do three things: play classic games, run legacy software, and develop embedded systems. But most of it is games, and that’s okay. DOS had a lot of great games, and they are still tons of fun. And DOS runs great in a PC emulator or virtual machine like VirtualBox or QEMU, making it easy to run FreeDOS alongside your preferred operating system.

You can download FreeDOS for free from freedos.org.

Profile Photo for Jim Hall Jim Hall
Jim Hall is an innovative, high-achieving Senior IT Leader with over 25 years' experience in Linux, open source, and IT Leadership. He has contributed to dozens of open source projects as developer or maintainer, including FreeDOS and GNOME. Jim is also CEO at Hallmentum, where he empowers IT Leaders to drive meaningful change through hands-on training, workshops, and coaching.
Read Full Bio »