MS-DOS (Microsoft Disk Operating System)
What is MS-DOS (Microsoft Disk Operating System)?
MS-DOS stands for Microsoft Disk Operating System and is also known as Microsoft DOS. MS-DOS was the Microsoft-marketed version of the first operating system (OS) to be widely installed on personal computers (PCs). It was essentially the same OS that Bill Gates's young company developed for IBM as Personal Computer - Disk Operating System (PC-DOS).
In 1981, IBM licensed and marketed its PC-DOS rebranding of MS-DOS to run on IBM PCs. MS-DOS was released for x86 computers, went through eight major versions and was ultimately retired from all active support in 2006.
Most users of either DOS system simply referred to it as Disk Operating System. Like PC-DOS, MS-DOS was -- and still is -- a non-graphical, line-oriented, command-driven OS. It has a relatively simple but not overly friendly user interface. Its prompt to enter an MS-DOS command looks like this:
The default command prompt shows the disk drive currently in use. This type of computer interface, where commands are input in response to a text prompt, is called a command-line interface (CLI).
In this example, drive "C:" represents the system's primary hard disk drive. When booting MS-DOS from a floppy disk, the command prompt would be A:> where "A:" represents the primary floppy disk drive.
The first version of the Microsoft Windows OS was really an application that ran on top of MS-DOS. Today, Windows operating systems emulate MS-DOS to continue to support DOS -- or a DOS-like user interface -- for special purposes.
In the 1970s before the PC was invented, IBM had a different and unrelated DOS that ran on smaller business computers. It was replaced by IBM's VSE (Virtual Storage Extended) OS.
Why is MS-DOS used?
Although most computer users prefer a modern OS with a graphical user interface (GUI), there are still reasons to use MS-DOS. Some of these include the following:
- Education and research efforts let people learn about how a simple OS works. Source code is available from Microsoft for two MS-DOS versions; emulators and OSes providing MS-DOS functionality also enable learning about the OS.
- Legacy systems persist throughout the world. In some cases, organizations prefer to continue using a system that has worked reliably for decades. In others, there is no budget for upgrading the applications.
- Embedded systems depend on MS-DOS, especially for new devices that still use x86 processor architecture. MS-DOS is also used on legacy embedded devices, some of which have been in the field for decades. In some case, these embedded systems can be updated to run up-to-date versions of compatible OSes.
- Classic older computer games are still in use that were developed and supported only on MS-DOS.
- User inertia or the preference to skip all updates drives some people and organizations to continue using MS-DOS. For example, author George R.R. Martin famously admitted in 2014 to still using WordStar 4.0, which was released in 1987, on a computer running MS-DOS.
Users wishing to experience a modern Microsoft command line can use the Microsoft Windows Command Prompt on Windows or, for more advanced functions, PowerShell.
How to use MS-DOS
There are currently at least four ways to use MS-DOS:
- Legacy systems, specifically older IBM PC-compatible computers, are still in use. Many are still running some version of MS-DOS.
- Compatible OSes have been published over the years, including at least two open source implementations of MS-DOS that are still actively maintained. Other MS-DOS-compatible OSes are commercially available for use in embedded systems.
- MS-DOS emulators are software constructs that virtually reconstruct the experience of working with MS-DOS.
- Microsoft released the source code and binaries for two versions of MS-DOS to be used for education and experimentation.
MS-DOS input and output occurs at the command line in the form of issued commands and system results of those commands. When booted, MS-DOS systems display a command prompt. MS-DOS commands are then entered using a keyboard.
Commands are either one of the standard DOS commands, implemented as part of the OS, or they are the file name of an executable program.
Although it does not natively support a GUI, MS-DOS can run graphical programs if they are installed on a system disk or diskette. Users enter the command for a graphical program, and the program takes control of the input and output devices. When the program terminates, control reverts to MS-DOS and the command prompt reappears.
At the height of its popularity, MS-DOS inspired other software developers to produce a DOS for IBM PC-compatible computers. These included the following:
- DR-DOS for IBM PC-compatible computers. Digital Research originally developed DR-DOS to compete with MS-DOS and PC-DOS. DR-DOS was ultimately rebranded as Novell DOS and Caldera OpenDOS. None of these OSes are currently being distributed or supported.
- FreeDOS is an open source version of MS-DOS that is still actively being developed, supported and used.
- PTS-DOS is an MS-DOS clone developed in Russia and still actively published.
- ROM-DOS is used in embedded systems. First released in 1989, it is compatible with MS-DOS. Finland-based embedded system software vendor Tuxera still sells it today.
Most users prefer the FreeDOS open source version of MS-DOS for learning about using MS-DOS. However, all of these OSes are designed to be run on PCs with Intel x86 processors installed.
A PC emulator -- a program that emulates an Intel x86-based PC -- enables an MS-DOS clone or compatible OS to run on a modern computer. An example of this is when FreeDOS is used on a virtual machine that emulates a PC.
More accessible emulators run on modern OSes and provide the MS-DOS experience in a window. Active DOS emulation projects include:
- The DOSBox project publishes MS-DOS emulation software for running DOS-based games on Windows, macOS and several popular Linux distributions under the Gnu General Public License.
- The vDos project publishes MS-DOS emulation software for Windows. It enables users to run legacy software on their Windows computers. VDos is published as freeware.
Another option is to use an online MS-DOS emulator. James Friend, a developer with interest in classic personal computing, hosts an online PC-DOS emulator. Alternatively, MS-DOS or compatible OSes can be installed on PC emulators. For example, hobbyist Hampa Hug publishes an emulator for the IBM PC model 5150 to reproduce the experience of working with a classic IBM PC.
Original MS-DOS source code repository
One can also experiment with the original MS-DOS code base, released in 2018. The Github repository includes original source code and binaries for MS-DOS versions 1.25 and 2.0. As noted on the repository homepage, Microsoft published the code "to allow exploration and experimentation for those interested in early PC operating systems."
MS-DOS version history
The history of MS-DOS is inextricably linked to the development of the personal computer, the IBM branded PC-DOS version and Microsoft Windows -- which originally was implemented as a graphical program running on MS-DOS.
Here is a time line of MS-DOS milestones:
- 1981. Microsoft buys the precursor OS to MS-DOS called 86-DOS -- also known as the Quick and Dirty Operating System -- from Seattle Computer Products and renames it MS-DOS.
- 1982. MS-DOS version 1.24 is supplied to IBM and released as PC-DOS 1.1.
- 1983. MS-DOS 2.0 is released to accompany IBM's hard-drive-equipped computer, the IBM PC XT. This MS-DOS version added support for hard drives and subdirectories.
- 1984. MS-DOS 3.1 is released in Europe. It is the first MS-DOS version to include local area network support.
- 1985. Microsoft releases MS-DOS 3.2 to IBM.
- 1987. MS-DOS 3.3 ships with support for 3.5-inch floppy disks (1.44 Mb).
- 1988. MS-DOS 4.01 ships with support for larger hard drives up to 2 Gb.
- 1991. MS-DOS 5.0 ships. It is a major update that replaced GW-BASIC with Microsoft QBasic. It added the EDIT full-screen text editor, an improved memory manager and support for dual-density 3.5-inch disks (2.88 Mb). This was the last version of MS-DOS developed with IBM's PC-DOS.
- 1992. MS-DOS 6.0 ships with disk management tools and backup and file transfer tools.
- 1994. MS-DOS 6.22 is the last Microsoft release of standalone MS-DOS.
- 1995. The CLI implemented in Windows 95 represents itself as MS-DOS 7.0.
- 2000. MS-DOS 8.0 is included in Windows ME. It is the last version of MS-DOS.
Entered at the command prompt, MS-DOS commands are default functions included in the OS. Depending on which version is being used, there are about 100 MS-DOS commands.
Other types of executable programs, while not a part of the OS, are entered at the command line in the same way as DOS commands. Executable programs include these two:
- Batch files are text files containing sequences of MS-DOS commands that use programming constructs such as loops and GOTO statements. Batch files can include MS-DOS commands as well as application programs.
- Application programs are binary executable files that have been compiled from source code.
Working at the command line was an important skill for early PC users. Most of those users worked primarily with applications such as spreadsheets, word processors and file managers.
Common MS-DOS commands include the following:
|CD||C:\> CD \user\programs
|Changes the current directory to the specified path. When entered with no path, it displays the current working directory's name. If the path is included in the command prompt, the prompt will change as in the example (see also PROMPT, below).|
|CHKDSK||C:\> CHKDSK a:||Checks the specified disk -- in this case, the floppy disk in the A: drive -- and returns a status report showing the disk size, number of files and directories in use and number of bytes used.|
|COPY||C:\> COPY autoexec.bat autoexec.BAK||Copies specified file or files. Can be used to copy files to duplicates with different file names or to copy files into a different directory without changing names.|
|DEL||C:\> DEL autoexec.BAK
C:\> DEL C:\backups\*.BAK
|Deletes a file or files. Can be used to delete files in the current working directory or in some other directory. Can also be used with wildcard characters to delete groups of files.|
C:\> DIR c:\backups\*.txt
|Displays all contents -- files and directories -- in the specified directory. If no directory is specified, it refers to the contents of the current directory. It can also be used with wildcard characters to display only specific files.|
|EDLIN||C:\> edlin autoexec.bat||Starts edlin, a line editor that can be used to edit text files. In this example, it is being used to edit the autoexec.bat file.|
|FORMAT||C:\> FORMAT a:||Formats a disk so it can be used with MS-DOS.|
|MKDIR||C:\> MKDIR c:\NewDIR||Creates a new directory in the specified path.|
|MORE||C:\> MORE autoexec.bat||Displays contents of a file, one screen at a time. It is mostly used for text files.|
|PROMPT||C:\> prompt $p $d$g
C:\UTIL Fri 11-05-2021>
|Modifies the default prompt. In this example, parameters are used with the command to set the prompt display as the current drive and path, the day and date and the greater-than symbol. The resulting prompt is shown in the example.|
|RMDIR||C:\> rmdir c:\backup||Removes a directory.|
|TYPE||C:\> type autoexec.bat||Displays content of a text file, without page breaks.|