DOS, short for "Disk Operating System", is a shorthand term for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions Windows 95, 98, and Me.
In spite of the common usage, none of these systems were named simply "DOS" (a name given only to an unrelated IBM mainframe operating system in the 1960s). A number of unrelated, non-x86 microcomputer disk operating systems had "DOS" in their name, and are often referred to simply as "DOS" when discussing machines that use them (e.g. AmigaDOS, AMSDOS, ANDOS, Apple DOS, Atari DOS, Commodore DOS, CSI-DOS, ProDOS, and TRS-DOS). These were incompatible with DOS executables and the MS-DOS API.
DOS is a single-user, single-task operating system with basic kernel functions that are non-reentrant- only one program at a time can be run. There is an exception with Terminate and Stay Resident (TSR) programs, and some TSRs can allow multitasking. However, there is still a problem with the non-reentrant kernel: once a process calls a service inside of operating system kernel (system call), it must not be interrupted with another process calling system call, until the first call is finished.
The DOS kernel provides various functions for programs, like displaying characters on-screen, reading a character from the keyboard, accessing disk files and more.
The operating system offers a hardware abstraction layer that allows development of character-based applications, but not for accessing most of the hardware, such as graphics cards, printers, or mice. This required programmers to access the hardware directly, resulting in each application having its own set of device drivers for each hardware peripheral. Hardware manufacturers would release specifications to ensure device drivers for popular applications were available.
A partial list of these reserved names is:
Because DOS applications use these drive letters directly (unlike the /dev directory in Unix-like systems), they can be disrupted by adding new hardware that needs a drive letter. An example is the addition of a new hard drive with a primary partition to an original hard drive that contains logical drives in extended partitions. As primary partitions have higher priority than the logical drives, it will change drive letters in the configuration. Moreover, attempts to add a new hard drive with only logical drives in an extended partition would still disrupt the letters of RAM disks and optical drives. This problem persisted through the 9x versions of Windows until NT, which preserves the letters of existing drives until the user changes it.
In 1980, IBM was introducing their first microcomputer, built with the Intel 8088 microprocessor, and needed an operating system. Seeking an 8088-compatible build of CP/M, IBM initially approached Microsoft CEO Bill Gates (possibly believing that Microsoft owned CP/M due to the Microsoft Z-80 SoftCard, which allowed CP/M to run on an Apple II). IBM was sent to Digital Research, and a meeting was set up. However, the initial negotiations for the use of CP/M broke down—Digital Research wished to sell CP/M on a royalty basis, while IBM sought a single license, and to change the name to "PC-DOS". DR founder Gary Kildall refused, and IBM withdrew.
IBM again approached Bill Gates. Gates in turn approached Seattle Computer Products. There, programmer Tim Paterson had developed a variant of CP/M-80, intended as an internal product for testing SCP's new 16-bit Intel 8086 CPU card for the S-100 bus. The system was initially named "QDOS" (Quick and Dirty Operating System), before being made commercially available as 86-DOS. Microsoft purchased 86-DOS, allegedly for $50,000. This became Microsoft Disk Operating System, MS-DOS, introduced in 1981.
Microsoft also licensed their system to multiple computer companies, who supplied MS-DOS for their own hardware, sometimes under their own names. Microsoft later required the use of the MS-DOS name, with the exception of the IBM variant. IBM continued to develop their version, PC-DOS, for the IBM PC. Digital Research became aware that an operating system similar to CP/M was being sold by IBM (under the same name that IBM insisted upon for CP/M), and threatened legal action. IBM responded by offering an agreement: they would give PC consumers a choice of PC-DOS or CP/M-86, Kildall's 8086 version. Side-by-side, CP/M cost almost $200 more than PC-DOS, and sales were low. CP/M faded, with MS-DOS and PC-DOS becoming the marketed operating system for PCs and PC compatibles.
Digital Research attempted to regain the market lost from CP/M-86; initially with DOS Plus, and later with DR-DOS (both compatible with both MS-DOS and CP/M-86 software). Digital Research was bought by Novell, and DR DOS became Novell DOS 7; later, it was part of Caldera Systems (as OpenDOS and DR DOS 7), Lineo, and DeviceLogics.
Microsoft and IBM later had a series of disagreements over two successor operating systems to DOS- Microsoft's Windows and IBM's OS/2. They split development of their DOS systems as a result. MS-DOS was partially transformed into Windows; the last version of PC-DOS was PC-DOS 2000, released in 1998.
The FreeDOS project began June 26, 1994, when Microsoft announced it would no longer sell or support MS-DOS. Jim Hall then posted a manifesto proposing the development of an open-source replacement. Within a few weeks, other programmers including Pat Villani and Tim Norman joined the project. A kernel, the command.com command line interpreter (shell) and core utilities were created by pooling code they had written or found available. There were several official pre-release distributions of FreeDOS before the FreeDOS 1.0 distribution was released on September 3, 2006. FreeDOS does not require license fees or royalties.
A GPL-licensed DOS, NX-DOS, is currently under development. It is 16-bit, real-time, networkable, bootable from a floppy, and has an incomplete USB driver. It dates back to 1992 as a personal project, and was released as GPL in 2005.
Under Linux it is also possible to run copies of DOS and many of its clones under DOSEMU, a Linux-native virtual machine for running real mode programs. There are a number of other emulators for running DOS under various versions of UNIX, even on non-x86 platforms, such as DOSBox.
DOS emulators are gaining popularity among Windows XP and Vista users, due to these systems being incompatible with pure DOS. They can be used to run abandonware or other DOS software. One of the most well-known is DOSBox, designed for game-playing on modern operating systems.
It is possible to run DOS applications under Microsoft Virtual PC, allowing better compatibility than DOS emulators. A legitimate version of MS-DOS can be installed which should allow all but the most stubborn applications to run.
True 32-bit versions of Windows, starting with NT and including 2003, XP, and Vista, are not based upon DOS. These include the NT Virtual DOS Machine (NTVDM), which runs a modified version of MS-DOS in a virtual machine. While DOS-based versions used the traditional COMMAND.COM for a command line interface, Windows NT and its derivatives use cmd.exe, which utilizes many DOS commands.
See Comparison of x86 DOS operating systems for a timeline and comparison of versions.
While DOS was the primary PC-compatible platform, several notable programs were written for it. These included:
In an attempt to provide a more user-friendly environment, numerous software manufacturers wrote file management programs that provided users with menu- and/or icon-based interfaces. Microsoft Windows is a notable example, eventually becoming a self-contained operating system, and replacing DOS as the most-used PC-compatible operating system. Text user interface programs included Norton Commander, Dos Navigator, Volkov Commander, Quarterdesk DESQview, and SideKick. Graphical user interface programs included Digital Research's Graphical Environment Manager (originally written for CP/M) and GEOS.
DOS also has an upper limit to the size of hard disk partitions. This has two causes. First, many DOS-type systems never had support for any file system newer than FAT16, which, by design, does not allow partitions larger than 2.1 gibibytes. Additionally, DOS accesses the hard disk by calling Interrupt 13, which utilizes the cylinder-head-sector system of mapping the disk. Under this system, only 8 gibibytes are visible to the operating system. Newer operating systems accomplished disk access via software means, e.g. 32-bit disk access.