DOS
Encyclopedia
DOS, short for "Disk Operating System", is an acronym for several closely related operating system
s 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 95
, 98
, and Millennium Edition
.
Related systems include MS-DOS
, PC-DOS
, DR-DOS
, FreeDOS
, PTS-DOS
, ROM-DOS, Novell DOS, OpenDOS and several others.
In spite of the common usage, none of these systems were simply named "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
). While providing many of the same operating system
functions for their respective computer systems, programs running under any one of these operating systems would not run under others.
and compatibles
. Machine-dependent versions of MS-DOS were produced for many non-IBM-compatible x86-based machines, with variations from relabelling of the Microsoft
distribution under the manufacturer's name, to versions specifically designed to work with non-IBM-PC-compatible hardware. For as long as application programs used DOS APIs instead of direct hardware access, they could thereby also run on non-IBM-PC compatible machines.
In 1985, Digital Research also had a version of Concurrent DOS 68K for use on Motorola 68000 CPUs, and the original FreeDOS
kernel DOS-C derived from DOS/NT, also for Motorola CPUs, in the early 1990s. While these systems resembled the DOS architecture, applications were not binary compatible due to the incompatible instruction sets of these non-x86-CPUs. However, applications written in high-level languages could be ported easily.
DOS is a single-user, single-task operating system with basic kernel functions that are non-reentrant: only one program at a time can use them. 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
(an application program interface), like displaying characters on-screen, reading a character from the keyboard, accessing disk files and more.
DOS by default provides a primitive ability for shell script
ing, via batch files (with the filename extension
.BAT). These are text files that can be created in any text editor. They are executed in the same fashion as compiled programs, and run each line of the batch file as a command. Batch files can also make use of several internal commands, such as GOTO
and conditional statements. GOSUB
and simple arithmetic is supported with the DR DOS COMMAND.COM as well as some with third-party shells like 4DOS
, but can also be faked via strange workarounds; however, no real form of programming is usually enabled.
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 card
s, printer
s, or mice. This required programmers to access the hardware directly, usually resulting in each application having its own set of device driver
s for each hardware peripheral. Hardware manufacturers would release specifications to ensure device drivers for popular applications were available.
s, and other hardware. Letter assignments usually occur in the order the drivers are loaded, but the drivers can instruct DOS to assign a different letter; drivers for network drives, for example, typically assign letters nearer the end of the alphabet.
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 having a primary partition where a pre-existing hard drive contains logical drives in extended partitions; the new drive will be assigned a letter that was previously assigned to one of the extended partition logical drives. Moreover, even adding a new hard drive having only logical drives in an extended partition would still disrupt the letters of RAM disks and optical drives.
This problem persisted through Microsoft's DOS-based 9x versions of Windows until they were replaced by versions based on the NT line, which preserves the letters of existing drives until the user changes them.
Under DOS, this problem can be worked around by defining a SUBST drive and installing the DOS program into this logical drive. The assignment of this drive would then be changed in a batchjob whenever the application starts. Under some versions of Concurrent DOS, as well as under Multiuser DOS
, System Manager and REAL/32, the reserved drive letter L: will automatically be assigned to the corresponding load drive whenever an application starts.
A partial list of these reserved names is:
Colons are not necessary in some cases, for example:
It is still possible to create files or directories using these reserved device names, such as through direct editing of directory data structures in disk sectors. Such naming, such as starting a file name with a space, has sometimes been used by viruses or hacking programs to obscure files from users who do not know how to access these locations.
The DOS-BIOS and kernel files loaded by the boot sector must be contiguous
and be the first two directory entries. As such, removing and adding this file is likely to render the media unbootable. It is, however, possible to replace the shell at will, a method that can be used to start the execution of dedicated applications faster.
This limitation does not apply to any version of DR DOS, where the system files can be located anywhere in the root directory and do not need to be contiguous. Therefore, system files can be simply copied to a disk provided that the boot sector is DR DOS compatible already. This works because the DR DOS boot sector mounts the FAT filesystem, locates the DOS-BIOS and loads the whole file into memory.
In variation from MS-DOS, the DOS-BIOS and kernel files have different names in some DOS versions, for example, in PC-DOS as well as in DR-DOS 5.0 (and higher) they are named IBMBIO.COM
instead of IO.SYS
and IBMDOS.COM
in place of MSDOS.SYS
. Older versions of DR DOS used DRBIOS.SYS and DRBDOS.SYS instead. On systems designed for PC-DOS v1.10 the signature 55h AAh at position 01FEh is not checked.
PC-DOS (and the separately sold MS-DOS) and its predecessor, 86-DOS, were loosely inspired by Digital Research
's CP/M
, which was the dominant disk operating system for 8-bit Intel 8080
and Zilog
Z80 based microcomputers. PC-DOS ran on 8088-family processors.
When IBM introduced the IBM PC, built with the Intel 8088
microprocessor, they 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 Concurrent DOS, FlexOS
and DOS Plus
(both compatible with both MS-DOS and CP/M-86 software), later with Multiuser DOS
(compatible with both MS-DOS and CP/M-86 software) and DR-DOS
(compatible with MS-DOS software). Digital Research was bought by Novell
, and DR DOS became Novell DOS 7; later, it was part of Caldera
(under the names OpenDOS and DR-DOS 7.02/7.03), 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 7.10, released in 2003.
The FreeDOS
project began 26 June 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 3 September 2006. Made available under the GNU General Public License
(GPL), FreeDOS does not require license fees or royalties.
were an application that ran on top of a separate version of DOS. By the early 1990s, Windows saw heavy use on new DOS systems. With MS-Windows for Workgroups 3.11
, DOS was almost reduced to the role of a boot loader for the Windows kernel; in 1995, MS-Windows 95
was bundled as a standalone operating system that did not require a separate DOS license. With Windows 95 (and Windows 98 and Me, that followed it), the MS-DOS kernel remained, but with Windows as the system's graphical shell. With Windows 95 and 98, but not ME, the MS-DOS component could be run without starting Windows. With DOS no longer required to use Windows, the majority of PC users stopped using it directly.
, DR-DOS
(and Enhanced DR-DOS), ROM-DOS, PTS-DOS
, RxDOS, Multiuser DOS
, REAL/32, and others. Some computer manufacturers, including Dell
and HP, sell computers with FreeDOS as the OEM
operating system.
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.
, it is also possible to run copies of DOS and many of its clones under DOSEMU
, a Linux-native virtual machine
for running DOS programs at near native speed. There are a number of other emulator
s 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 Windows Vista
users, due to these systems being very incompatible with pure DOS. They can be used to run games or other DOS software. One of the best-known is DOSBox
, designed for legacy gaming (e.g. King's Quest
, Doom) on modern operating systems.
It is possible to run DOS applications in a copy of a DOS operating system on a PC emulator, allowing better compatibility than DOS emulators where the emulation of the DOS operating environment is imperfect.
(NTVDM), which runs a modified version of MS-DOS 5 in a virtual machine. While DOS-based versions used the traditional COMMAND.COM
for a command line interface, MS-Windows NT
and its derivatives use CMD.EXE
, a descendant of OS/2's command interpreter which recognizes many DOS commands (although COMMAND.COM is still called and used when DOS .EXE files are run).
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 resulting in Microsoft Windows 9x
becoming a self-contained program loader, and replacing DOS as the most-used PC-compatible program loader. 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
.
Eventually, the manufacturers of major DOS systems began to include their own environment managers. MS-DOS/IBM DOS 4 included DOS Shell
; DR DOS 5.0, released the next year, included ViewMAX
, based upon GEM.
, Multiuser DOS
, System Manager and REAL/32.
MS-DOS and PC DOS 5.0 introduced task switching via DOSSHELL in June 1991, and DR DOS 6.0 with TASKMAX, optionally aided by ViewMAX
, in September 1991.
MS-DOS and PC DOS never had a multitasking
capability; whereas pre-emptive multitasking in virtual DOS machines was introduced into the DR DOS line of products with Novell DOS 7 in December 1993 with EMM386 /MULTI and TASKMGR.
Programs such as VMIX or DESQView
could multitask even on an 8088, which did not have hardware support for multitasking due to its lack of protected mode
.
of physical RAM
. With additional hardware devices being mapped into this range, the highest amount of available memory was 640 kilobyte
s, known as conventional memory
. Due to DOS's structure, this was assumed to be the maximum, and DOS could not address more than this. An early workaround was expanded memory
; later, extended memory
was developed with the 80286. While these provided usable memory to applications, they still had to start in conventional memory, thereby using part of the existing 640 KB. Newer version of DOS starting with 5.0 could relocate parts of itself as well as device drivers into previously unused areas in the adapter range between 640 KB and 1 MB (upper memory) and the HMA (high memory area), thereby freeing up more conventional memory for DOS programs to run within the first 640 KB of the system. With DPMS
, it was possible to load and execute drivers in extended memory, leaving only a stub in conventional memory as an interface with the DOS system. With the 80386 microprocessor's redesigned protected mode
, DOS extender
s and the DOS Protected Mode Interface
were able to provide additional memory to extended DOS applications running in protected mode. The XMS drivers in many versions of DOS have a limit of 64 MB, but this limit is not in the underlying architecture, but in specific implementations. Using third-party XMS drivers, extended DOS applications can take advantage of up to theoretical 4 GB of memory.
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 gigabyte
s. Additionally, DOS accesses the hard disk by calling Interrupt 13h
. Older version of DOS utilized the cylinder-head-sector
(CHS) system of mapping the disk. Under this system, only the first 8.4 GB or 7.84 GiB are visible to the operating system. Newer versions of DOS also deploy LBA
-access through Interrupt 13h. Thereby, they can address hard disks up to 128 GB in size. Newer versions of DOS also support the FAT32 file system (in addition to FAT12 and FAT16) to allow for partitions larger than 2 GB.
Filenames in the FAT filesystem can not be longer than eight characters, and the filename extension
cannot be longer than three. The VFAT extension, introduced with Windows 95, however, allows to store them in hidden directory entries on FAT12, FAT16 or FAT32 volumes.
Using the traditional DOS APIs, the maximum file size remains limited to 4 GB, but 3rd-party extensions such as FAT+ exist to work around this problem.
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s that dominated the IBM PC compatible
IBM PC compatible
IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. Such computers used to be referred to as PC clones, or IBM clones since they almost exactly duplicated all the significant features of the PC architecture, facilitated by various manufacturers' ability to...
market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
versions 95
Windows 95
Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...
, 98
Windows 98
Windows 98 is a graphical operating system by Microsoft. It is the second major release in the Windows 9x line of operating systems. It was released to manufacturing on 15 May 1998 and to retail on 25 June 1998. Windows 98 is the successor to Windows 95. Like its predecessor, it is a hybrid...
, and Millennium Edition
Windows Me
Windows Millennium Edition, or Windows Me , is a graphical operating system released on September 14, 2000 by Microsoft, and was the last operating system released in the Windows 9x series. Support for Windows Me ended on July 11, 2006....
.
Related systems include MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
, PC-DOS
PC-DOS
IBM PC DOS is a DOS system for the IBM Personal Computer and compatibles, manufactured and sold by IBM from the 1980s to the 2000s....
, DR-DOS
DR-DOS
DR-DOS is an MS-DOS-compatible operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86...
, FreeDOS
FreeDOS
FreeDOS is an operating system for IBM PC compatible computers. FreeDOS is made up of many different, separate programs that act as "packages" to the overall FreeDOS Project...
, PTS-DOS
PTS-DOS
PTS-DOS is a disk operating system, a DOS clone, developed in Russia by PhysTechSoft.- History and versions :PhysTechSoft was formed in 1991 in Moscow, Russia by graduates and members of MIPT, informally known as PhysTech. At the end of 1993, PhysTechSoft released the first commercially available...
, ROM-DOS, Novell DOS, OpenDOS and several others.
In spite of the common usage, none of these systems were simply named "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
AmigaDOS
AmigaDOS is the disk operating system of the AmigaOS, which includes file systems, file and directory manipulation, the command-line interface, and file redirection....
, AMSDOS
AMSDOS
AMSDOS is a disk operating system for the 8-bit Amstrad CPC Computer . The name is a contraction of Amstrad Disc Operating System....
, ANDOS
ANDOS
ANDOS is a Russian operating system for Electronika BK-0010, Electronika BK-0011 and Electronika BK-0011M series computers. It was created in 1990 and first released in 1992. Initially it was developed by Alexey Nadezhin and later also by Sergey Kamnev, who joined the project...
, Apple DOS
Apple DOS
Apple DOS refers to operating systems for the Apple II series of microcomputers from late 1978 through early 1983. Apple DOS had three major releases: DOS 3.1, DOS 3.2, and DOS 3.3; each one of these three releases was followed by a second, minor "bug-fix" release, but only in the case of Apple DOS...
, Atari DOS
Atari DOS
Atari DOS is the disk operating system used with the Atari 8-bit family of computers. Operating system extensions loaded into memory were required in order for an Atari computer to access a disk drive. These extensions to the operating system added the disk handler and other file management...
, Commodore DOS
Commodore DOS
Commodore DOS, aka CBM DOS, was the disk operating system used with Commodore's 8-bit computers. Unlike most other DOS systems before or since—which are booted from disk into the main computer's own RAM at startup, and executed there—CBM DOS was executed internally in the drive: the DOS...
, CSI-DOS
CSI-DOS
CSI-DOS is an operating system, created in Samara, for the Soviet Elektronika BK-0011M and Elektronika BK-0011 microcomputers. CSI-DOS did not support the earlier BK-0010. CSI-DOS used its own unique file system and only supported a color graphics video mode. The system supported both hard and...
, ProDOS
ProDOS
ProDOS was the name of two similar operating systems for the Apple II series of personal computers. The original ProDOS, renamed ProDOS 8 in version 1.2, was the last official operating system usable by all Apple II series computers, and was distributed from 1983 to 1993...
, and TRS-DOS
TRS-DOS
TRS-DOS was the operating system for the Tandy TRS-80 line of 8-bit Zilog Z80 microcomputers that were sold through Radio Shack through the late 1970s and early 1980s. Tandy's manuals recommended that it be pronounced triss-doss...
). While providing many of the same operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
functions for their respective computer systems, programs running under any one of these operating systems would not run under others.
Design
All MS-DOS-type operating systems run on machines with the Intel x86 or compatible CPUs, mainly the IBM PCIBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...
and compatibles
IBM PC compatible
IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. Such computers used to be referred to as PC clones, or IBM clones since they almost exactly duplicated all the significant features of the PC architecture, facilitated by various manufacturers' ability to...
. Machine-dependent versions of MS-DOS were produced for many non-IBM-compatible x86-based machines, with variations from relabelling of the Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
distribution under the manufacturer's name, to versions specifically designed to work with non-IBM-PC-compatible hardware. For as long as application programs used DOS APIs instead of direct hardware access, they could thereby also run on non-IBM-PC compatible machines.
In 1985, Digital Research also had a version of Concurrent DOS 68K for use on Motorola 68000 CPUs, and the original FreeDOS
FreeDOS
FreeDOS is an operating system for IBM PC compatible computers. FreeDOS is made up of many different, separate programs that act as "packages" to the overall FreeDOS Project...
kernel DOS-C derived from DOS/NT, also for Motorola CPUs, in the early 1990s. While these systems resembled the DOS architecture, applications were not binary compatible due to the incompatible instruction sets of these non-x86-CPUs. However, applications written in high-level languages could be ported easily.
DOS is a single-user, single-task operating system with basic kernel functions that are non-reentrant: only one program at a time can use them. There is an exception with Terminate and Stay Resident
Terminate and Stay Resident
Terminate and Stay Resident is a computer system call in DOS computer operating systems that returns control to the system as if the program has quit, but keeps the program in memory...
(TSR) programs, and some TSRs can allow multitasking
Computer multitasking
In computing, multitasking is a method where multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for...
. However, there is still a problem with the non-reentrant kernel: once a process calls a service inside of operating system kernel (system call
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...
), 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
MS-DOS API
The MS-DOS API is an API used originally in MS-DOS/PC-DOS, and later by other DOS systems. Most calls to the DOS API invoke software interrupt 21h . By calling INT 21h with a subfunction number in the AH processor register and other parameters in other registers, one invokes various DOS services...
(an application program interface), like displaying characters on-screen, reading a character from the keyboard, accessing disk files and more.
DOS by default provides a primitive ability for shell script
Shell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...
ing, via batch files (with the filename extension
Filename extension
A filename extension is a suffix to the name of a computer file applied to indicate the encoding of its contents or usage....
.BAT). These are text files that can be created in any text editor. They are executed in the same fashion as compiled programs, and run each line of the batch file as a command. Batch files can also make use of several internal commands, such as GOTO
Goto
goto is a statement found in many computer programming languages. It is a combination of the English words go and to. It performs a one-way transfer of control to another line of code; in contrast a function call normally returns control...
and conditional statements. GOSUB
GOSUB
GOSUB is a command in many versions of the BASIC computer programming language. A GOSUB statement jumps to a line elsewhere in the program. That line and the following lines up to a RETURN are used as a simple kind of a subroutine without parameters or local variables.The GOSUB command may be used...
and simple arithmetic is supported with the DR DOS COMMAND.COM as well as some with third-party shells like 4DOS
4DOS
4DOS is a command line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in DOS and Windows 95/98/Me. The 4DOS family of programs are meant to replace the default command processor. 4OS2 and 4NT replace CMD.EXE in OS/2 and Windows NT respectively...
, but can also be faked via strange workarounds; however, no real form of programming is usually enabled.
The operating system offers a hardware abstraction layer that allows development of character-based applications, but not for accessing most of the hardware
Computer hardware
Personal computer hardware are component devices which are typically installed into or peripheral to a computer case to create a personal computer upon which system software is installed including a firmware interface such as a BIOS and an operating system which supports application software that...
, such as graphics card
Video card
A video card, Graphics Card, or Graphics adapter is an expansion card which generates output images to a display. Most video cards offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors...
s, printer
Computer printer
In computing, a printer is a peripheral which produces a text or graphics of documents stored in electronic form, usually on physical print media such as paper or transparencies. Many printers are primarily used as local peripherals, and are attached by a printer cable or, in most new printers, a...
s, or mice. This required programmers to access the hardware directly, usually resulting in each application having its own set of device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
s for each hardware peripheral. Hardware manufacturers would release specifications to ensure device drivers for popular applications were available.
Drive naming scheme
In DOS, drives are referred to by identifying letters. Standard practice is to reserve "A" and "B" for floppy drives. On systems with only one floppy drive DOS assigns both letters to the drive, prompting the user to swap disks as programs alternate access between them. This facilitates copying from floppy to floppy or having a program run from one floppy while accessing its data on another. Hard drives were originally assigned the letters "C" and "D". DOS could only support one active partition per drive. As support for more hard drives became available, this developed into first assigning a drive letter to each drive's active primary partition, then making a second pass over the drives to allocate letters to logical drives in the extended partition, then a third pass to give any other non-active primary partitions their names (where such additional partitions existed and contained a DOS-supported file system.) Lastly, DOS allocates letters for optical disc drives, RAM diskRAM disk
A RAM disk or RAM drive is a block of RAM that a computer's software is treating as if the memory were a disk drive...
s, and other hardware. Letter assignments usually occur in the order the drivers are loaded, but the drivers can instruct DOS to assign a different letter; drivers for network drives, for example, typically assign letters nearer the end of the alphabet.
Because DOS applications use these drive letters directly (unlike the /dev directory in Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
systems), they can be disrupted by adding new hardware that needs a drive letter. An example is the addition of a new hard drive having a primary partition where a pre-existing hard drive contains logical drives in extended partitions; the new drive will be assigned a letter that was previously assigned to one of the extended partition logical drives. Moreover, even adding a new hard drive having only logical drives in an extended partition would still disrupt the letters of RAM disks and optical drives.
This problem persisted through Microsoft's DOS-based 9x versions of Windows until they were replaced by versions based on the NT line, which preserves the letters of existing drives until the user changes them.
Under DOS, this problem can be worked around by defining a SUBST drive and installing the DOS program into this logical drive. The assignment of this drive would then be changed in a batchjob whenever the application starts. Under some versions of Concurrent DOS, as well as under Multiuser DOS
Multiuser DOS
Multiuser DOS is a soft real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers.An evolution of the older Concurrent CP/M-86 and Concurrent DOS operating systems, it was originally developed by Digital Research and later further developed by Novell...
, System Manager and REAL/32, the reserved drive letter L: will automatically be assigned to the corresponding load drive whenever an application starts.
Reserved device names
There are reserved device names in DOS that cannot be used as filenames regardless of extension; these are used to send application output to hardware peripherals. These restrictions also affect several Windows versions, in some cases causing crashes and security vulnerabilities.A partial list of these reserved names is:
NUL:
, CON:
, AUX:
, PRN:
, COM1:
, COM2:
, COM3:
, COM4:
, LPT1:
, LPT2:
, LPT3:
, and sometimes LPT4:
as well. AUX:
typically defaults to COM1:
, and PRN:
to LPT1:
, but these defaults can be changed on some systems.Colons are not necessary in some cases, for example:
It is still possible to create files or directories using these reserved device names, such as through direct editing of directory data structures in disk sectors. Such naming, such as starting a file name with a space, has sometimes been used by viruses or hacking programs to obscure files from users who do not know how to access these locations.
Boot sequence
- The bootstrap loader on PC-compatible computers (MBRMaster boot recordA master boot record is a type of boot sector popularized by the IBM Personal Computer. It consists of a sequence of 512 bytes located at the first sector of a data storage device such as a hard disk...
or boot sectorBoot sectorA boot sector or boot block is a region of a hard disk, floppy disk, optical disc, or other data storage device that contains machine code to be loaded into random-access memory by a computer system's built-in firmware...
) is located at track zeroTrack0Track0 is the area located at the start of a computer disk and is predominantly used to store information regarding the layout of the disk and executable code needed to boot an operating system...
, the first sector on a disk. The ROM-BIOSBIOSIn IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....
will load this sector into memory at address 0000h:7C00h, and check for a signature "55h AAh" at position 01FEh. If found, the sector is considered to be valid and executed, if not, the ROM-BIOS will try the next physical disk in the row. - If the loaded sector happens to be a MBR, its code will scan the partition table, which is located within this sector, for an active partition (bit7=1 at pos 01BEh+10h*n), and, if found, load the first sector of the corresponding partition into memory in the similar fashion as it had been loaded by the ROM-BIOS itself.
- The boot sector code loads the start of the DOS-BIOSBIOSIn IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....
, which is located in the file IO.SYSIO.SYSIO.SYS is an essential part of MS-DOS and Windows 9x. It contains the default MS-DOS device drivers and the DOS initialization program.- Boot sequence :...
on MS-DOS systems, into segment 0000h:0600h In some cases the boot sector instead relocates itself into 0000h:0600h and loads the partition boot code into 0000h:7C00h and executes it. The boot sector will then pass execution to the loaded portion. - The loaded portion of the DOS-BIOS will then load the remainder of itself into memory. The DOS-BIOS will then load the DOS kernel, located in MSDOS.SYSMSDOS.SYSMSDOS.SYS an important system file on MS-DOS and Windows 9x systems. It is run after IO.SYS. In MS-DOS, it contains the core operating system code, the kernel...
on MS-DOS systems, into memory as well. In Windows 9x, the DOS-BIOS and kernel are combined into IO.SYS, and MSDOS.SYS is used as a text configuration file. - The DOS-BIOS then loads the \CONFIG.SYSCONFIG.SYSCONFIG.SYS is the primary configuration file for the DOS, OS/2 as well as similar operating systems. It is a special file that contains setup or configuration instructions for the computer system.- Usage :...
file to parse configuration parameters. The SHELL variable specifies the location of the shellShell (computing)A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...
which defaults to \COMMAND.COMCOMMAND.COMCOMMAND.COM is the filename of the default operating system shell for DOS operating systems and the default command line interpreter on Windows 95, Windows 98 and Windows Me...
. - The shell is loaded and executed.
- The startup batch file AUTOEXEC.BATAUTOEXEC.BATAUTOEXEC.BAT is a system file found originally on DOS-type operating systems. It is a plain-text batch file that is located in the root directory of the boot device...
is then run by the shell. DR-DOS COMMAND.COM and 4DOS allow for the specification of the startup batch file through a parameter in the SHELL statement.
The DOS-BIOS and kernel files loaded by the boot sector must be contiguous
Fragmentation (computer)
In computer storage, fragmentation is a phenomenon in which storage space is used inefficiently, reducing storage capacity and in most cases reducing the performance. The term is also used to denote the wasted space itself....
and be the first two directory entries. As such, removing and adding this file is likely to render the media unbootable. It is, however, possible to replace the shell at will, a method that can be used to start the execution of dedicated applications faster.
This limitation does not apply to any version of DR DOS, where the system files can be located anywhere in the root directory and do not need to be contiguous. Therefore, system files can be simply copied to a disk provided that the boot sector is DR DOS compatible already. This works because the DR DOS boot sector mounts the FAT filesystem, locates the DOS-BIOS and loads the whole file into memory.
In variation from MS-DOS, the DOS-BIOS and kernel files have different names in some DOS versions, for example, in PC-DOS as well as in DR-DOS 5.0 (and higher) they are named IBMBIO.COM
IBMBIO.COM
IBMBIO.COM is the filename of the DOS-BIOS in many DOS operating systems, and as such part of PC-DOS, earlier versions of MS-DOS, and DR DOS 5.0 and higher...
instead of IO.SYS
IO.SYS
IO.SYS is an essential part of MS-DOS and Windows 9x. It contains the default MS-DOS device drivers and the DOS initialization program.- Boot sequence :...
and IBMDOS.COM
IBMDOS.COM
IBMDOS.COM is the filename of the DOS kernel. It exists in DR-DOS and PC-DOS systems, with MS-DOS using MSDOS.SYS. The file is located in the root directory of the drive containing the operating system....
in place of MSDOS.SYS
MSDOS.SYS
MSDOS.SYS an important system file on MS-DOS and Windows 9x systems. It is run after IO.SYS. In MS-DOS, it contains the core operating system code, the kernel...
. Older versions of DR DOS used DRBIOS.SYS and DRBDOS.SYS instead. On systems designed for PC-DOS v1.10 the signature 55h AAh at position 01FEh is not checked.
Origins
IBMIBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
PC-DOS (and the separately sold MS-DOS) and its predecessor, 86-DOS, were loosely inspired by Digital Research
Digital Research
Digital Research, Inc. was the company created by Dr. Gary Kildall to market and develop his CP/M operating system and related products. It was the first large software company in the microcomputer world...
's CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...
, which was the dominant disk operating system for 8-bit Intel 8080
Intel 8080
The Intel 8080 was the second 8-bit microprocessor designed and manufactured by Intel and was released in April 1974. It was an extended and enhanced variant of the earlier 8008 design, although without binary compatibility...
and Zilog
Zilog
Zilog, Inc., previously known as ZiLOG , is a manufacturer of 8-bit and 24-bit microcontrollers, and is most famous for its Intel 8080-compatible Z80 series.-History:...
Z80 based microcomputers. PC-DOS ran on 8088-family processors.
When IBM introduced the IBM PC, built with the Intel 8088
Intel 8088
The Intel 8088 microprocessor was a variant of the Intel 8086 and was introduced on July 1, 1979. It had an 8-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers and the one megabyte address range were unchanged, however...
microprocessor, they needed an operating system. Seeking an 8088-compatible build of CP/M, IBM initially approached Microsoft CEO Bill Gates
Bill Gates
William Henry "Bill" Gates III is an American business magnate, investor, philanthropist, and author. Gates is the former CEO and current chairman of Microsoft, the software company he founded with Paul Allen...
(possibly believing that Microsoft owned CP/M due to the Microsoft Z-80 SoftCard
Z-80 SoftCard
The Z-80 SoftCard was a plug-in card supplied by Microsoft for use with the Apple II personal computer, which did not have a Z-80 compatible processor and could not run CP/M. It had a Zilog Z80 CPU plus some 74LS00 series TTL chips to adapt that processor's bus to the rather different bus system...
, which allowed CP/M to run on an Apple II
Apple II
The Apple II is an 8-bit home computer, one of the first highly successful mass-produced microcomputer products, designed primarily by Steve Wozniak, manufactured by Apple Computer and introduced in 1977...
). 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
Gary Kildall
Gary Arlen Kildall was an American computer scientist and microcomputer entrepreneur who created the CP/M operating system and founded Digital Research, Inc....
refused, and IBM withdrew.
IBM again approached Bill Gates. Gates in turn approached Seattle Computer Products
Seattle Computer Products
Seattle Computer Products was a Seattle, Washington microcomputer hardware company which was one of the first manufacturers of computer systems based on the 16-bit Intel 8086 processor...
. There, programmer Tim Paterson
Tim Paterson
Tim Paterson is an American computer programmer, best known as the original author of MS-DOS, the most widely used personal computer operating system in the 1980s....
had developed a variant of CP/M-80, intended as an internal product for testing SCP's new 16-bit
16-bit
-16-bit architecture:The HP BPC, introduced in 1975, was the world's first 16-bit microprocessor. Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816. The Intel 8088 was program-compatible with the Intel 8086, and was 16-bit in that its registers were 16...
Intel 8086
Intel 8086
The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and mid-1978, when it was released. The 8086 gave rise to the x86 architecture of Intel's future processors...
CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
card for the S-100 bus
S-100 bus
The S-100 bus or Altair bus, IEEE696-1983 , was an early computer bus designed in 1974 as a part of the Altair 8800, generally considered today to be the first personal computer...
. 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
PC-DOS
IBM PC DOS is a DOS system for the IBM Personal Computer and compatibles, manufactured and sold by IBM from the 1980s to the 2000s....
, 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
CP/M-86
CP/M-86 was a version of the CP/M operating system that Digital Research made for the Intel 8086 and Intel 8088. The commands are those of CP/M-80. Executable files used the relocatable .CMD file format...
, 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 Concurrent DOS, FlexOS
FlexOS
FlexOS was a modular real-time multi-user multi-tasking operating system designed for computer-integrated manufacturing, laboratory, retail and financial markets...
and DOS Plus
DOS Plus
DOS Plus is an operating system written by Digital Research, first released in 1985. It can be seen as an intermediate step between CP/M-86 and DR-DOS....
(both compatible with both MS-DOS and CP/M-86 software), later with Multiuser DOS
Multiuser DOS
Multiuser DOS is a soft real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers.An evolution of the older Concurrent CP/M-86 and Concurrent DOS operating systems, it was originally developed by Digital Research and later further developed by Novell...
(compatible with both MS-DOS and CP/M-86 software) and DR-DOS
DR-DOS
DR-DOS is an MS-DOS-compatible operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86...
(compatible with MS-DOS software). Digital Research was bought by Novell
Novell
Novell, Inc. is a multinational software and services company. It is a wholly owned subsidiary of The Attachmate Group. It specializes in network operating systems, such as Novell NetWare; systems management solutions, such as Novell ZENworks; and collaboration solutions, such as Novell Groupwise...
, and DR DOS became Novell DOS 7; later, it was part of Caldera
Caldera (company)
Caldera was a US-based software company founded in 1994 to develop Linux- and DOS-based operating system products.- Caldera :Caldera, Inc...
(under the names OpenDOS and DR-DOS 7.02/7.03), Lineo
Lineo
Lineo was a thin client and embedded systems company spun out of Caldera Thin Clients, on 20 July 1999.Caldera Thin Clients, Inc., had been created as a subsidiary of Caldera, Inc., on 2 September 1998...
, and DeviceLogics
DeviceLogics
DeviceLogics is a startup company in Lindon, Utah, United States of America, founded in 2002. Bryan Sparks co-founded DeviceLogics, and acquired DR-DOS from the Canopy Group, a Utah technology venture group...
.
Microsoft and IBM later had a series of disagreements over two successor operating systems to DOS - Microsoft's Windows and IBM's OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...
. 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 7.10, released in 2003.
The FreeDOS
FreeDOS
FreeDOS is an operating system for IBM PC compatible computers. FreeDOS is made up of many different, separate programs that act as "packages" to the overall FreeDOS Project...
project began 26 June 1994, when Microsoft announced it would no longer sell or support MS-DOS. Jim Hall
Jim Hall (programmer)
Jim Hall is a computer programmer and advocate of free software, best known for his work on FreeDOS. Hall began writing the free replacement for the MS-DOS operating system in 1994 when he was still a physics student at the University of Wisconsin-River Falls...
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 3 September 2006. Made available under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
(GPL), FreeDOS does not require license fees or royalties.
Decline
Early versions of Microsoft WindowsMicrosoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
were an application that ran on top of a separate version of DOS. By the early 1990s, Windows saw heavy use on new DOS systems. With MS-Windows for Workgroups 3.11
Windows 3.1x
Windows 3.1x is a series of 16-bit operating systems produced by Microsoft for use on personal computers. The series began with Windows 3.1, which was first sold during March 1992 as a successor to Windows 3.0...
, DOS was almost reduced to the role of a boot loader for the Windows kernel; in 1995, MS-Windows 95
Windows 95
Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...
was bundled as a standalone operating system that did not require a separate DOS license. With Windows 95 (and Windows 98 and Me, that followed it), the MS-DOS kernel remained, but with Windows as the system's graphical shell. With Windows 95 and 98, but not ME, the MS-DOS component could be run without starting Windows. With DOS no longer required to use Windows, the majority of PC users stopped using it directly.
Continued use
Currently available DOS systems are FreeDOSFreeDOS
FreeDOS is an operating system for IBM PC compatible computers. FreeDOS is made up of many different, separate programs that act as "packages" to the overall FreeDOS Project...
, DR-DOS
DR-DOS
DR-DOS is an MS-DOS-compatible operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86...
(and Enhanced DR-DOS), ROM-DOS, PTS-DOS
PTS-DOS
PTS-DOS is a disk operating system, a DOS clone, developed in Russia by PhysTechSoft.- History and versions :PhysTechSoft was formed in 1991 in Moscow, Russia by graduates and members of MIPT, informally known as PhysTech. At the end of 1993, PhysTechSoft released the first commercially available...
, RxDOS, Multiuser DOS
Multiuser DOS
Multiuser DOS is a soft real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers.An evolution of the older Concurrent CP/M-86 and Concurrent DOS operating systems, it was originally developed by Digital Research and later further developed by Novell...
, REAL/32, and others. Some computer manufacturers, including Dell
Dell
Dell, Inc. is an American multinational information technology corporation based in 1 Dell Way, Round Rock, Texas, United States, that develops, sells and supports computers and related products and services. Bearing the name of its founder, Michael Dell, the company is one of the largest...
and HP, sell computers with FreeDOS as the OEM
Original Equipment Manufacturer
An original equipment manufacturer, or OEM, manufactures products or components that are purchased by a company and retailed under that purchasing company's brand name. OEM refers to the company that originally manufactured the product. When referring to automotive parts, OEM designates a...
operating system.
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.
Embedding
DOS' structure of accessing hardware directly makes it ideal for use in embedded devices. The final versions of DR-DOS are still aimed at this market. ROM-DOS was used as the embedded system on the Canon PowerShot Pro 70.Emulation
Under LinuxLinux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, it is also possible to run copies of DOS and many of its clones under DOSEMU
DOSEMU
DOSEMU, alternatively rendered dosemu, is a compatibility layer software package that enables MS-DOS systems, DOS clones such as FreeDOS, and DOS software to run under Linux on x86-based PCs ....
, a Linux-native virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
for running DOS programs at near native speed. There are a number of other emulator
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...
s for running DOS under various versions of UNIX, even on non-x86 platforms, such as DOSBox
DOSBox
DOSBox is emulator software that emulates an IBM PC compatible computer running MS-DOS. It is intended especially for use with old PC games. DOSBox is free software....
.
DOS emulators are gaining popularity among Windows XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...
and Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
users, due to these systems being very incompatible with pure DOS. They can be used to run games or other DOS software. One of the best-known is DOSBox
DOSBox
DOSBox is emulator software that emulates an IBM PC compatible computer running MS-DOS. It is intended especially for use with old PC games. DOSBox is free software....
, designed for legacy gaming (e.g. King's Quest
King's Quest
King's Quest is an adventure game series created by the American software company Sierra Entertainment. It is widely considered a classic series from the golden era of adventure games. Following the success of its first installment, the series was primarily responsible for building the reputation...
, Doom) on modern operating systems.
It is possible to run DOS applications in a copy of a DOS operating system on a PC emulator, allowing better compatibility than DOS emulators where the emulation of the DOS operating environment is imperfect.
With Microsoft Windows
True 32-bit versions of Windows, starting with NT and including 2000, XP, and Vista, are not based on DOS. These include the NT Virtual DOS MachineVirtual DOS machine
Virtual DOS machine is Microsoft's technology that allows running legacy DOS and 16-bit Windows programs on Intel 80386 or higher computers when there is already another operating system running and controlling the hardware.-Overview:...
(NTVDM), which runs a modified version of MS-DOS 5 in a virtual machine. While DOS-based versions used the traditional COMMAND.COM
COMMAND.COM
COMMAND.COM is the filename of the default operating system shell for DOS operating systems and the default command line interpreter on Windows 95, Windows 98 and Windows Me...
for a command line interface, MS-Windows NT
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...
and its derivatives use CMD.EXE
Cmd.exe
Command Prompt is the Microsoft-supplied command-line interpreter on OS/2, Windows CE and on Windows NT-based operating systems...
, a descendant of OS/2's command interpreter which recognizes many DOS commands (although COMMAND.COM is still called and used when DOS .EXE files are run).
64-bit Windows Versions
Windows XP x64, Windows Vista x64 and Windows 7 x64 editions do not contain the NTVDM and cannot run 16-bit DOS applications directly. COMMAND.COM is missing and the only way to run a DOS application under these versions of Windows is by using an emulator.Software
DOS was the dominant PC-Compatible platform and many notable programs were written for it. These included:- Lotus 1-2-3Lotus 1-2-3Lotus 1-2-3 is a spreadsheet program from Lotus Software . It was the IBM PC's first "killer application"; its huge popularity in the mid-1980s contributed significantly to the success of the IBM PC in the corporate environment.-Beginnings:...
; a protected mode spreadsheetSpreadsheetA spreadsheet is a computer application that simulates a paper accounting worksheet. It displays multiple cells usually in a two-dimensional matrix or grid consisting of rows and columns. Each cell contains alphanumeric text, numeric values or formulas...
program that saw heavy use in corporate markets and has been credited with the success of the IBM PC - WordPerfectWordPerfectWordPerfect is a word processing application, now owned by Corel.Bruce Bastian, a Brigham Young University graduate student, and BYU computer science professor Dr. Alan Ashton joined forces to design a word processing system for the city of Orem's Data General Corp. minicomputer system in 1979...
; a word processorWord processorA word processor is a computer application used for the production of any sort of printable material....
that is currently produced for the WindowsMicrosoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
platform - dBaseDBASEdBase II was the first widely used database management system for microcomputers. It was originally published by Ashton-Tate for CP/M, and later on ported to the Apple II and IBM PC under DOS...
; one of the earliest databaseDatabaseA database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
programs - Harvard GraphicsHarvard GraphicsHarvard Graphics was a pioneering presentation program developed for DOS and Microsoft Windows by Software Publishing Corporation . Harvard Graphics, Inc...
; one of the earliest presentationPresentationPresentation is the practice of showing and explaining the content of a topic to an audience or learner. Presentations come in nearly as many forms as there are life situations...
for overhead designing and hand-outs computer aid - TelixTelixTelix is a telecommunications program originally written for MS-DOS by Colin Sampaleanu and released in 1986. More recent versions were distributed by deltaComm Development, including a version for Microsoft Windows....
; a modemModemA modem is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information. The goal is to produce a signal that can be transmitted easily and decoded to reproduce the original digital data...
communication program - ArachneArachne (web browser)Arachne is a full-screen Internet suite containing a graphical web browser, email client, and dialer. It primarily runs on DOS based operating systems, but includes builds for Linux as well, but should not be used with X...
; a 16-bit graphical DOS web browserWeb browserA web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content... - DJGPPDJGPPDJGPP is a development suite for 386+ IBM PC compatibles which supports DOS-enabled operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the popular GCC compiler, as well as mostly GNU utilities such as bash, find, tar, ls, awk, sed, and ld to DPMI...
, the 32-bit DPMI DOS port of gccGNU Compiler CollectionThe GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain... - 4DOS4DOS4DOS is a command line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in DOS and Windows 95/98/Me. The 4DOS family of programs are meant to replace the default command processor. 4OS2 and 4NT replace CMD.EXE in OS/2 and Windows NT respectively...
, a much improved replacement shellShell (computing)A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web... - BorlandBorlandBorland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...
's integrated development environmentIntegrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
, which included Turbo PascalTurbo PascalTurbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...
, Turbo BASICTurbo BASICTurbo Basic is a BASIC compiler and dialect originally created by Robert "Bob" Zale and bought from him by Borland. When Borland decided to stop publishing it, Zale bought it back from them, renamed it to PowerBASIC and set up PowerBASIC Inc...
, Turbo CTurbo CTurbo C is an Integrated Development Environment and compiler for the C programming language from Borland. First introduced in 1987, it was noted for its integrated development environment, small size, extremely fast compile speed, comprehensive manuals and low price.In May 1990, Borland replaced...
, and Turbo AssemblerTurbo AssemblerTurbo Assembler is an assembler package developed by Borland which runs on and produces code for 16- or 32-bit x86 MS-DOS or Microsoft Windows. It can be used with Borland's high-level language compilers, such as Turbo Pascal, Turbo Basic and Turbo C. The Turbo Assembler package is bundled with... - BBS hosting software PCBoardPCBoardPCBoard was a bulletin board system application first introduced for DOS in 1983 by Clark Development Corporation. Clark Development was founded by Fred Clark. PCBoard was one of the first commercial BBS packages for DOS systems, and was considered one of the "high end" packages during the rapid...
, RemoteAccessRemoteAccessRemoteAccess is a DOS Bulletin Board System software package written by Andrew Milner and was published by his company Wantree Development in Australia. RemoteAccess was written in Turbo Pascal with some Assembly Language routines. RemoteAccess began in 1989 as a clone of QuickBBS by Adam Hudson...
, SpitfireSpitfire (BBS)SPITFIRE is a DOS-based Bulletin Board System written by Mike Woltz, published by his company Buffalo Creek Software of West Des Moines, Iowa. SPITFIRE was written in Turbo Pascal with Assembly Language routines...
, MaximusMaximus (BBS)Maximus is a bulletin board system, originally developed by Scott J. Dudley through his company, Lanius Corporation. The software was first written and released for both MS-DOS and OS/2, with later versions supporting 32-bit Windows operating systems. The MS-DOS version interfaced with the serial...
, McBBSMcBBSMcBBS was a Bulletin Board System developed by Derek E. McDonald and distributed by DMCS Technologies between October 30, 1989 and May 30, 2000 and operated over 18 versions.-History:...
, and TAGTAG (BBS)T.A.G. is a DOS-based bulletin board system software program, released from 1986 to 2000.T.A.G. was written in Borland Pascal and is free for business or personal use .... - BASICBASICBASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
-language interpreters BASICA and GW-BASICGW-BASICGW-BASIC was a dialect of the programming language BASIC developed by Microsoft from BASICA, originally for Compaq. It is compatible with Microsoft/IBM BASICA, but was disk based and did not need the ROM BASIC. It was bundled with MS-DOS operating systems on IBM PC compatibles by Microsoft... - Numerous first-person shooterFirst-person shooterFirst-person shooter is a video game genre that centers the gameplay on gun and projectile weapon-based combat through first-person perspective; i.e., the player experiences the action through the eyes of a protagonist. Generally speaking, the first-person shooter shares common traits with other...
games: Wolfenstein 3DWolfenstein 3DWolfenstein 3D is a video game that is generally regarded by critics and gaming journalists as having both popularized the first-person shooter genre on the PC and created the basic archetype upon which all subsequent games of the same genre would be built. It was created by id Software and...
, a joint venture between id SoftwareId SoftwareId Software is an American video game development company with its headquarters in Richardson, Texas. The company was founded in 1991 by four members of the computer company Softdisk: programmers John Carmack and John Romero, game designer Tom Hall, and artist Adrian Carmack...
and Apogee Software (later 3D Realms3D Realms3D Realms is a current video game publisher and former video game developer based in Garland, Texas, United States, established in 1987...
); id Software's Doom and Quake; and 3D Realms' Duke Nukem 3DDuke Nukem 3DDuke Nukem 3D is a first-person shooter computer game developed by 3D Realms and published by GT Interactive Software. The full version was released for the PC . It is a sequel to the platform games Duke Nukem and Duke Nukem II published by Apogee...
, Shadow WarriorShadow WarriorShadow Warrior, often known by its initials SW, is a first-person shooter computer game developed by 3D Realms and released on May 13, 1997 by GT Interactive. Shadow Warrior was developed using Ken Silverman's Build engine and improved on 3D Realms' previous Build engine game, Duke Nukem 3D...
, and Rise of the TriadRise of the TriadRise of the Triad: Dark War is a first-person shooter video game that was first released on February 17, 1995 and developed by Apogee Software . The members of the development team involved referred to themselves as "The Developers of Incredible Power"...
. The first two 3D Realms' titles were built with the DOS-based Build engineBuild engineThe Build engine is a first-person shooter engine created by Ken Silverman for 3D Realms. Like the Doom engine, the Build engine represents its world on a two-dimensional grid using closed 2D shapes called sectors, and uses simple flat objects called sprites to populate the world geometry with...
, written by Ken SilvermanKen SilvermanKen Silverman is a game programmer, best known for writing the Build engine used in Duke Nukem 3D, Shadow Warrior, Blood, and more than a dozen other games in the mid- to late-1990s...
and used for numerous DOS FPS games. R.O.T.T. (among others) was based upon a heavily-modified Wolfenstein 3D.
User interface
DOS systems utilize a command line interface. Programs are started by entering their filename at the command prompt. DOS systems include several programs as system utilities, and provides additional commands that don't correspond to programs (internal commands).In an attempt to provide a more user-friendly environment, numerous software manufacturers wrote file management programs
File manager
A file manager or file browser is a computer program that provides a user interface to work with file systems. The most common operations performed on files or groups of files are: create, open, edit, view, print, play, rename, move, copy, delete, search/find, and modify file attributes, properties...
that provided users with menu- and/or icon-based interfaces. Microsoft Windows is a notable example, eventually resulting in Microsoft Windows 9x
Windows 9x
Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced since 1995, which were based on the original and later modified Windows 95 kernel...
becoming a self-contained program loader, and replacing DOS as the most-used PC-compatible program loader. Text user interface
Text user interface
TUI short for: Text User Interface or Textual User Interface , is a retronym that was coined sometime after the invention of graphical user interfaces, to distinguish them from text-based user interfaces...
programs included Norton Commander
Norton Commander
Norton Commander was a prototypical orthodox file manager , written by John Socha and released by Peter Norton Computing . NC is a file manager which provides a text user interface on top of DOS. It was officially produced by Symantec between 1986 and 1998...
, Dos Navigator
Dos Navigator
Dos Navigator is a free orthodox file manager for DOS and Windows.- Influence of Dos Navigator :Dos Navigator is an influential early implementation of Orthodox File Manager . By implementing three additional types of Virtual file system : Xtree, Briefcase and List-based, DN opened a new generation...
, Volkov Commander
Volkov Commander
Volkov Commander is an orthodox file manager for DOS, in the close tradition of Norton Commander. The Volkov Commander was completely written in assembly language, and is thus very small and fast....
, Quarterdesk DESQview
DESQview
DESQview was a text mode multitasking program developed by Quarterdeck Office Systems which enjoyed modest popularity in the late 1980s and early 1990s...
, and SideKick
SideKick
SideKick was an early Personal Information Manager software application by Borland launched in 1983 under Philippe Kahn's leadership. It was notable for being a Terminate and Stay Resident program, which enabled it to load into memory then return the computer to the DOS command prompt, allowing...
. Graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
programs included Digital Research's Graphical Environment Manager
Graphical Environment Manager
GEM was a windowing system created by Digital Research, Inc. for use with the CP/M operating system on the Intel 8088 and Motorola 68000 microprocessors...
(originally written for CP/M) and GEOS
GEOS (16-bit operating system)
GEOS is a computer operating environment, graphical user interface, and suite of application software. Originally released as PC/GEOS, it runs on DOS-based, IBM PC compatible computers. The package later became GeoWorks Ensemble, then NewDeal Office, and is now Breadbox Ensemble...
.
Eventually, the manufacturers of major DOS systems began to include their own environment managers. MS-DOS/IBM DOS 4 included DOS Shell
DOS Shell
The DOS Shell is a file manager, debuted in MS-DOS and IBM DOS 4.0 . It was discontinued after version 6.0, but retained as part of the "Supplemental Disk" until 6.22 for MS-DOS; as such, it was not a core part of the operating system throughout its evolution, but rather an add-on...
; DR DOS 5.0, released the next year, included ViewMAX
ViewMAX
ViewMAX is the file manager supplied with DR DOS versions 5.0 and 6.0. It is based on a cut-down version of the GEM GUI.-Versions:ViewMAX/1 was distributed with DR DOS 5.0. It had a very similar appearance to previous GEM desktops – two fixed-size windows...
, based upon GEM.
Multitasking
By its original design, MS-DOS and PC DOS were single task operating systems, but Digital Research's Concurrent DOS 3.1, based on their Concurrent CP/M-86 operating system, introduced DOS multi-user and multi-tasking capabilities in March 1984. This system later evolved into FlexOSFlexOS
FlexOS was a modular real-time multi-user multi-tasking operating system designed for computer-integrated manufacturing, laboratory, retail and financial markets...
, Multiuser DOS
Multiuser DOS
Multiuser DOS is a soft real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers.An evolution of the older Concurrent CP/M-86 and Concurrent DOS operating systems, it was originally developed by Digital Research and later further developed by Novell...
, System Manager and REAL/32.
MS-DOS and PC DOS 5.0 introduced task switching via DOSSHELL in June 1991, and DR DOS 6.0 with TASKMAX, optionally aided by ViewMAX
ViewMAX
ViewMAX is the file manager supplied with DR DOS versions 5.0 and 6.0. It is based on a cut-down version of the GEM GUI.-Versions:ViewMAX/1 was distributed with DR DOS 5.0. It had a very similar appearance to previous GEM desktops – two fixed-size windows...
, in September 1991.
MS-DOS and PC DOS never had a multitasking
Computer multitasking
In computing, multitasking is a method where multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for...
capability; whereas pre-emptive multitasking in virtual DOS machines was introduced into the DR DOS line of products with Novell DOS 7 in December 1993 with EMM386 /MULTI and TASKMGR.
Programs such as VMIX or DESQView
DESQview
DESQview was a text mode multitasking program developed by Quarterdeck Office Systems which enjoyed modest popularity in the late 1980s and early 1990s...
could multitask even on an 8088, which did not have hardware support for multitasking due to its lack of protected mode
Protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units...
.
Limitations
Several limitations plague the DOS architecture. The original 8088 microprocessor could only address 1 megabyteMegabyte
The megabyte is a multiple of the unit byte for digital information storage or transmission with two different values depending on context: bytes generally for computer memory; and one million bytes generally for computer storage. The IEEE Standards Board has decided that "Mega will mean 1 000...
of physical RAM
Random-access memory
Random access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order with a worst case performance of constant time. Strictly speaking, modern types of DRAM are therefore not random access, as data is read in...
. With additional hardware devices being mapped into this range, the highest amount of available memory was 640 kilobyte
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
s, known as conventional memory
Conventional memory
In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes of the memory on IBM PC or compatible systems. It is the read-write memory usable by the operating system and application programs...
. Due to DOS's structure, this was assumed to be the maximum, and DOS could not address more than this. An early workaround was expanded memory
Expanded memory
In DOS memory management, expanded memory is a system of bank switching introduced April 24, 1985 that provided additional memory to DOS programs beyond the limit of conventional memory. Expanded memory uses parts of the address space normally dedicated to communication with peripherals for program...
; later, extended memory
Extended memory
In DOS memory management, extended memory refers to memory above the first megabyte of address space in an IBM PC or compatible with an 80286 or later processor. The term is mainly used under the DOS and Windows operating systems...
was developed with the 80286. While these provided usable memory to applications, they still had to start in conventional memory, thereby using part of the existing 640 KB. Newer version of DOS starting with 5.0 could relocate parts of itself as well as device drivers into previously unused areas in the adapter range between 640 KB and 1 MB (upper memory) and the HMA (high memory area), thereby freeing up more conventional memory for DOS programs to run within the first 640 KB of the system. With DPMS
DOS Protected Mode Services
DOS Protected Mode Services is a set of extended DOS memory management services to allow DPMS-enabled DOS drivers to load and execute in extended memory and protected mode....
, it was possible to load and execute drivers in extended memory, leaving only a stub in conventional memory as an interface with the DOS system. With the 80386 microprocessor's redesigned protected mode
Protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units...
, DOS extender
DOS extender
A DOS extender is a computer software program which enables software to run under a protected mode environment even though the host operating system is only capable of operating in real mode....
s and the DOS Protected Mode Interface
DOS Protected Mode Interface
In computing, the DOS Protected Mode Interface is a specification introduced in 1989 which allows a DOS program to run in protected mode, giving access to many features of the processor not available in real mode...
were able to provide additional memory to extended DOS applications running in protected mode. The XMS drivers in many versions of DOS have a limit of 64 MB, but this limit is not in the underlying architecture, but in specific implementations. Using third-party XMS drivers, extended DOS applications can take advantage of up to theoretical 4 GB of memory.
DOS also has an upper limit to the size of hard disk
Hard disk
A hard disk drive is a non-volatile, random access digital magnetic data storage device. It features rotating rigid platters on a motor-driven spindle within a protective enclosure. Data is magnetically read from and written to the platter by read/write heads that float on a film of air above the...
partitions. This has two causes. First, many DOS-type systems never had support for any file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...
newer than FAT16, which, by design, does not allow partitions larger than 2 gigabyte
Gigabyte
The gigabyte is a multiple of the unit byte for digital information storage. The prefix giga means 109 in the International System of Units , therefore 1 gigabyte is...
s. Additionally, DOS accesses the hard disk by calling Interrupt 13h
INT 13
INT 13H or INT 19 is shorthand for BIOS interrupt call 13hex, the 20th interrupt vector in an x86-based computer system. The BIOS typically sets up a real mode interrupt handler at this vector that provides sector-based hard disk and floppy disk read and write services using cylinder-head-sector ...
. Older version of DOS utilized the cylinder-head-sector
Cylinder-head-sector
Cylinder-head-sector, also known as CHS, was an early method for giving addresses to each physical block of data on a hard disk drive. In the case of floppy drives, for which the same exact diskette medium can be truly low-level formatted to different capacities, this is still true.Though CHS...
(CHS) system of mapping the disk. Under this system, only the first 8.4 GB or 7.84 GiB are visible to the operating system. Newer versions of DOS also deploy LBA
Logical block addressing
Logical block addressing is a common scheme used for specifying the location of blocks of data stored on computer storage devices, generally secondary storage systems such as hard disks....
-access through Interrupt 13h. Thereby, they can address hard disks up to 128 GB in size. Newer versions of DOS also support the FAT32 file system (in addition to FAT12 and FAT16) to allow for partitions larger than 2 GB.
Filenames in the FAT filesystem can not be longer than eight characters, and the filename extension
Filename extension
A filename extension is a suffix to the name of a computer file applied to indicate the encoding of its contents or usage....
cannot be longer than three. The VFAT extension, introduced with Windows 95, however, allows to store them in hidden directory entries on FAT12, FAT16 or FAT32 volumes.
Using the traditional DOS APIs, the maximum file size remains limited to 4 GB, but 3rd-party extensions such as FAT+ exist to work around this problem.
See also
- COMMAND.COMCOMMAND.COMCOMMAND.COM is the filename of the default operating system shell for DOS operating systems and the default command line interpreter on Windows 95, Windows 98 and Windows Me...
, the command line interpreter for DOS and MS-Windows 9xWindows 9xWindows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced since 1995, which were based on the original and later modified Windows 95 kernel... - MS-DOS APIMS-DOS APIThe MS-DOS API is an API used originally in MS-DOS/PC-DOS, and later by other DOS systems. Most calls to the DOS API invoke software interrupt 21h . By calling INT 21h with a subfunction number in the AH processor register and other parameters in other registers, one invokes various DOS services...
- VGA compatible text modeVGA compatible text modeThe implementation of computer monitor text mode on VGA compatible hardware is quite complex. Its use on PC compatible computers was widespread in 1980s–1990s , but persists today for some applications even on modern desktop computers...
, the base of DOS’s TUI on IBM PC compatibles - Timeline of x86 DOS operating systemsTimeline of x86 DOS operating systemsThis article presents a timeline of events in the history of x86 DOS operating systems from 1973 to 2006.-Important Events in DOS History:-See also:*Comparison of x86 DOS operating systems*Timeline of Microsoft Windows*Timeline of OpenBSD...
External links
- MS-DOS Reference — MS-DOSMS-DOSMS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
commands; many also apply to other DOSes on the PC platform. - Timeline of DOS and Windows versions
- DOS - where hardware is the only limit