DOS

Source: Wikipedia, the free encyclopedia.

MS-DOS 6
, with an example of its directory structure

DOS (

ROM-DOS (1989), PTS-DOS (1993), and FreeDOS
(1998). MS-DOS dominated the IBM PC compatible market between 1981 and 1995.

Although the name has come to be identified specifically with this particular family of operating systems, "DOS" is a platform-independent acronym for "disk operating system",[2] whose use predates the IBM PC. Dozens of other operating systems also use the acronym, beginning with the mainframe DOS/360 from 1966. Others include Apple DOS, Apple ProDOS, Atari DOS, Commodore DOS, TRSDOS, and AmigaDOS.

History

Origins

Apple CP/M from Digital Research on a Z-80 SoftCard for the Apple II

microcomputers—in order to simplify porting CP/M applications to MS-DOS.

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, they initially approached IBM board member Mary Maxwell Gates' son, Bill Gates.[citation needed] IBM was then sent to Digital Research, and a meeting was set up. However, 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". Digital Research founder Gary Kildall refused, and IBM withdrew.[3][4]

A simulated SCP 86-DOS
session

IBM again approached Bill Gates. Gates in turn approached

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 US$50,000. This became Microsoft Disk Operating System, MS-DOS, introduced in 1981.[5]
Within a year Microsoft licensed MS-DOS to over 70 other companies,
PC DOS, for the IBM PC.[5] 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 US$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.[3]

Microsoft originally sold MS-DOS only to original equipment manufacturers (OEMs). One major reason for this was that not all early PCs were 100% IBM PC compatible. DOS was structured such that there was a separation between the system specific device driver code (IO.SYS) and the DOS kernel (MSDOS.SYS). Microsoft provided an OEM Adaptation Kit (OAK) which allowed OEMs to customize the device driver code to their particular system. By the early 1990s, most PCs adhered to IBM PC standards so Microsoft began selling a retail version of MS-DOS, starting with MS-DOS 5.0.

In the mid-1980s, Microsoft developed a

OS/2 1.0
kernel. This version of DOS is distinct from the widely released PC DOS 4.0 which was developed by IBM and based upon DOS 3.3.

Digital Research attempted to regain the market lost from CP/M-86, initially with

.

BYTE in 1983 described as "the multi-user MS-DOS of the future".[10][11]

IBM, however, did not want to replace DOS.[12] After AT&T began selling Unix, Microsoft and IBM began developing OS/2 as an alternative.[9] The two companies later had a series of disagreements over two successor operating systems to DOS, OS/2 and Windows.[13] They split development of their DOS systems as a result.[14] The last retail version of MS-DOS was MS-DOS 6.22; after this, MS-DOS became part of Windows 95, 98 and Me. The last retail version of PC DOS was PC DOS 2000 (also called PC DOS 7 revision 1), though IBM did later develop PC DOS 7.10 for OEMs and internal use.

The

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.[15][16]

Decline

Early versions of

OS kernel, though the MS-DOS component remained for compatibility. With Windows 95 and 98, but not ME, the MS-DOS component could be run without starting Windows.[18][19][20]
With DOS no longer required to use Windows, the majority of users stopped using it directly.

Continued use

Available compatible systems in 2012[

REAL/32. Some computer manufacturers, including Dell and HP, sell computers with FreeDOS and DR-DOS as OEM operating systems.[22][23]

Embedded systems

DOS's structure of accessing hardware directly allows it to be used in

Emulation

On Linux, it is possible to run DOSEMU, a Linux-native virtual machine for running DOS programs at near native speed. There are a number of other emulators for running DOS on various versions of Unix and Microsoft Windows such as DOSBox.[26][27] DOSBox is designed for legacy gaming (e.g. King's Quest, Doom) on modern operating systems.[17][26]

Design

MS-DOS and IBM PC DOS related operating systems are commonly associated with machines using the

DOS/NT
for the Motorola 68000 series of CPUs in the early 1990s. While these systems loosely 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-tasking operating system with basic

non-reentrant: only one program at a time can use them, and DOS itself has no functionality to allow more than one program to execute at a time. The DOS kernel provides various functions for programs
(an application program interface), like character I/O, file management, memory management, program loading and termination.

DOS provides the ability for

The operating system offers an application programming interface that allows development of character-based applications, but not for accessing most of the

printers, or mice. This required programmers to access the hardware directly, usually 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.[29]

Boot sequence

The DOS system files loaded by the boot sector must be

directory entries.[34]
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.

In PC DOS and DR DOS 5.0 and above, the DOS system files are named IBMBIO.COM instead of IO.SYS and IBMDOS.COM instead of MSDOS.SYS. Older versions of DR DOS used DRBIOS.SYS and DRBDOS.SYS instead.

Starting with

MS-DOS 7.0 the binary system files IO.SYS and MSDOS.SYS were combined into a single file IO.SYS whilst MSDOS.SYS became a configuration file similar to CONFIG.SYS and AUTOEXEC.BAT. If the MSDOS.SYS BootGUI
directive is set to 0, the boot process will stop with the command processor (typically COMMAND.COM) loaded, instead of executing WIN.COM automatically.

File system

DOS uses a filesystem which supports 8.3 filenames: 8 characters for the filename and 3 characters for the extension. Starting with DOS 2 hierarchical directories are supported. Each directory name is also 8.3 format but the maximum directory path length is 64 characters due to the internal current directory structure (CDS) tables that DOS maintains. Including the drive name, the maximum length of a fully qualified filename that DOS supports is 80 characters using the format drive:\path\filename.ext followed by a null byte.

DOS uses the

FAT32
which used 32-bit allocation entries and could support hard drives up to 137 GiB and beyond.

Starting with DOS 3.1, file redirector support was added to DOS. This was initially used to support networking but was later used to support CD-ROM drives with MSCDEX. IBM PC DOS 4.0 also had preliminary installable file system (IFS) support but this was unused and removed in DOS 5.0. DOS also supported Block Devices ("Disk Drive" devices) loaded from CONFIG.SYS that could be used under the DOS file system to support network devices.

Drive naming scheme

In DOS, drives are referred to by identifying letters. Standard practice is to reserve "A" and "B" for

RAM disks, 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.[35]

Because DOS applications use these drive letters directly (unlike the /dev directory in

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 as they are occupied by built-in character devices. These restrictions also affect several Windows versions, in some cases causing crashes and security vulnerabilities.[36]

The reserved names are:

  • COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 (serial communication ports)
  • CON, for console
  • LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 (line printers)
  • AUX, for auxiliary
  • PRN, for printer[37]
  • NUL, for null devices; added in 86-DOS 1.10 and PC DOS 1.0.

These names (except for NUL) have continued to be supported in all versions of MS-DOS, PC DOS and DR-DOS ever since.

$IDLE$ device for dynamic idle detection to saving power and improve multitasking. LPT4 is an optional built-in driver for a fourth line printer supported in some versions of DR-DOS since 7.02. CONFIG$ constitutes the real mode PnP
manager in MS-DOS 7.0–8.0.

AUX typically defaults to COM1, and PRN to LPT1 (LST),[38] but these defaults can be changed in some versions of DOS to point to other serial or parallel devices.[39][40][42] PLT was reconfigurable as well.[39][40]

Filenames ended with a colon (:) such as NUL: conventionally indicate device names, but the colon is not actually a part of the name of the built-in device drivers. Colons are not necessary to be typed in some cases, for example:

ECHO This achieves nothing > NUL

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.

Memory management

DOS was designed for the Intel 8088 processor, which can only directly access a maximum of 1 MiB of RAM.

kibibytes (KiB) as the maximum amount of memory available to programs and reserved the remaining 384 KiB for video memory, the read-only memory of adapters on some video and network peripherals, and the system's BIOS. By 1985, some DOS applications were already hitting the memory limit, while much of reserved was unused, depending on the machine's specifications.[44]

Specifications were developed to allow access to additional memory. The first was the

upper memory block area. Generally XMS support was provided by HIMEM.SYS or a V86 mode memory manager like QEMM or 386MAX which also supported EMS.[48]

Starting with DOS 5,[49] DOS could directly take advantage of the HMA by loading its kernel code and disk buffers there via the DOS=HIGH statement in CONFIG.SYS. DOS 5+ also allowed the use of available upper memory blocks via the DOS=UMB statement in CONFIG.SYS.[50]

DOS under OS/2 and Windows

The DOS emulation in OS/2 and Windows runs in much the same way as native applications do. They can access all of the drives and services, and can even use the host's clipboard services. Because the drivers for file systems and such forth reside in the host system, the DOS emulation needs only provide a DOS API translation layer which converts DOS calls to OS/2 or Windows system calls. The translation layer generally also converts BIOS calls and virtualizes common I/O port accesses which many DOS programs commonly use.

In Windows 3.1 and 9x, the DOS virtual machine is provided by WINOLDAP. WinOldAp creates a virtual machine based on the program's PIF file, and the system state when Windows was loaded. The DOS graphics mode, both character and graphic, can be captured and run in the window. DOS applications can use the Windows clipboard by accessing extra published calls in WinOldAp, and one can paste text through the WinOldAp graphics.

The emulated DOS in OS/2 and Windows NT is based upon DOS 5. Although there is a default configuration (config.sys and autoexec.bat), one can use alternate files on a session-by-session basis. It is possible to load drivers in these files to access the host system, although these are typically third-party.

Under OS/2 2.x and later, the DOS emulation is provided by DOSKRNL. This is a file that represents the combined IBMBIO.COM and IBMDOS.COM, the system calls are passed through to the OS/2 windowing services. DOS programs run in their own environment, the bulk of the DOS utilities are provided by bound DOS / OS2 applications in the \OS2 directory. OS/2 can run Windows 3.1 applications by using a modified copy of Windows (Win-OS/2). The modifications allow Windows 3.1 programs to run seamlessly on the OS/2 desktop, or one can start a WinOS/2 desktop, similar to starting Windows from DOS.

OS/2 allows for 'DOS from Drive A:', (VMDISK). This is a real DOS, like MS-DOS 6.22 or PC DOS 5.00. One makes a bootable floppy disk of the DOS, adds a number of drivers from OS/2, and then creates a special image. The DOS booted this way has full access to the system, but provides its own drivers for hardware. One can use such a disk to access cdrom drives for which there is no OS/2 driver.

In all 32-bit (IA-32) editions of the Windows NT family since 1993, DOS emulation is provided by way of a virtual DOS machine (NTVDM). 64-bit (IA-64) versions of Windows do not support NTVDM and cannot run 16-bit DOS applications directly; third-party emulators such as DOSbox can be used to run DOS programs on those machines.

User interface

DOS systems use a command-line interface. A program is started by entering its filename at the command prompt. DOS systems include utility programs and provide internal commands that do not correspond to programs.[51]

In an attempt to provide a more user-friendly environment, numerous software manufacturers wrote

GEM (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;[52] DR DOS 5.0, released the following year, included ViewMAX, based upon GEM.[53]

Terminate and stay resident

Although DOS is not a multitasking operating system, it does provide a terminate-and-stay-resident (TSR) function which allows programs to remain resident in memory. These programs can hook the system timer and/or keyboard interrupts to allow themselves to run tasks in the background or to be invoked at any time, preempting the current running program and effectively implementing a simple form of multitasking on a program-specific basis. The DOS PRINT command does this to implement background print spooling. Borland Sidekick, a popup personal information manager (PIM), also uses this technique.

Terminate-and-stay-resident programs are also used to provide additional features not available by default. Programs like CED and DOSKEY provide command-line editing facilities beyond what is available in COMMAND.COM. Programs like the Microsoft CD-ROM Extensions (MSCDEX) provide access to files on CD-ROM disks.

Some TSRs can even perform a rudimentary form of task switching. For example, the

386
).

Software

Development tools

See also

  • COMMAND.COM (the command line interpreter for DOS and Windows 9x)
  • CP/M (Digital Research early operating system similar to DOS)
  • Disk Control Program [de] (DCP, an MS-DOS derivative by the former East-German VEB Robotron
    )
  • DOS API
  • DOS/V
  • Index of DOS games
  • List of DOS operating systems
  • PC-MOS/386 (a DOS-compatible multiuser operating system)
  • VGA-compatible text mode
    , the base of DOS's TUI on IBM PC compatibles

References

  1. .
  2. ^ Dictionary.com Archived 2017-11-12 at the Wayback Machine
  3. ^ a b Rolander, Tom. "The rest of the story: How Bill Gates beat Gary Kildall in OS war, Part 1". The Scoble Show (Interview). Interviewed by Scoble, Robert. Archived from the original on 2007-11-04.
  4. .
  5. ^ a b Bellis, Mary. "The Unusual History of MS-DOS The Microsoft Operating System". Retrieved 2008-09-02.
  6. from the original on 2015-03-18. Retrieved 2015-01-29.
  7. ^ "Did you know that OS/2 wasn't Microsoft's first non Unix multi-tasking operating system?". Archived from the original on 2012-11-04.
  8. ^ "Larry Osterman's Biography". Archived from the original on 2013-06-02.
  9. ^ . Retrieved 2013-11-06.
  10. BYTE
    : 6. Retrieved 2013-10-19.
  11. BYTE
    : 132. Retrieved 2015-01-30.
  12. ^ Howitt, Doran (1984-12-10). "Unix and the Single User". InfoWorld: 28. Archived from the original on 2018-01-29. Retrieved 2015-02-07.
  13. ^ Pollack, Andrew (1991-07-27). "Microsoft Widens Its Split With I.B.M. Over Software". The New York Times. Archived from the original on 2010-11-02. Retrieved 2008-09-02.
  14. ^ Brinkley, Joel (1999-05-28). "I.B.M. Executive Describes Price Pressure by Microsoft". New York Times. Archived from the original on 2008-12-11. Retrieved 2008-09-02.
  15. on 2012-05-29. Retrieved 2008-06-14.
  16. Hall, Jim (2006-09-23). "History of FreeDOS". freedos.org. Archived from the original
    on 2007-05-27. Retrieved 2007-05-28.
  17. ^ a b Bannan, James (2006-10-13). "HOW TO: Coax retro DOS games to play on Vista". Archived from the original on 2008-08-01. Retrieved 2008-07-03.
  18. ^ "Finding The DOS In Windows 95". Smart Computing. March 1996. Archived from the original on 2004-07-07. Retrieved 2008-07-12.
  19. Chen, Raymond (2007-12-24). "What was the role of MS-DOS in Windows 95?". The Old New Thing - Site Home - MSDN Blogs. Archived
    from the original on 2014-02-05. Retrieved 2014-02-05.
  20. ^ "Description of Restarting Computer in MS-DOS Mode". support.microsoft.com. 2007-01-19. Archived from the original on 2014-02-05. Retrieved 2014-02-05.
  21. ^ "Home". rxdos.sourceforge.net.
  22. Hall, Jim (2007-07-13). "Jim Hall's blog - 2007". Archived from the original
    on 2012-10-25. Retrieved 2008-06-12.
  23. ^ "Dell PCs Featuring FreeDOS". Archived from the original on 2008-03-19. Retrieved 2008-06-14.
  24. ^ "DR-DOS Embedded DOS". Archived from the original on 2008-12-21. Retrieved 2008-09-26.
  25. ^ "Datalight DOS Selected for Canon's New Line of Digital Still Cameras". Business Wire. 1999-08-24. Archived from the original on 2012-07-09. Retrieved 2008-09-26.
  26. ^ a b "DOSBox Information". Archived from the original on 2008-05-25. Retrieved 2008-05-18.
  27. ^ "DOSEMU Home". 2007-05-05. Archived from the original on 2008-07-23. Retrieved 2008-07-03.
  28. ^ "Batch File Help". computerhope.com. Archived from the original on 2008-09-07. Retrieved 2008-09-10.
  29. ^ Matczynski, Michael. "ZINGTECH - Guide to the New Game Programmer". Archived from the original on 2008-12-19. Retrieved 2008-09-02.
  30. ^ "The Master Boot Record (MBR) and What it Does". Archived from the original on 2013-05-27. 090912 dewassoc.com
  31. ^ "Reverse-Engineering DOS 1.0 – Part 1: The Boot Sector « pagetable.com". Archived from the original on 2009-05-11. 090912 pagetable.com
  32. ^ "CONFIG.SYS Commands". Archived from the original on 2009-05-02. 090913 academic.evergreen.edu
  33. ^ Kozierok, Charles (2001). "The DOS Boot Process". The PC Guide. Archived from the original on 2008-07-19. Retrieved 2008-09-02.
  34. ^ "misc.txt". Archived from the original on 2010-06-29. 090912 arl.wustl.edu
  35. ^ a b "Drive Letter Assignment and Choosing Primary vs. Logical Partitions". The PC Guide. 2001-04-17. Archived from the original on 2012-04-17. Retrieved 2012-04-04.
  36. ^ "Microsoft Windows MS-DOS Device Name DoS Vulnerability". Archived from the original on 2011-07-25. Retrieved 2008-09-02.
  37. PC Magazine. Archived
    from the original on 2008-09-29. Retrieved 2008-09-02.
  38. ^ a b c "MS-DOS Device Driver Names Cannot be Used As File Names". Revision 2.0. Microsoft. 2003-05-12. KB74496, Q74496. Archived from the original on 2012-07-21.
  39. ^
    Hewlett-Packard Company
    , Portable Computer Division. August 1985. 45559-90001. Retrieved 2016-11-27.
  40. ^
    Hewlett-Packard Company. December 1986 [August 1985]. 45559-90006. Archived
    (PDF) from the original on 2016-11-28. Retrieved 2016-11-27.
  41. TeleVideo PC DOS 2.11
    .)
  42. ^ Paul, Matthias R. (1997-10-02). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Archived from the original on 2003-10-04. Retrieved 2009-03-29. [1]
  43. ^ Bailes & Mueller 1992, p. 5.
  44. ^ Bailes & Mueller 1992, pp. 42–44.
  45. ^ Bailes & Mueller 1992, pp. 67–68.
  46. ^ Mueller 1998, pp. 169.
  47. ^ Mueller 1998, pp. 243–244.
  48. ^ Bailes & Mueller 1992, p. 79–80.
  49. ^ Mueller 1998, p. 243.
  50. ^ Bailes & Mueller 1992, pp. 150–151.
  51. .
  52. from the original on 2015-03-18.
  53. Osborne McGraw-Hill
    . pp. 442–444.
  54. ^ Version 1.47 is archived at "Back and Forth 1.47". Archived from the original on 2013-11-05. Retrieved 2013-08-05. and says "(C) 1990 by Progressive Solutions, Inc."
  55. ^ Darrow, Barbara (2002-02-01). "Whatever Happened To Lotus 1-2-3?". Archived from the original on 2009-01-09. Retrieved 2008-07-12.

Further reading

External links