DOS
8146
226060047
2008-07-16T17:26:17Z
JeremyMcCracken
233113
/* Emulators */ needs dab, and runs on other Windows versions
{{otheruses4|the family of microcomputer operating systems|the IBM mainframe operating system|DOS/360|other uses|DOS (disambiguation)}}
[[Image:MS-DOS 6.22 dir screenshot.png|right|thumb|300px|Instructions on how to use the [[dir (command)|dir]]</tt> command.]]
'''DOS''', for "Disk Operating System",<ref>{{cite book|last=Murdock|first=Everett|title=DOS the Easy Way|publisher=EasyWay Downloadable Books|year=1988|isbn=0923178007}}</ref> is a shorthand term for a family of closely related [[operating system]]s that dominated the [[IBM PC compatible]] market between 1981 and 1995, or until about 2000 if one includes DOS-based [[Microsoft Windows]] versions ([[Windows 95]], [[Windows 98]], and [[Windows ME]]). Related systems include [[MS-DOS]], [[IBM PC-DOS|PC-DOS]], [[DR-DOS]] (and [[Novell DOS]] and [[OpenDOS]], which were based on DR-DOS), [[FreeDOS]], [[PTS-DOS]], [http://www.datalight.com/products/romdos/ ROM-DOS], JM-OS and several others.
In spite of the common usage, there has never been a microcomputer operating system called simply "DOS" (with the exception of an unrelated [[DOS/360|IBM mainframe operating system]] in the 1960s). A number of unrelated, non-x86 microcomputer disk operating systems had "DOS" in their name, and are often referred to simply as "DOS" when discussing machines that use them (e.g. [[AmigaDOS]], [[AMSDOS]], [[ANDOS]], [[Apple DOS]], [[Atari DOS]], [[Commodore DOS]], [[CSI-DOS]], [[ProDOS]], and [[TRS-DOS]]). These were incompatible with [[DOS executable]]s and the [[MS-DOS API]].
<!--
'''DOS''' is a family of closely related [[operating system]]s that dominated the [[IBM PC compatible]] market from 1981 until the late 90s. Related systems include [[MS-DOS]], [[IBM PC-DOS|PC-DOS]], [[DR-DOS]], [[FreeDOS]], [[PTS-DOS]] and several others. In spite of the common usage, there has never been a microcomputer operating system called simply "DOS" (though there was [[DOS/360|a mainframe operating system]] with that name in the 1960s). A number of unrelated non-x86 microcomputer operating systems had "DOS" in their name and are often referred to as "DOS" in the context of the machines that use them ([[AmigaDOS]], [[AMSDOS]], [[ANDOS]], [[Apple DOS]], [[Atari DOS]], [[Commodore DOS]], [[CSI-DOS]], [[ProDOS]], [[TRS-DOS]]). In addition, several varieties of DOS released for the x86 microcomputers—the most popular of which was [[MS-DOS]].
-->
==Operating system structure==
All DOS-type operating systems run on machines with the [[Intel]] [[x86]] or compatible [[CPU]]s, mainly the [[IBM PC]] and [[IBM PC compatible|compatibles]]. Initially, DOS was not restricted to these, and machine-dependent versions of DOS and similar operating systems were produced for many non-IBM-compatible [[x86]]-based machines.<ref>See [[MS-DOS]]</ref>
DOS is a single-user, single-task operating system with basic [[kernel (computer science)|kernel]] functions that are [[reentrant|non-reentrant]] code; once a process is begun, it must be allowed to run until finished before the same process can be used again.<ref>[http://oopweb.com/Assembly/Documents/ArtOfAssembly/Volume/Chapter_18/CH18-3.html RESIDENT PROGRAMS]</ref> The DOS kernel provides various functions for programs, like displaying characters on-screen, reading a character from the keyboard, and accessing disk files.
== History ==
MS-DOS (and rebranded IBM PC-DOS which was licensed therefrom), and its predecessor, [[86-DOS]], were inspired by [[CP/M]] (Control Program / (for) Microcomputers) from [[Digital Research]], which was the dominant disk operating system for 8-bit [[Intel 8080]] and [[Zilog]] [[Zilog Z-80|Z80]] based microcomputers.
In 1980, IBM was introducing their first [[microcomputer]], built with the [[Intel 8088]] microprocessor, and needed an operating system. Seeking an 8088-compatible build of CP/M, IBM initially approached Microsoft CEO Bill Gates (possibly believing that Microsoft owned CP/M due to the [http://apple2history.org/museum/peripheralcards_nonapple/softcard.html Microsoft Softcard], which allowed CP/M to run on an [[Apple II]]<ref name="rolander">[http://www.podtech.net/scobleshow/technology/1593/the-rest-of-the-story-how-bill-gates-beat-gary-kildall-in-os-war-part-1 The rest of the story: How Bill Gates beat Gary Kildall in OS war, Part 1 | ScobleShow: Videoblog about geeks, technology, and developers<!-- Bot generated title -->]</ref> ). 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.<ref name="rolander" />
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]] [[8086]] [[Central processing unit|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.<ref name="mshist">[http://inventors.about.com/library/weekly/aa033099.htm The Unusual History of MS-DOS The Microsoft Operating System<!-- Bot generated title -->]</ref>
Microsoft also licensed their system to multiple computer companies, who supplied MS-DOS for their own hardware and 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, [[IBM PC-DOS|PC-DOS]], for the IBM PC. The PC used the [[Intel 8088]] CPU, which used the same instruction set as the 8086.<ref name="mshist" /> 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. CP/M cost almost $200 more than PC-DOS, however, and sales were low. CP/M faded, with MS-DOS and PC-DOS becoming the marketed operating system for PCs and PC compatibles.<ref name="rolander" />
Digital Research attempted to regain the market lost from CP/M-86 with [[DR-DOS]], compatible with both MS-DOS and CP/M-86 software. Digital Research was later bought by [[Novell]], and DR DOS became Novell DOS 7, and later became part of Caldera (as [[OpenDOS]] and DR DOS 7), Lineo, and DeviceLogics.
Microsoft and IBM later had a series of disagreements over two successor operating systems to DOS- Microsoft's Windows and IBM's [[OS/2]].<ref>[http://query.nytimes.com/gst/fullpage.html?res=9D0CE0D81339F934A15754C0A967958260 Microsoft Widens Its Split With I.B.M. Over Software]</ref> They split development of their DOS systems as a result.<ref>[http://query.nytimes.com/gst/fullpage.html?res=990DEEDD1630F93BA15756C0A96F958260 I.B.M. Executive Describes Price Pressure by Microsoft]</ref> MS-DOS was partially transformed into Windows; the last version of PC-DOS was PC-DOS 2000, released in 1998.
===Free systems===
The [[FreeDOS]] project began [[June 26]], [[1994]], when Microsoft announced it would no longer sell or support MS-DOS. [[Jim Hall (programmer)|Jim Hall]] then posted a manifesto proposing the development of an open-source replacement. Within a few weeks, other programmers including Pat Villani and Tim Norman joined the project. A kernel, the command.com command line interpreter (shell) and core utilities were created by pooling code they had written or found available. There were several official pre-release distributions of FreeDOS before the FreeDOS 1.0 distribution was released on September 3, 2006. FreeDOS does not require license fees or royalties.<ref>{{cite web|url=http://www.linuxdevices.com/articles/AT3952799051.html|title=The past, present, and future of the FreeDOS Project|date=2002-03-25|accessdate=2008-06-14|author=Jim Hall}}</ref><ref>{{cite web| url=http://www.freedos.org/freedos/about/| year=September 23, 2006| title=History of FreeDOS|first=Jim| last=Hall| publisher=freedos.org| accessdate=2007-05-28}}</ref> Some computer manufactures, including [[Dell]] and [[HP]], sell computers with FreeDOS.<ref>{{cite web|url=http://www.freedos.org/jhall/|title=Jim Hall|date=2007-07-13|accessdate=2008-06-12|author=Jim Hall}}</ref><ref>{{cite web|url=http://www.dell.com/content/topics/segtopic.aspx/e510_nseries?c=us&cs=19&l=en&s=dhs|title=Dell PCs Featuring FreeDOS|accessdate=2008-06-14}}</ref>
A 100% [[GPL]] licensed DOS, NX-DOS, also exists. It is currently under development, 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 <ref>{{cite web | url = http://www.linuxdevices.com/news/NS9509696845.html | title = GPL'd DOS workalike adds features | date = 2007-04-01| accessdate=2008-06-01}}</ref>
The only other DOS-type systems that are actively distributed now are [[Enhanced DR-DOS]], the Russian [[PTS-DOS]], and embeddable ROM-DOS. Only one commercially available DOS system is sold, DR-DOS.
===DOS and Microsoft Windows===
{{main|History of Microsoft Windows}}
Early versions of [[Microsoft Windows]] were an application that ran on top of a separate version of DOS.<ref name="emulate"/> With [[Windows 3.1x|Windows for Workgroups 3.11]], DOS was essentially reduced to the role of a boot loader for the Windows kernel. With Windows 95, 98, and ME, MS-DOS is included as the boot loader rather than being sold separately. With Windows 95 and 98, but not ME, the MS-DOS component could be run without starting Windows.<ref>{{cite web|url=http://www.smartcomputing.com/Editorial/article.asp?article=articles/archive/95win/95win21/95win21.asp&guid=|title=Finding The DOS In Windows 95|work=Smart Computing|date=March 1996|accessdate=2008-07-12}}</ref>
The true 32-bit versions of Windows starting with NT and including 2003, XP, and Vista, run entirely independent of DOS. Most versions include a DOS subsystem, [[Virtual DOS Machine|NT Virtual DOS Machine]] (NTVDM), that runs a modified version of MS-DOS 5.0 in a virtual machine for the purpose of running DOS software and Windows command-line programs of similar appearance which are not compatible with true MS-DOS.
===Versions===
''See [[Comparison of x86 DOS operating systems]] for a timeline and comparison of versions.''
==Operations==
===Accessing hardware under DOS===
{{seealso|BIOS interrupt call}}
The operating system offers a [[hardware abstraction layer]] that allows development of character-based applications, but not for accessing most of the [[computer hardware|hardware]], such as [[Video card|graphics card]]s, [[computer printer|printer]]s, or [[computer mouse|mice]]. This required programmers to access the hardware directly, 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.<ref>http://www.zingtech.com/features/gamedev/gnewprog.htm</ref>
===Reserved device names===
{{main|Device file system}}
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.<ref>[http://www.juniper.net/security/auto/vulnerabilities/vuln1043.html Juniper.net]</ref>
A partial list of these reserved names is: <code>NUL:</code>, <code>COM1:</code> or <code>AUX:</code>, <code>COM2:</code>, <code>COM3:</code>, <code>COM4:</code>, <code>CON:</code>, <code>LPT1:</code> or <code>PRN:</code>, <code>LPT2:</code>, <code>LPT3:</code>, and <code>CLOCK$</code>.<ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=DOS+device+names&i=41766,00.asp PC Magazine]</ref>
===Drive naming scheme===
{{main|Drive letter assignment}}
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 permits the use of both letters for one drive, and DOS will ask to swap disks. This permits copying from floppy to floppy or having a program run from one floppy while having 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 assigning the active [[primary partition]] on each drive letters first, then making a second pass over the drives to allocate letters to logical drives in the [[extended partition]], then making a third, which gives the other non-active [[primary partition]]s their names. (Always assumed, they exist and contain a DOS-readable file system.) Lastly, DOS allocate letters for [[optical disc drive]]s, [[RAM disk]]s, and other hardware. Letter assignments usually occur in the order of the drivers loaded, but the drivers can instruct DOS to assign a different letter. An example is network drives, for which the driver will assign letters nearer the end of the alphabets.<ref name="driveletter">http://www.storagereview.com/guide/partLetter.html</ref>
Because DOS applications use these drive letters directly (unlike the /dev directory in [[Unix-like]] systems), they can be disrupted by adding new hardware that needs a drive letter. An example is the addition of a new hard drive with a primary partition to an original hard drive that contains logical drives in extended partitions. As primary partitions have higher priority than the logical drives, it will change drive letters in the configuration. Moreover, attempts to add a new hard drive with only logical drives in an extended partition would still disrupt the letters of RAM disks and optical drives. This problem persisted through the 9x versions of Windows until NT, which preserves the letters of existing drives until the user changes it.<ref name="driveletter" />
===Boot sequence===
The boot information for PC-compatible computers is located at [[Cylinder-head-sector#track|track]] zero. In DOS, this code will read the DOS [[BIOS]] into memory and execute it. The BIOS is located in [[IBMBIO.COM]] on DR DOS and PC DOS, and [[IO.SYS]] on MS DOS. The BIOS will then load the DOS kernel, located in [[IBMDOS.COM]] (PC DOS or DR DOS) or [[MSDOS.SYS]] (MS DOS). In the Windows DOS versions (MS DOS 7 and 8), the BIOS and kernel are combined in IO.SYS, and MSDOS.SYS is a text configuration file. The kernel then executes the [[CONFIG.SYS]] file. In CONFIG.SYS, the <tt>SHELL</tt> command specifies the location of the shell (typically [[COMMAND.COM]]). The shell will then launch, and open a startup batch file (typically [[AUTOEXEC.BAT]]).<ref>http://www.pcguide.com/ref/hdd/file/structBoot-c.html</ref>
==Software==
[[Image:Arachne VESA Mode.png|thumb|right|250px|Arachne web browser]]
:''See also:[[:Category:DOS software|DOS software]]''
While DOS was the primary PC-compatible platform, several notable programs were written for it. These included:
*'''[[Lotus 1-2-3]]'''; a [[spreadsheet]] program that saw heavy use in corporate markets, and has been credited with the success of the IBM PC<ref>{{cite web|url=http://www.crn.com/it-channel/18818026|last=Darrow|first=Barbara|title=Whatever Happened To Lotus 1-2-3?|date=1 February, 2002|accessdate=2008-07-12}}</ref>
*'''[[WordPerfect]]'''; a [[word processor]] that is currently produced for the [[Microsoft Windows|Windows]] platform
*'''[[dBase]]'''; one of the earliest [[database]] programs
*'''[[Telix]]'''; a [[modem]] communication program
*'''[[Arachne (web browser)|Arachne]]'''; a DOS [[web browser]]
*'''[[DJGPP]]''', the DOS port of [[GNU Compiler Collection|gcc]]
*'''[[4DOS]]''', a replacement [[shell (computing)|shell]]
*[[Borland]]'s [[integrated development environment]], which included [[Turbo Pascal]], [[Turbo BASIC]], [[Turbo C]], and [[Turbo Assembler]]
*[[Bulletin board systems|BBS]] hosting software [[RemoteAccess]], [[Spitfire (BBS)|Spitfire]], [[Maximus (BBS)|Maximus]], [[McBBS]], and [[TAG (BBS)|TAG]]
*Numerous [[GUI]] shell programs, offering ease-of-use over DOS' native command-line interface. These included Quarterdeck [[Desqview]], [[GEOS (16-bit operating system)|GEOS]], and the original versions of Microsoft Windows
*[[BASIC]]-language utilities [[BASICA]] and [[GW-BASIC]]
*Numerous [[first-person shooter]] games: [[Wolfenstein 3D]], a joint venture between [[ID Software]] and Apogee Software (later [[3D Realms]]); ID Software's [[Doom (video game)|Doom]] and [[Quake]]; and 3D Realms' [[Duke Nukem 3D]], [[Shadow Warrior]], and [[Rise of the Triad]]. All three 3D Realms' titles were built with the DOS-based [[Build engine]], written by [[Ken Silverman]] and used for Silverman's [[Ken's Labyrinth]].
==Limitations==
Several limitations plagued the DOS architecture. The original 8088 microprocessor could only address 1 [[mebibyte]] of physical [[RAM]]. With additional hardware devices being mapped into this range, the highest amount of available memory was 640 [[kibibytes]], known as [[conventional memory]]. Due to DOS' structure, this was assumed to be the maximum, and DOS could not address more than this.<ref>{{cite web |url=http://findarticles.com/p/articles/mi_m0SMG/is_n6_v10/ai_8528224|title=DOS: still thriving after all these years|accessdate=2008-07-10|work=Software Magazine|publisher=Findarticles.com|date=May 1990}}</ref> Early workaround included [[expanded memory]] and [[extended memory]]. Later, with the advent of [[protected mode]] in the [[80286]] and [[80386]] microprocessor, [[DOS extender]]s and the [[DOS Protected Mode Interface]] were utilized to provide additional memory to applications.<ref>{{cite book|last=Duncan|first=Ray|title=Extending DOS: A Programmer's Guide to Protected-Mode DOS|year=1991|edition=2|publisher=Addison-Wesley|isbn=0201567989}}</ref>
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 [[File Allocation Table|FAT16]], which, by design, does not allow partitions larger than 2.1 [[gibibytes]].<ref>{{cite book|last=Mueller|first=Scott|title=Upgrading and Repairing PCs|year=2003|page=812|publisher=Que Publishing|isbn=0789729741}}</ref> Additionally, DOS accesses the hard disk by calling [[INT 13|Interrupt 13]], which utilizes the [[cylinder-head-sector]] system of mapping the disk. Under this system, only 8 gibibytes are visible to the operating system.<ref>{{cite web|url=http://www.storagereview.com/guide2000/ref/hdd/bios/sizeGB8.html|title=The Int 13 Interface|accessdate=2008-07-10|work=The PC Guide|publisher=storagereview.com}}</ref> Newer operating systems accomplished disk access via software means, e.g. [[32-bit disk access]].
==Emulators==
[[Image:DOSBox screenshot.png|thumb|right|250px|DOSBox running in Linux]]
Under [[Linux]] it is possible to run copies of DOS and many of its clones under ''[[DOSEMU]]'', a Linux-native [[virtual machine]] for running [[real mode]] programs. There are a number of other [[emulator]]s for running DOS under various versions of UNIX, even on non-[[x86]] platforms, such as [[DOSBox]].<ref name="DOSBox"/><ref>{{cite web|url=http://www.dosemu.org/|title=DOSEMU Home|date=2007-05-05|accessdate=2008-07-03|author=}}</ref>
DOS emulators are gaining popularity among [[Windows XP]] and [[Windows Vista|Vista]] users because these systems are incompatible with pure DOS. They can be used to run software (often '[[abandonware]]') made for DOS. One of the most famous emulators is [[DOSBox]], designed for game-playing on modern operating systems.<ref name="DOSBox">{{cite web|url=http://www.dosbox.com/information.php|title=DOSBox Information|accessdate=2008-05-18}}</ref><ref name="emulate">{{cite web|url=http://apcmag.com/how_to_coax_retro_dos_games_to_play_on_vista.htm|title=HOW TO: Coax retro DOS games to play on Vista|date=2006-13-10|accessdate=2008-07-03|author=James Bannan}}</ref> [http://www.taocomputers.com/english.asp ''Tao ExDOS''] emulator is used for business applications.<ref name="Tao ExDOS">{{cite web|url=http://www.taocomputers.com/english.asp|title=Tao ExDOS Information|accessdate=2008-05-18}}</ref> [[VDMSound]] is also popular in Windows for its GUI and sound support.
It is possible to run DOS applications under [[Microsoft Virtual PC]], allowing better compatibility than DOS emulators. A legitimate version of MS-DOS can be installed which should allow all but the most stubborn applications to run.<ref>[http://www.winvistatips.com/dos-games-on-vista-a102.php Installing DOS under Virtual PC]</ref>
== See also ==
* [[COMMAND.COM]], the command line interpreter for DOS and [[Windows 9x]]
* [[MS-DOS API]]
* [[MS-DOS]]
* [[IBM PC-DOS]]
* [[DR-DOS]]
* [[FreeDOS]]
==References==
{{reflist|2}}
==External links==
*[http://www.nukesoft.co.uk/msdos/ ''MS-DOS Reference''] — Not just for [[MS-DOS]] but also for other DOSses on the [[PC compatible|PC]] platform.
*[http://oldfiles.org.uk/powerload/timeline.htm ''DOS and Windows timeline'']
[[Category:DOS on IBM PC compatibles|*DOS]]
[[Category:Disk operating systems]]
[[Category:Orphan initialisms]]
[[af:DOS (bedryfstelsel)]]
[[ar:دوس]]
[[bs:DOS]]
[[bg:DOS]]
[[cs:Disk Operating System]]
[[da:DOS]]
[[de:Disk Operating System]]
[[es:DOS]]
[[eu:DOS]]
[[fa:داس (سیستم عامل)]]
[[fr:DOS]]
[[gl:DOS]]
[[ko:도스]]
[[hr:DOS]]
[[id:DOS]]
[[he:DOS]]
[[lv:DOS]]
[[lt:DOS]]
[[hu:DOS]]
[[nl:DOS (besturingssysteem)]]
[[ja:DOS (OS)]]
[[no:DOS]]
[[nn:DOS]]
[[pl:DOS]]
[[pt:DOS]]
[[ro:DOS]]
[[ru:DOS]]
[[simple:Disk operating system]]
[[sk:DOS]]
[[sl:DOS]]
[[sr:DOS (оперативни систем)]]
[[fi:DOS]]
[[sv:DOS]]
[[ta:டாஸ்]]
[[th:ดอส]]
[[tr:DOS]]
[[uk:DOS]]
[[bat-smg:DOS]]
[[zh:DOS]]