Jump to content

DOS: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverting possible vandalism by 122.105.108.16 to version by Weyesr1. False positive? Report it. Thanks, ClueBot NG. (2266965) (Bot)
No edit summary
Line 1: Line 1:
{{mergeto|MS-DOS|date=May 2015}}
{{About|the family of operating systems for x86-based computers (most commonly IBM PC-compatibles)}}
{{About|the family of operating systems for x86-based computers (most commonly IBM PC-compatibles)}}
[[File:FreeDOS Beta 9 pre-release5 (command line interface) on Bochs sshot20040912.png|thumb|upright=2|[[FreeDOS]] screenshot showing the command line interface, directory structure and version information.]]
[[File:FreeDOS Beta 9 pre-release5 (command line interface) on Bochs sshot20040912.png|thumb|upright=2|[[FreeDOS]] screenshot showing the command line interface, directory structure and version information.]]
'''DOS''' {{IPAc-en|d|ɒ|s}}, short for '''disk operating system''',<ref>{{cite book|last=Murdock|first=Everett|title=DOS the Easy Way|publisher=EasyWay Downloadable Books|year=1988|isbn=0-923178-00-7}}</ref> is an [[acronym]] for several computer [[operating system]]s that were operated by using the [[command line]].
'''DOS''' ({{IPAc-en|d|ɒ|s}}), short for "Disk Operating System",<ref>{{cite book|last=Murdock|first=Everett|title=DOS the Easy Way|publisher=EasyWay Downloadable Books|year=1988|isbn=0-923178-00-7}}</ref> 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 [[Windows 95|95]], [[Windows 98|98]], and [[Windows Me|Millennium Edition]].


MS-DOS dominated the [[IBM PC compatible]] market between 1981 and 1995, or until about 2000 including the partially DOS-based [[Microsoft Windows]] ([[Windows 95|95]], [[Windows 98|98]], and [[Windows Me|Millennium Edition]]). DOS-family systems include [[MS-DOS]], [[PC DOS]], [[DR-DOS]], [[FreeDOS]], [[ROM-DOS]], and [[PTS-DOS]].
Related systems include [[MS-DOS]], [[PC-DOS]], [[DR-DOS]], [[FreeDOS]], [[PTS-DOS]], [[ROM-DOS]], [[Novell DOS]], [[OpenDOS]], [[86-DOS]] , OSx16 and several others.


In spite of the common usage, none of these systems were simply named "DOS" (a name given only to an unrelated [[DOS/360 and successors|IBM mainframe operating system]] in the 1960s). A number of unrelated, non-[[x86]] microcomputer [[disk operating system]]s had "DOS" in their names, 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.
In spite of the common usage, none of these systems were simply named "DOS" (a name given only to an unrelated [[DOS/360 and successors|IBM mainframe operating system]] in the 1960s). A number of unrelated, non-[[x86]] microcomputer [[disk operating system]]s 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.


== History ==
== History ==
{{further|Comparison of DOS operating systems|Timeline of DOS operating systems}}
{{see|Comparison of DOS operating systems|Timeline of DOS operating systems}}


=== Origins ===
=== Origins ===
[[IBM PC DOS]] (and the separately sold [[MS-DOS]]) and its predecessor, [[86-DOS]], resembled [[Digital Research]]'s [[CP/M]]—the dominant disk operating system for 8-bit [[Intel 8080]] and [[Zilog Z80]] based microcomputers. DOS instead ran on [[Intel 8086]] 16-bit processors. Starting with [[MS-DOS 1.28]] and [[PC DOS 2.0]] the operating system incorporated various features inspired from [[Xenix]], Microsoft's variant of [[Unix]].


[[IBM]] 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]] [[Zilog Z-80|Z80]] based microcomputers. PC-DOS ran on Intel 80x86-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]]<ref name="rolander">{{cite interview|url=http://www.podtech.net/home/3801/the-rest-of-the-story-how-bill-gates-beat-gary-kildall-in-os-war-part-1|title=The rest of the story: How Bill Gates beat Gary Kildall in OS war, Part 1|last=Rolander|first=Tom|interviewer=Robert Scoble|work=The Scoble Show}}</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". Digital Research founder [[Gary Kildall]] refused, and IBM withdrew.<ref name="rolander" /><ref>{{cite book|title=Just Say No to Microsoft|url=http://books.google.co.uk/books?id=I0RB1Xxp-KAC&pg=PA11&lpg=PA11&dq=ibm+cp/m+licensing&source=web&ots=dryptL9LAW&sig=KJqNIT1r_-yVcpe0fa0p9RI1BW4&hl=en&sa=X&oi=book_result&resnum=10&ct=result#PPA9,M1|last=Bove|first=Tony|publisher=No Starch Press|year=2005|pages=9–11|isbn=1-59327-064-X}}</ref>


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]]<ref name="rolander">{{cite interview|url=http://www.podtech.net/home/3801/the-rest-of-the-story-how-bill-gates-beat-gary-kildall-in-os-war-part-1|title=The rest of the story: How Bill Gates beat Gary Kildall in OS war, Part 1|last=Rolander|first=Tom|interview=Robert Scoble|show=The Scoble Show}}</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&mdash;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" /><ref>{{cite book|title=Just Say No to Microsoft|url=http://books.google.co.uk/books?id=I0RB1Xxp-KAC&pg=PA11&lpg=PA11&dq=ibm+cp/m+licensing&source=web&ots=dryptL9LAW&sig=KJqNIT1r_-yVcpe0fa0p9RI1BW4&hl=en&sa=X&oi=book_result&resnum=10&ct=result#PPA9,M1|last=Bove|first=Tony|publisher=No Starch Press|year=2005|pages=9–11|isbn=1-59327-064-X}}</ref>
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]] [[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">{{cite web|url=http://inventors.about.com/library/weekly/aa033099.htm|title=The Unusual History of MS-DOS The Microsoft Operating System|accessdate=2008-09-02|last=Bellis|first=Mary}}</ref>


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]] [[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">{{cite web|url=http://inventors.about.com/library/weekly/aa033099.htm|title=The Unusual History of MS-DOS The Microsoft Operating System|accessdate=2008-09-02|last=Bellis|first=Mary}}</ref>
Within a year Microsoft licensed MS-DOS to over 70 other companies,<ref name="freiberger19820823">{{cite news | url=https://books.google.com/books?id=VDAEAAAAMBAJ&lpg=PA19&pg=PA22#v=onepage&q&f=true | title=Bill Gates, Microsoft and the IBM Personal Computer | work=InfoWorld | date=1982-08-23 | accessdate=29 January 2015 | author=Freiberger, Paul | pages=22}}</ref> which supplied the operating system 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.<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. 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.<ref name="rolander" />


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]], for the IBM PC.<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. 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.<ref name="rolander" />
Microsoft originally only sold MS-DOS 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 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 MS-DOS in retail with MS-DOS 5.0.


Microsoft originally only sold MS-DOS 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 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 MS-DOS in retail with MS-DOS 5.0.
In the mid-1980s Microsoft developed a [[MS-DOS 4.0 (multitasking)|multitasking version of DOS]].<ref>{{cite web|url=http://blogs.msdn.com/b/larryosterman/archive/2004/03/22/94209.aspx|title=Did you know that OS/2 wasn't Microsoft's first non Unix multi-tasking operating system?}}</ref><ref>[http://blogs.technet.com/b/exchange/archive/2004/03/05/larry-osterman-s-biography.aspx Larry Osterman's Biography - Exchange Team Blog - Site Home - TechNet Blogs]</ref> This version of DOS is generally referred to as "European MS-DOS 4" because it was developed for [[International Computers Limited|ICL]] and licensed to several European companies. This version of DOS supports preemptive multitasking, shared memory, device helper services and [[New Executable]] ("NE") format executables. None of these features were used in later versions of DOS but they were used to form the basis of the OS/2 1.0 kernel. This version of DOS is distinct from the widely released PC&nbsp;DOS 4.0 which was developed by IBM and based upon DOS 3.3.


In the mid-1980s Microsoft developed a multitasking version of DOS<ref>{{cite web|url=http://blogs.msdn.com/b/larryosterman/archive/2004/03/22/94209.aspx|title=Did you know that OS/2 wasn't Microsoft's first non Unix multi-tasking operating system?}}</ref><ref>http://blogs.technet.com/b/exchange/archive/2004/03/05/larry-osterman-s-biography.aspx</ref>. This version of DOS is generally referred to as "European MS-DOS 4" because it was developed for ICL and licensed to several European companies. It was never released to the general public or any other OEMs. This version of DOS supports preemptive multitasking, shared memory, device helper services and [[New Executable]] ("NE") format executables. None of these features were used in later versions of DOS but they were used to form the basis of the OS/2 1.0 kernel. This version of DOS is distinct from the widely released PC-DOS 4 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 [[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&nbsp;DOS]] (compatible with MS-DOS software). Digital Research was bought by [[Novell]], and DR&nbsp;DOS became [[Novell DOS]] 7; later, it was part of [[Caldera (company)|Caldera]] (under the names [[OpenDOS]] and DR-DOS 7.02/7.03), [[Lineo]], and [[DeviceLogics]].


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 (company)|Caldera]] (under the names [[OpenDOS]] and DR-DOS 7.02/7.03), [[Lineo]], and [[DeviceLogics]].
[[Gordon Letwin]] wrote in 1995 that "DOS was, when we first wrote it, a one-time throw-away product intended to keep IBM happy so that they'd buy our languages".{{r|letwin19950817}} Microsoft expected that it would be an interim solution before Xenix. The company planned to over time improve MS-DOS so it would be almost indistinguishable from single-user Xenix, or [[XEDOS]], which would also run on the [[Motorola 68000]], [[Zilog Z-8000]], and [[LSI-11]]; they would be [[upward compatible|upwardly compatible]] with Xenix, which ''[[BYTE]]'' in 1983 described as "the multi-user MS-DOS of the future".<ref name="morgan198201">{{cite news | url=http://archive.org/stream/byte-magazine-1982-01/1982_01_BYTE_07-01_The_IBM_Personal_Computer#page/n7/mode/2up | title=Of IBM, Operating Systems, and Rosetta Stones | work=BYTE | date=January 1982 | accessdate=19 October 2013 | author=Morgan, Chris | page=6}}</ref><ref name="fiedler198310">{{cite news | url=https://archive.org/stream/byte-magazine-1983-10/1983_10_BYTE_08-10_UNIX#page/n133/mode/2up | title=The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace | work=BYTE | date=October 1983 | accessdate=30 January 2015 | author=Fiedler, Ryan | pages=132}}</ref>


IBM, however, did not want to replace DOS.<ref name="howitt19841210">{{cite news | url=https://books.google.com/books?id=si4EAAAAMBAJ&lpg=PA31&ots=ScPqM0F3Zk&pg=PA29#v=onepage&f=false | title=Unix and the Single User | work=InfoWorld | date=1984-12-10 | accessdate=7 February 2015 | author=Howitt, Doran | pages=28}}</ref> After [[AT&T]] began selling Unix, Microsoft and IBM began developing [[OS/2]] as an alternative.<ref name="letwin19950817">{{cite newsgroup | url=https://groups.google.com/forum/?hl=en#!original/comp.os.ms-windows.misc/-iNeep60eVE/Xl5ddAtJENcJ | title=What's happening to OS/2 | date=1995-08-17 | accessdate=6 November 2013 | author=Letwin, Gordon | newsgroup=comp.os.ms-windows.misc,comp.os.os2.advocacy |message-id=DDFvKo.G4M@lab.lwpi.com}}</ref> The two companies later had a series of disagreements over two successor operating systems to DOS, OS/2 and Microsoft's Windows.<ref>{{cite news|url=http://query.nytimes.com/gst/fullpage.html?res=9D0CE0D81339F934A15754C0A967958260|title=Microsoft Widens Its Split With I.B.M. Over Software|last=Pollack|first=Andrew|accessdate=2008-09-02|date=1991-07-27|publisher=New York Times}}</ref> They split development of their DOS systems as a result.<ref>{{cite news|url=http://query.nytimes.com/gst/fullpage.html?res=990DEEDD1630F93BA15756C0A96F958260|title=I.B.M. Executive Describes Price Pressure by Microsoft|last=Brinkley|first=Joel|date=1999-05-28|publisher=New York Times|accessdate=2008-09-02}}</ref> The last retail version of MS-DOS was MS-DOS 6.22, after this MS-DOS became part of the Windows 95/98/Me bundle. The last retail version of PC DOS was PC DOS 2000 (a.k.a. PC DOS 7 revision 1) though IBM did later develop PC DOS 7.10 for OEMs and internal use.
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>{{cite news|url=http://query.nytimes.com/gst/fullpage.html?res=9D0CE0D81339F934A15754C0A967958260|title=Microsoft Widens Its Split With I.B.M. Over Software|last=Pollack|first=Andrew|accessdate=2008-09-02|date=1991-07-27|publisher=New York Times}}</ref> They split development of their DOS systems as a result.<ref>{{cite news|url=http://query.nytimes.com/gst/fullpage.html?res=990DEEDD1630F93BA15756C0A96F958260|title=I.B.M. Executive Describes Price Pressure by Microsoft|last=Brinkley|first=Joel|date=1999-05-28|publisher=New York Times|accessdate=2008-09-02}}</ref> The last retail version of MS-DOS was MS-DOS 6.22, after this MS-DOS was used as a bootloader for Windows 9x. The last retail version of PC DOS was PC DOS 2000 (a.k.a. PC DOS 7 revision 1) though IBM did later develop PC DOS 7.10 for OEMs and internal use.


The [[FreeDOS]] project began 26 June 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 3 September 2006. Made available under the [[GNU General Public License]] (GPL), 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/| date=September 23, 2006| title=History of FreeDOS|first=Jim| last=Hall| publisher=freedos.org| accessdate=2007-05-28}}</ref>
The [[FreeDOS]] project began 26 June 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 3 September 2006. Made available under the [[GNU General Public License]] (GPL), 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/| date=September 23, 2006| title=History of FreeDOS|first=Jim| last=Hall| publisher=freedos.org| accessdate=2007-05-28}}</ref>


=== Decline ===
=== Decline ===
{{Main|History of Microsoft Windows}}
{{Main|History of Microsoft Windows}}
Early versions of [[Microsoft Windows]] ran on top of a separate version of DOS.<ref name="emulate"/> By the early 1990s, Windows graphical shell saw heavy use on new DOS systems. In 1995, [[Windows 95]] was bundled as a standalone operating system that did not require a separate DOS license. Windows 95 (and Windows 98 and ME, that followed it) took over as the default [[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.<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|deadurl = yes}}</ref><ref name="various-77715">{{cite web | url = http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx | title = What was the role of MS-DOS in Windows 95? | first = Raymond | last = Chen | work = The Old New Thing - Site Home - MSDN Blogs | date = December 24, 2007 | accessdate = February 5, 2014 | archiveurl = //web.archive.org/web/20140205100822/http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx | archivedate = February 5, 2014 | deadurl = no}}</ref><ref name="various-42623">{{cite web | url = http://support.microsoft.com/kb/138996 | title = Description of Restarting Computer in MS-DOS Mode | author=<!--Staff writer(s); no by-line.--> | work = support.microsoft.com | date = January 19, 2007 | accessdate = February 5, 2014 | archiveurl = //web.archive.org/web/20140205101959/http://support.microsoft.com/kb/138996 | archivedate = February 5, 2014 | deadurl = no}}</ref> With DOS no longer required to use Windows, the majority of PC users stopped using it directly.
Early versions of [[Microsoft Windows]] ran on top of a separate version of DOS.<ref name="emulate"/> By the early 1990s, Windows saw heavy use on new DOS systems. With [[Windows 3.1x|MS-Windows for Workgroups 3.11]], DOS was almost reduced to the role of a boot loader for the Windows kernel; in 1995, [[Windows 95|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.<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|month=March | year=1996|accessdate=2008-07-12}}</ref><ref>http://support.microsoft.com/kb/138996</ref> With DOS no longer required to use Windows, the majority of PC users stopped using it directly.


=== Continued use ===
=== Continued use ===
[[File:DOSBox screenshot.png|thumb|upright=1.5|DOSBox]]
[[File:DOSBox screenshot.png|thumb|upright=1.5|DOSBox]]
Available DOS systems in 2012 are [[FreeDOS]], [[DR-DOS]], [[ROM-DOS]], [[PTS-DOS]], [[RxDOS]] and [[REAL/32]]. Some computer manufacturers, including [[Dell]] and [[HP]], sell computers with FreeDOS as the [[Original equipment manufacturer|OEM]] operating system.<ref>{{cite web|url=http://www.freedos.org/jhall/blog/?yr=2007|title=Jim Hall's blog - 2007|date=2007-07-13|accessdate=2008-06-12|last=Hall|first=Jim}}</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>
Currently available DOS systems are [[FreeDOS]], [[DR-DOS]] (and Enhanced DR-DOS), [[ROM-DOS]], [[PTS-DOS]], [[RxDOS]], [[Multiuser DOS]],<ref>http://www.conctrls.com/CCInews.html</ref> [[REAL/32]], and others. Some computer manufacturers, including [[Dell]] and [[HP]], sell computers with FreeDOS as the [[Original equipment manufacturer|OEM]] operating system.<ref>{{cite web|url=http://www.freedos.org/jhall/|title=Jim Hall|date=2007-07-13|accessdate=2008-06-12|last=Hall|first=Jim}}</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>
<!-- Perhaps the following should be moved to a separate article? -->
[[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.<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>


==== Embedded systems ====
==== Embedded systems ====
DOS's 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.<ref>{{cite web|url=http://www.drdos.com/products/drdos703.htm|title=DR-DOS Embedded DOS|accessdate=2008-09-26}}</ref> ROM-DOS was used as the embedded system on the [[Canon PowerShot Pro]] 70.<ref>{{cite news|url=http://findarticles.com/p/articles/mi_m0EIN/is_1999_Feb_23/ai_53930374|title=Datalight DOS Selected for Canon's New Line of Digital Still Cameras|publisher=Business Wire|date=1999-08-24|accessdate=2008-09-26}}</ref>
DOS's 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.<ref>{{cite web|url=http://www.drdos.com/products/drdos703.htm|title=DR DOS Embedded DOS|accessdate=2008-09-26}}</ref> ROM-DOS was used as the embedded system on the [[Canon PowerShot Pro]] 70.<ref>{{cite news|url=http://findarticles.com/p/articles/mi_m0EIN/is_1999_Feb_23/ai_53930374|title=Datalight DOS Selected for Canon's New Line of Digital Still Cameras|publisher=Business Wire|date=1999-08-24|accessdate=2008-09-26}}</ref>


==== Emulation ====
==== Emulation ====
Under [[Linux]], it is also possible to run copies of DOS and many of its clones under ''[[DOSEMU]]'', a Linux-native [[virtual machine]] for running 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]].<ref name="DOSBox"/><ref>{{cite web|url=http://www.dosemu.org/|title=DOSEMU Home|date=2007-05-05|accessdate=2008-07-03|author=}}</ref>
Under [[Linux]], it is also possible to run copies of DOS and many of its clones under ''[[DOSEMU]]'', a Linux-native [[virtual machine]] for running 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]].<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]] 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 (video game)|Doom]]) on modern operating systems.<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-10-13|accessdate=2008-07-03|first=James|last=Bannan}}</ref><ref name="DOSBox">{{cite web|url=http://www.dosbox.com/information.php|title=DOSBox Information|accessdate=2008-05-18}}</ref>
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 (video game)|Doom]]) on modern operating systems.<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-10-13|accessdate=2008-07-03|author=James Bannan}}</ref><ref name="DOSBox">{{cite web|url=http://www.dosbox.com/information.php|title=DOSBox Information|accessdate=2008-05-18}}</ref>


It is possible to run DOS applications in a copy of a DOS operating system on a [[:Category:x86 emulators|PC emulator]], allowing better compatibility than DOS emulators where the emulation of the DOS operating environment is imperfect.<ref>{{cite web|url=http://www.winvistatips.com/dos-games-on-vista-a102.php|title=DOS Games on Vista|date=2008-03-11|accessdate=2008-09-02}}</ref>
It is possible to run DOS applications in a copy of a DOS operating system on a [[:Category:x86 emulators|PC emulator]], allowing better compatibility than DOS emulators where the emulation of the DOS operating environment is imperfect.<ref>{{cite web|url=http://www.winvistatips.com/dos-games-on-vista-a102.php|title=DOS Games on Vista|date=2008-03-11|accessdate=2008-09-02}}</ref>
Line 55: Line 55:
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.
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-tasking operating system with basic [[kernel (computer science)|kernel]] functions that are [[reentrant (subroutine)|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.
DOS is a single-user, single-tasking operating system with basic [[kernel (computer science)|kernel]] functions that are [[reentrant (subroutine)|non-reentrant]]: only one program at a time can use them and DOS itself has no functionality to allow more than one program it execute at a time.
The DOS kernel provides [[MS-DOS API|various functions for programs]] (an ''application program interface''), like character I/O, file management, memory management, program loading and termination.
The DOS kernel provides [[MS-DOS API|various functions for programs]] (an ''application program interface''), like character I/O, file management, memory management, program loading and termination.


Line 64: Line 64:
=== Boot sequence ===
=== Boot sequence ===


* The [[bootstrap loader]] on PC-compatible computers ([[Master boot record|MBR]] or [[boot sector]]) is located at [[track0|track zero]], the first sector on a disk. The [[BIOS|ROM BIOS]] will load this sector into memory at address {{mono|0000h}}:{{mono|7C00h}}, and typically check for a signature "{{mono|55h AAh}}" at offset {{mono|+1FEh}}. If the sector is not considered to be valid, the ROM BIOS will try the next physical disk in the row, otherwise it will jump to the load address with certain registers set up.
* The [[bootstrap loader]] on PC-compatible computers ([[Master boot record|MBR]] or [[boot sector]]) is located at [[track0|track zero]], the first sector on a disk. The [[BIOS|ROM BIOS]] will load this sector into memory at address <tt>0000h</tt>:<tt>7C00h</tt>, and typically check for a signature "<tt>55h AAh</tt>" at offset <tt>+1FEh</tt>. If the sector is not considered to be valid, the ROM BIOS will try the next physical disk in the row, otherwise it will jump to the load address with certain registers set up.
*If the loaded boot sector happens to be a [[Master Boot Record]] (MBR), as found on partitioned media, it will relocate itself to {{mono|0000h}}:{{mono|0600h}} in memory,<ref name="dewassoc_com-master_boot_record">{{cite web|title=The Master Boot Record (MBR) and What it Does|url=http://www.dewassoc.com/kbase/hard_drives/master_boot_record.htm}} 090912 dewassoc.com</ref> otherwise this step is skipped. The MBR code will scan the partition table, which is located within this sector, for an active partition (modern MBRs check if bit 7 is set at offset {{mono|+1BEh+10h*n}}, whereas old MBRs simply check for a value of {{mono|80h}}), and, if found, load the first sector of the corresponding partition, which holds the [[Volume Boot Record]] (VBR) of that volume, into memory at {{mono|0000h}}:{{mono|7C00h}} in the similar fashion as it had been loaded by the ROM BIOS itself. The MBR will then pass execution to the loaded portion with certain registers set up.
*If the loaded boot sector happens to be a [[Master Boot Record]] (MBR), as found on partitioned media, it will relocate itself to <tt>0000h</tt>:<tt>0600h<tt> in memory,<ref name="dewassoc_com-master_boot_record">{{cite web|title=The Master Boot Record (MBR) and What it Does|url=http://www.dewassoc.com/kbase/hard_drives/master_boot_record.htm}} 090912 dewassoc.com</ref> otherwise this step is skipped. The MBR code will scan the partition table, which is located within this sector, for an active partition (modern MBRs check if bit 7 is set at offset <tt>+1BEh+10h*n</tt>, whereas old MBRs simply check for a value of <tt>80h</tt>), and, if found, load the first sector of the corresponding partition, which holds the [[Volume Boot Record]] (VBR) of that volume, into memory at <tt>0000h</tt>:<tt>7C00h</tt> in the similar fashion as it had been loaded by the ROM BIOS itself. The MBR will then pass execution to the loaded portion with certain registers set up.
* The sector content loaded at {{mono|0000h}}:{{mono|7C00h}} constitutes a VBR now. VBRs are operating system specific and cannot be exchanged between different DOS versions in general, as the exact behaviour differs between different DOS versions. In very old versions of DOS such as DOS 1.x, the VBR would load the whole IO.SYS/IBMBIO.COM file into memory at {{mono|0000h}}:{{mono|0600h}}.<ref name="pagetable-165">{{cite web|title=Reverse-Engineering DOS 1.0 &#8211; Part 1: The Boot Sector &laquo; pagetable.com|url=http://www.pagetable.com/?p=165}} 090912 pagetable.com</ref> For this to work, these sectors had to be stored in consecutive order on disk by SYS. In later issues,<!-- at least DOS 3.31 and higher, but probably much earlier --> it would locate and store the contents of the first two entries in the root directory at {{mono|0000h}}:{{mono|0500h}} and if they happen to reflect the correct boot files as recorded in the VBR, the VBR would load the first 3 consecutive sectors of the IO.SYS/IBMBIO.COM file into memory at {{mono|0070h}}:{{mono|0000h}}. The VBR also has to take care to preserve the contents of the [[Disk Parameter Table]] (DPT).<!-- to be detailed at a later time, as this is very OS specific --> Finally, it passes control to the loaded portion by jumping to its entry point with certain registers set up (with considerable differences between different DOS versions).
* The sector content loaded at <tt>0000h</tt>:<tt>7C00h</tt> constitutes a VBR now. VBRs are operating system specific and cannot be exchanged between different DOS versions in general, as the exact behaviour differs between different DOS versions. In very old versions of DOS such as DOS 1.x, the VBR would load the whole IO.SYS/IBMBIO.COM file into memory at <tt>0000h</tt>:<tt>0600h</tt>.<ref name="pagetable-165">{{cite web|title=Reverse-Engineering DOS 1.0 &#8211; Part 1: The Boot Sector &laquo; pagetable.com|url=http://www.pagetable.com/?p=165}} 090912 pagetable.com</ref> For this to work, these sectors had to be stored in consecutive order on disk by SYS. In later issues,<!-- at least DOS 3.31 and higher, but probably much earlier --> it would locate and store the contents of the first two entries in the root directory at <tt>0000h</tt>:<tt>0500h</tt> and if they happen to reflect the correct boot files as recorded in the VBR, the VBR would load the first 3 consecutive sectors of the IO.SYS/IBMBIO.COM file into memory at <tt>0070h</tt>:<tt>0000h</tt>. The VBR also has to take care to preserve the contents of the [[Disk Parameter Table]] (DPT).<!-- to be detailed at a later time, as this is very OS specific --> Finally, it passes control to the loaded portion by jumping to its entry point with certain registers set up (with considerable differences between different DOS versions).
* In modern DOS versions, where the VBR has loaded only the first 3 sectors of the IO.SYS/IBMBIO.COM file into memory, the loaded portion contains another boot loader, which will then load the remainder of itself into memory, using the root directory information stored at {{mono|0000h}}:{{mono|0500h}}. For most versions, the file contents still need to be stored in consecutive order on disk.<!-- this differs between DOS versions and may need to be detailed --> In older versions of DOS, which were still loaded as a whole, this step is skipped.
* In modern DOS versions, where the VBR has loaded only the first 3 sectors of the IO.SYS/IBMBIO.COM file into memory, the loaded portion contains another boot loader, which will then load the remainder of itself into memory, using the root directory information stored at <tt>0000h</tt>:<tt>0500h</tt>. For most versions, the file contents still need to be stored in consecutive order on disk.<!-- this differs between DOS versions and may need to be detailed --> In older versions of DOS, which were still loaded as a whole, this step is skipped.
* The DOS system initialization code will initial its builtin device drivers and then load the DOS kernel, located in [[MSDOS.SYS]] on MS-DOS systems, into memory as well. In Windows 9x, the DOS system initialization code and builtin device drivers and the DOS kernel are combined into a single IO.SYS file while MSDOS.SYS is used as a text configuration file.
* The DOS system initialization code will initial its builtin device drivers and then load the DOS kernel, located in [[MSDOS.SYS]] on MS-DOS systems, into memory as well. In Windows 9x, the DOS system initialization code and builtin device drivers and the DOS kernel are combined into a single IO.SYS file while MSDOS.SYS is used as a text configuration file.
* The [[CONFIG.SYS]] file is then read to [[Parsing#Programming languages|parse]] configuration parameters. The {{mono|SHELL}} variable specifies the location of the [[shell (computing)|shell]] which defaults to [[COMMAND.COM]].
* The [[CONFIG.SYS]] file is then read to [[Parsing#Programming languages|parse]] configuration parameters. The <tt>SHELL</tt> variable specifies the location of the [[shell (computing)|shell]] which defaults to [[COMMAND.COM]].
* The shell is loaded and executed.
* The shell is loaded and executed.
* The startup batch file [[AUTOEXEC.BAT]] is then run by the shell.<ref name="evergreen_edu-config-sys">{{cite web|title=CONFIG.SYS Commands|url=http://academic.evergreen.edu/projects/biophysics/technotes/program/config-sys.txt}} 090913 academic.evergreen.edu</ref><ref>{{cite web|url=http://www.pcguide.com/ref/hdd/file/structBoot-c.html|title=The DOS Boot Process|work=The PC Guide|last=Kozierok|first=Charles|year=2001|accessdate=2008-09-02}}</ref>
* The startup batch file [[AUTOEXEC.BAT]] is then run by the shell.<ref name="evergreen_edu-config-sys">{{cite web|title=CONFIG.SYS Commands|url=http://academic.evergreen.edu/projects/biophysics/technotes/program/config-sys.txt}} 090913 academic.evergreen.edu</ref><ref>{{cite web|url=http://www.pcguide.com/ref/hdd/file/structBoot-c.html|title=The DOS Boot Process|work=The PC Guide|last=Kozierok|first=Charles|year=2001|accessdate=2008-09-02}}</ref>


The DOS system files loaded by the boot sector must be [[Fragmentation (computer)|contiguous]] and be the first two [[FAT directory table|directory entries]].<ref name="wustl_edu-misc">{{cite web|title=misc.txt|url=http://www.arl.wustl.edu/~lockwood/class/cse306-s04/resources/helppc/misc.txt.html}} 090912 arl.wustl.edu</ref> 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.
The DOS system files loaded by the boot sector must be [[Fragmentation (computer)|contiguous]] and be the first two [[File Allocation Table#Directory table|directory entries]].<ref name="wustl_edu-misc">{{cite web|title=misc.txt|url=http://www.arl.wustl.edu/~lockwood/class/cse306-s04/resources/helppc/misc.txt.html}} 090912 arl.wustl.edu</ref> 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&nbsp;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&nbsp;DOS compatible already.
This limitation does not apply to any version of DR&nbsp;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&nbsp;DOS compatible already.


In PC&nbsp;DOS and DR&nbsp;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&nbsp;DOS used DRBIOS.SYS and DRBDOS.SYS instead.
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.


=== File system ===
=== File system ===
Line 82: Line 82:
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 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 [[File Allocation Table]] (FAT) filesystem. This was originally [[FAT12]] which supported up to 4078 clusters per drive. DOS 3.0 added support for [[FAT16]] which used 16-bit allocation entries and supported up to 65518 clusters per drive. DOS 3.31 added support for [[FAT16B]] which removed the 32&nbsp;MB drive limit and could support up to 2&nbsp;GB. Finally MS-DOS 7.1 (the DOS component of Windows 9x) added support for [[FAT32]] which used 32-bit allocation entries and could support hard drives up to 137 GB<!-- LBA-28 --> and beyond<!-- LBA-48 -->.
DOS uses the [[File Allocation Table]] (FAT) filesystem. This was originally FAT12 which supported up to 4078 clusters per drive. DOS 3 added support for FAT16 which used 16-bit allocation entries and supported up to 65518 clusters per drive. DOS 3.31 added support for FAT16B which removed the 32 MB drive limit and could support up to 2 GB. Finally MS-DOS 7.1 (the DOS component of Windows 9x) added support for FAT32 which used 32-bit allocation entries and could support hard drives up to 137 GB.


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&nbsp;DOS 4.0 also had preliminary installable file system (IFS) support but this was unused and removed in DOS 5.0.
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.


==== Drive naming scheme ====
==== Drive naming scheme ====


{{Main|Drive letter assignment}}
{{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 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 partition]]s their names (where such additional partitions existed and contained a DOS-supported file system). Lastly, DOS allocates letters for [[optical disc drive]]s, [[RAM disk]]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.<ref name="driveletter">{{cite web|url=http://pcguide.com/ref/hdd/file/partLetter-c.html|title=Drive Letter Assignment and Choosing Primary vs. Logical Partitions|work=The PC Guide|date=2001-04-17|accessdate=2012-04-04}}</ref>
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 partition]]s their names (where such additional partitions existed and contained a DOS-supported file system.) Lastly, DOS allocates letters for [[optical disc drive]]s, [[RAM disk]]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.<ref name="driveletter">{{cite web|url=http://pcguide.com/ref/hdd/file/partLetter-c.html|title=Drive Letter Assignment and Choosing Primary vs. Logical Partitions|work=The PC Guide|date=2001-04-17|accessdate=2012-04-04}}</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 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.
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.
Line 97: Line 97:
==== Reserved device names ====
==== Reserved device names ====
{{Main|Device file}}
{{Main|Device file}}
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.<ref>{{cite web|url=http://www.juniper.net/security/auto/vulnerabilities/vuln1043.html|title=Microsoft Windows MS-DOS Device Name DoS Vulnerability|accessdate=2008-09-02}}</ref>
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>{{cite web|url=http://www.juniper.net/security/auto/vulnerabilities/vuln1043.html|title=Microsoft Windows MS-DOS Device Name DoS Vulnerability|accessdate=2008-09-02}}</ref>


The reserved names are: <code>CON</code>, <code>AUX</code>, <code>PRN</code><ref>{{cite web|url=http://www.pcmag.com/encyclopedia_term/0,2542,t=DOS+device+names&i=41766,00.asp|title=DOS device names definition|publisher=PC Magazine|accessdate=2008-09-02}}</ref> and <code>LST</code>, which were introduced with [[86-DOS]] 0.74<!-- 1981-04-15 -->. 86-DOS 1.10 and PC&nbsp;DOS 1.0 added <code>NUL</code>. Except for <code>LST</code> they continued to be supported in all versions of MS-DOS, PC DOS and DR-DOS ever since. <code>LST</code> was also available in some OEM versions of MS-DOS 1.25,<!-- f.e. SCP MS-DOS 1.25 --> whereas other OEM versions of MS-DOS 1.25 already used <code>LPT1</code> (first [[parallel port|line printer]]) and <code>COM1</code> (first [[COM (hardware interface)|serial communication device]]) instead, as introduced with PC DOS<!-- 1.0, 1.1 or 2.? -->. <code>COM2</code>, <code>LPT2</code>, <code>LPT3</code> and the <code>CLOCK$</code> (still named <code>CLOCK</code> in some issues of MS-DOS 2.11<ref name="Microsoft_2014_Altos">{{cite web
A partial list of these reserved names is: <code>NUL:</code>, <code>CON:</code>, <code>AUX:</code>, <code>PRN:</code>, <code>COM1:</code>, <code>COM2:</code>, <code>COM3:</code>, <code>COM4:</code>, <code>LPT1:</code>, <code>LPT2:</code>, <code>LPT3:</code>,<ref>{{cite web|url=http://www.pcmag.com/encyclopedia_term/0,2542,t=DOS+device+names&i=41766,00.asp|title=DOS device names definition|publisher=PC Magazine|accessdate=2008-09-02}}</ref> and sometimes <code>LPT4:</code> as well.<!-- for example with DR-DOS 7.02 --> <code>AUX:</code> typically defaults to <code>COM1:</code>, and <code>PRN:</code> to <code>LPT1:</code>, but these defaults can be changed on some systems.<!-- for example under Concurrent DOS, Multiuser DOS or DR-DOS 7.02+ -->
|first1=Tim
|last1=Paterson
|authorlink1=Tim Paterson
|author2=Microsoft
|title=Microsoft DOS V1.1 and V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM
|url=http://www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1-1-v2-0/
|publisher=[[Computer History Museum]], [[Microsoft]]
|date=2013-12-19<!-- 2014-03-25 -->
|origyear=1983<!-- 1983-05-17 -->
|accessdate=2014-03-25
}} (NB. While the publishers claim this would be MS-DOS 1.1 and 2.0, it actually is [[SCP MS-DOS 1.25]] and a mixture of [[Altos MS-DOS 2.11]] and [[TeleVideo PC DOS 2.11]].)</ref>) clock device were introduced with DOS 2.0,<!-- TBD: Recheck COM2, LPT2 and LPT3 intro --> and <code>COM3</code> and <code>COM4</code> were added with DOS 3.3. Only the multitasking [[MS-DOS 4.0 (multitasking)|MS-DOS 4]] supported <code>KEYBD$</code> and <code>SCREEN$</code>. DR DOS 5.0 and higher and Multiuser DOS support an <code>$IDLE$</code> device for dynamic idle detection to saving power and improve multitasking. <code>LPT4</code> is an optional built-in driver for a forth line printer supported in some versions of DR-DOS since 7.02. <code>CONFIG$:</code> constitutes the [[real mode]] [[Legacy Plug and Play|PnP]] manager in MS-DOS 7.0-8.0.


Colons are not necessary in some cases, for example:
<code>AUX</code> typically defaults to <code>COM1</code>, and <code>PRN</code> to <code>LPT1</code> (<code>LST</code>), but these defaults can be changed in some versions of DOS to point to other serial or parallel devices.<!-- Under SCP MS-DOS, AUX can also point to parallel printers and PRN to serial printers.--><!-- as well as under Concurrent DOS, Multiuser DOS and DR-DOS 7.02 and higher. -->

Filenames ended with a [[colon (punctuation)|colon]] ({{mono|:}}) such as <code>NUL:</code> 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:
<source lang="dos">
<source lang="dos">
ECHO This achieves nothing > NUL
echo This does nothing > nul
</source>
</source>


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.
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.

{{Further|Parallel port|COM (hardware interface){{!}}Serial port}}


=== Memory management ===
=== Memory management ===
{{main|DOS memory management}}
{{main|DOS memory management}}
DOS was originally designed for the Intel 8086/8088 processor and therefore could only directly access a maximum of 1 MB of RAM. Due to PC architecture only a maximum of 640 KB (known as [[conventional memory]]) is available as the upper 384 KB is reserved.
DOS was originally designed for the Intel [[8086]]/[[8088]] processor and therefore could only directly access a maximum of 1 MB of RAM. Due to PC architecture only a maximum of 640 KB (known as [[conventional memory]]) is available as the upper 384 KB is reserved.


Specifications were developed to allow access to additional memory. The first was the [[Expanded Memory Specification]] (EMS) which originally allowed memory on an add-on card to be accessed via a 64 KB page frame in the reserved upper memory area. 80386 and later systems could use a [[virtual 8086 mode]] (V86) mode memory manager like [[EMM386]] to create expanded memory from extended memory without the need of an add-on card. The second specification was the [[Extended Memory Specification]] (XMS) for 80286 and later systems. This provided a way to copy data to and from extended memory, access to the 65520-byte [[High Memory Area]] (HMA) directly above the first megabyte of memory and the [[Upper Memory Block]] (UMB) area. Generally XMS support was provided by [[HIMEM.SYS]] or a V86 mode memory manager like [[QEMM]] or [[386MAX]] which also supported EMS.
Specifications were developed to allow access to additional memory. The first was the [[Expanded Memory Specification]] (EMS) which originally allowed memory on an add-on card to be accessed via a 64 KB page frame in the reserved upper memory area. 80386 and later systems could use a [[virtual 8086 mode]] (V86) mode memory manager like [[EMM386]] to create expanded memory from extended memory without the need of an add-on card. The second specification was the [[Extended Memory Specification]] (XMS) for 80286 and later systems. This provided a way to copy data to and from extended memory, access to the 65520-byte [[High Memory Area]] (HMA) directly above the first megabyte of memory and the [[Upper Memory Block]] (UMB) area. Generally XMS support was provided by [[HIMEM.SYS]] or a V86 mode memory manager like [[QEMM]] or [[386MAX]] which also supported EMS.
Line 135: Line 120:


[[File:Command Prompt.png|thumb|upright=1.5|[[CMD.EXE]], the DOS-styled command prompt used in [[Windows NT|Microsoft-NT]]-based Windows.]]
[[File:Command Prompt.png|thumb|upright=1.5|[[CMD.EXE]], the DOS-styled command prompt used in [[Windows NT|Microsoft-NT]]-based 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.
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 serves. 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.
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.
Line 143: Line 128:
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.
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&nbsp;DOS 5.00. One makes a bootable floppy disk of the DOS, add 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.
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, add 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 Windows NT (2000, XP, Vista, 7), the DOS emulation is provided by way of a virtual DOS machine (NTVDM). The DOS files reside in NTIO.SYS and NTBIO.SYS as usual, but run in the virtual machine provided by NTVDM. The character input is passed to the console session that launched the DOS program. This allows one to use CLI features such as pipes and redirection between DOS and Windows NT. The OS/2 emulation in NT and 2000 is similar, but no virtual machine is loaded: it is handled by OS2SS.EXE and OS2.EXE.
In Windows NT (2000, XP, Vista, 7), the DOS emulation is provided by way of a virtual DOS machine (NTVDM). The DOS files reside in NTIO.SYS and NTBIO.SYS as usual, but run in the virtual machine provided by NTVDM. The character input is passed to the console session that launched the DOS program. This allows one to use CLI features such as pipes and redirection between DOS and Windows NT. The OS/2 emulation in NT and 2000 is similar, but no virtual machine is loaded: it is handled by OS2SS.EXE and OS2.EXE.


64-bit 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 these programs.
64-bit versions of Windows do not support NTVDM and cannot run 16-bit DOS applications directly.


== User interface ==
== User interface ==
Line 153: Line 138:
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'').<ref>{{cite book|title=DOS the Easy Way|last=Murdock|first=Everett|pages=7–12|publisher=EasyWay Downloadable Books|isbn=0-923178-02-3}}</ref>
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'').<ref>{{cite book|title=DOS the Easy Way|last=Murdock|first=Everett|pages=7–12|publisher=EasyWay Downloadable Books|isbn=0-923178-02-3}}</ref>


In an attempt to provide a more user-friendly environment, numerous software manufacturers wrote [[file manager|file management programs]] that provided users with menu- and/or icon-based interfaces. Microsoft Windows is a notable example, eventually resulting in [[Windows 9x|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 [[Borland Sidekick|Sidekick]]. [[Graphical user interface]] programs included Digital Research's [[Graphical Environment Manager]] (originally written for CP/M) and [[GEOS (16-bit operating system)|GEOS]].
In an attempt to provide a more user-friendly environment, numerous software manufacturers wrote [[file manager|file management programs]] that provided users with menu- and/or icon-based interfaces. Microsoft Windows is a notable example, eventually resulting in [[Windows 9x|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 (16-bit operating system)|GEOS]].


Eventually, the manufacturers of major DOS systems began to include their own environment managers. MS-DOS/IBM DOS 4 included [[DOS Shell]];<ref>{{cite book|title=DOS the Easy Way|last=Murdock|first=Everett|pages=71|publisher=EasyWay Downloadable Books|isbn=0-923178-02-3|url=http://books.google.com/books?id=vrsSflB2o5sC}}</ref> DR DOS 5.0, released the next year, included [[ViewMAX]], based upon GEM.<ref>{{cite book|title=Dvorak's Guide to DOS and PC Performance|last=Dvorak|first=John|author2=Nick Anis|pages=442–444|publisher=Osborne McGraw-Hill|year=1991}}</ref>
Eventually, the manufacturers of major DOS systems began to include their own environment managers. MS-DOS/IBM DOS 4 included [[DOS Shell]];<ref>{{cite book|title=DOS the Easy Way|last=Murdock|first=Everett|pages=71|publisher=EasyWay Downloadable Books|isbn=0-923178-02-3|url=http://books.google.com/books?id=vrsSflB2o5sC}}</ref> DR DOS 5.0, released the next year, included [[ViewMAX]], based upon GEM.<ref>{{cite book|title=Dvorak's Guide to DOS and PC Performance|last=Dvorak|first=John|coauthors=Nick Anis|pages=442–444|publisher=Osborne McGraw-Hill|year=1991}}</ref>


=== Terminate and Stay Resident ===
=== Terminate and Stay Resident ===
{{main|Terminate and Stay Resident}}
{{main|Terminate and Stay Resident}}
DOS is not a multitasking operating system. DOS did however provide a Terminate and Stay Resident (TSR) function which allowed programs to remain resident in memory. These programs could 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 effectively implementing a simple form of multitasking on a program-specific basis. The PRINT command did this to implement background print spooling. [[Borland Sidekick]], a popup [[personal information manager]] (PIM), also used this technique.
DOS was not a multitasking operating system. DOS did however provide a Terminate and Stay Resident (TSR) function which allowed programs to remain resident in memory. These programs could 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 effectively implementing a simple form of multitasking on a program-specific basis. The PRINT command did this to implement background print spooling. [[Borland Sidekick]], a popup [[personal information manager]] (PIM) also used this technique. Terminate and Stay Resident programs were also used to provide additional features not available by default. Programs like CED and [[DOSKey]] provided command line editing facilities beyond what was natively available in COMMAND.COM. Programs like the Microsoft CD-ROM Extensions (MSCDEX) provided access to files on CD-ROM disks.

Terminate and Stay Resident programs were also used to provide additional features not available by default. Programs like CED and [[DOSKey]] provided command line editing facilities beyond what was available in COMMAND.COM. Programs like the Microsoft CD-ROM Extensions (MSCDEX) provided access to files on CD-ROM disks.

Some TSRs could even perform a rudimentary form of task switching. For example, the [[shareware]] program Back and Forth (1990)<ref>Versions 1.47 is archived at [http://archives.scovetta.com/pub/fehq/DOSUtils/b_f_147.zip] and says "(C) 1990 by Progressive Solutions, Inc."</ref> had a hotkey to save the state of the currently-running program to disk, load another program, and switch to it, hence it was possible to switch "back and forth" between programs, albeit slowly due to the disk access required. Back and Forth could not enable [[background process]]ing however; that needed [[DESQview]] (on at least a [[Intel 80386|386]]).


==Software==
==Software==
{{Further|:Category:DOS software}}
{{See|:Category:DOS software}}
[[File:Arachne VESA Mode.png|thumb|right|250px|Arachne web browser]]
[[File:Arachne VESA Mode.png|thumb|right|250px|Arachne web browser]]


DOS was the dominant PC-compatible platform and many notable programs were written for it. These included:
DOS was the dominant PC-Compatible platform and many notable programs were written for it. These included:


*'''[[Lotus 1-2-3]]''', a protected mode [[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>
* '''[[4DOS]]''', a much improved replacement [[shell (computing)|shell]].
*'''[[WordPerfect]]''', a [[word processor]] that is currently produced for the [[Microsoft Windows|Windows]] platform.
* '''[[Arachne (web browser)|Arachne]]''', a 16-bit graphical DOS [[web browser]].
*'''[[WordStar]]''', an early word processor which used unique control-key sequences that were replicated by many other editors.
* [[BASIC]]-language interpreters. [[BASICA]] and [[GW-BASIC]] replicate the BASIC interpreter environment commonly found on 8-bit computers.
* '''[[dBase]]''', one of the earliest [[database]] programs.
*'''[[dBase]]''', one of the earliest [[database]] programs.
* '''[[DJGPP]]''', the 32-bit DPMI DOS port of [[GNU Compiler Collection|gcc]].
*'''[[Harvard Graphics]]''', one of the earliest [[presentation]] graphics design programs.
* '''[[Harvard Graphics]]''', one of the earliest [[presentation]] graphics design programs.
*'''[[Norton Utilities]]''', a collection of disk and system utilities.
*'''[[PC Tools (Central Point Software)|PC Tools]]''', a collection of disk and system utilities.
* '''[[Lotus 1-2-3]]''', a protected mode [[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>
*'''[[Norton Commander]]''' and '''[[XTree]]''', file management utilities.
* '''[[Microsoft Macro Assembler]]''', '''[[Microsoft Visual C++#16-bit versions|Microsoft C]]''' and '''[[CodeView]]''' all part of Microsoft development software.
* '''[[Norton Commander]]''' and '''[[XTree]]''', file management utilities.
*'''[[ProComm]]''', '''[[Qmodem]]''' and '''[[Telix]]''', [[modem]] communication programs.
* '''[[Norton Utilities]]''', a collection of disk and system utilities.
*'''[[SideKick]]''', a popup personal information manager.
*'''[[PKZIP]]''', the compression utility that quickly became the standard in file compression.
* '''[[PC Tools (Central Point Software)|PC Tools]]''', a collection of disk and system utilities.
*'''[[QEMM]]''' and '''[[386MAX]]''', DOS memory management utilities.
* '''[[PKZIP]]''', the compression utility that quickly became the standard in file compression.
*'''[[4DOS]]''', a much improved replacement [[shell (computing)|shell]].
* '''[[ProComm]]''', '''[[Qmodem]]''' and '''[[Telix]]''', [[modem]] communication programs.
* '''[[QEMM]]''' and '''[[386MAX]]''', DOS memory management utilities.
*'''[[Arachne (web browser)|Arachne]]''', a 16-bit graphical DOS [[web browser]].
*'''[[DJGPP]]''', the 32-bit DPMI DOS port of [[GNU Compiler Collection|gcc]].
* '''[[Borland Sidekick|Sidekick]]''', a popup personal information manager.
* '''[[Turbo Pascal]]''', '''[[Turbo BASIC]]''', '''[[Turbo C]]''' and '''[[Turbo Assembler]]''' all part of [[Borland]]'s [[integrated development environment]].
* Vern Buerg's popular LIST utility, which displays the content of files in ASCII or HEX.
* Vern Buerg's popular LIST utility, which displays the content of files in ASCII or HEX.
*Microsoft development software including '''[[Microsoft Macro Assembler]]''', '''[[Microsoft Visual C++#16-bit versions|Microsoft C]]''' and '''[[CodeView]]'''.
* '''[[WordPerfect]]''', a [[word processor]] that is currently produced for the [[Microsoft Windows|Windows]] platform.
*[[Borland]]'s [[integrated development environment]], which included '''[[Turbo Pascal]]''', '''[[Turbo BASIC]]''', '''[[Turbo C]]''' and '''[[Turbo Assembler]]'''.
* '''[[WordStar]]''', an early word processor which used unique control-key sequences that were replicated by many other editors.
*[[BASIC]]-language interpreters [[BASICA]] and [[GW-BASIC]] replicate the BASIC interpreter environment commonly found on 8-bit computers.
<!-- Do games really need to be listed ? There were thousands of games for DOS
<!-- Do games really need to be listed ? There were thousands of games for DOS
*Numerous games: Many quest games, such as Sierra's King's Quest, Space Quest, strategy games like Sid Meier's Civilization, Railway Tycoon, Populus, and Sim City. Level games like Sokoban, [[Tetris]], and Lemmings did their rounds on DOS.
* 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 (video game)|Quake]]; and 3D Realms' [[Duke Nukem 3D]].
*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 (video game)|Quake]]; and 3D Realms' [[Duke Nukem 3D]].
* Numerous games: Many quest games, such as Sierra's King's Quest, Space Quest, strategy games like Sid Meier's Civilization, Railway Tycoon, Populus, and Sim City. Level games like Sokoban, [[Tetris]], and Lemmings did their rounds on DOS.
-->
-->


Line 211: Line 192:


==External links==
==External links==
*{{Wayback |date=20071028074338 |url=http://oldfiles.org.uk/powerload/timeline.htm |title=Timeline of DOS and Windows versions }}
*[http://web.archive.org/web/20071028074338/http://oldfiles.org.uk/powerload/timeline.htm Timeline of DOS and Windows versions]
*{{Wayback |date=20100815001119 |url=http://www.ii.pw.edu.pl/~borkowsm/dos.htm |title=DOS - where hardware is the only limit }}
*[http://web.archive.org/web/20100815001119/http://www.ii.pw.edu.pl/~borkowsm/dos.htm DOS - where hardware is the only limit]
*[http://purl.oclc.org/net/Batfiles/ Batfiles: The DOS batch file programming handbook]{{Dead link|date=December 2014}}

{{Operating system}}


{{DEFAULTSORT:Dos}}
{{DEFAULTSORT:Dos}}
[[Category:DOS on IBM PC compatibles| ]]
[[Category:DOS on IBM PC compatibles|*DOS]]
[[Category:Disk operating systems]]
[[Category:Disk operating systems]]
[[Category:American inventions]]
[[Category:American inventions]]

[[af:DOS (bedryfstelsel)]]
[[ar:دوس]]
[[be:DOS]]
[[bg:DOS]]
[[bs:DOS]]
[[cs:DOS]]
[[de:Disk Operating System]]
[[et:Ketta-opsüsteem]]
[[es:DOS]]
[[eu:DOS]]
[[fr:DOS]]
[[gl:DOS]]
[[ko:도스]]
[[hi:डॉस]]
[[hr:DOS]]
[[id:DOS]]
[[it:DOS]]
[[he:DOS]]
[[kn:DOS (ಡಾಸ್‌)]]
[[ka:DOS]]
[[lv:DOS]]
[[lt:DOS]]
[[hu:DOS]]
[[ml:ഡോസ്]]
[[nl:DOS (besturingssysteem)]]
[[ne:डस]]
[[ja:DOS (OS)]]
[[no:DOS]]
[[nn:DOS]]
[[pl:DOS]]
[[pt:DOS]]
[[ro:DOS]]
[[ru:DOS]]
[[simple:DOS]]
[[sk:DOS]]
[[sl:DOS]]
[[sr:DOS (оперативни систем)]]
[[fi:DOS]]
[[sv:DOS]]
[[ta:டாஸ்]]
[[th:ดอส (ระบบปฏิบัติการ)]]
[[tr:DOS]]
[[uk:DOS]]
[[ur:قرص اشتغالی نظام]]
[[bat-smg:DOS]]
[[zh:DOS]]

Revision as of 10:49, 15 June 2015

FreeDOS screenshot showing the command line interface, directory structure and version information.

DOS (/dɒs/), short for "Disk Operating System",[1] is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.

Related systems include MS-DOS, PC-DOS, DR-DOS, FreeDOS, PTS-DOS, ROM-DOS, Novell DOS, OpenDOS, 86-DOS , OSx16 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.

History

Origins

IBM 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 Intel 80x86-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[2]). 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.[2][3]

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.[4]

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.[4] 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.[2]

Microsoft originally only sold MS-DOS 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 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 MS-DOS in retail with MS-DOS 5.0.

In the mid-1980s Microsoft developed a multitasking version of DOS[5][6]. This version of DOS is generally referred to as "European MS-DOS 4" because it was developed for ICL and licensed to several European companies. It was never released to the general public or any other OEMs. This version of DOS supports preemptive multitasking, shared memory, device helper services and New Executable ("NE") format executables. None of these features were used in later versions of DOS but they were used to form the basis of the OS/2 1.0 kernel. This version of DOS is distinct from the widely released PC-DOS 4 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 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.[7] They split development of their DOS systems as a result.[8] The last retail version of MS-DOS was MS-DOS 6.22, after this MS-DOS was used as a bootloader for Windows 9x. The last retail version of PC DOS was PC DOS 2000 (a.k.a. PC DOS 7 revision 1) though IBM did later develop PC DOS 7.10 for OEMs and internal use.

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.[9][10]

Decline

Early versions of Microsoft Windows ran on top of a separate version of DOS.[11] 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.[12][13] With DOS no longer required to use Windows, the majority of PC users stopped using it directly.

Continued use

DOSBox

Currently available DOS systems are FreeDOS, DR-DOS (and Enhanced DR-DOS), ROM-DOS, PTS-DOS, RxDOS, Multiuser DOS,[14] REAL/32, and others. Some computer manufacturers, including Dell and HP, sell computers with FreeDOS as the OEM operating system.[15][16] 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.[17]

Embedded systems

DOS's 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.[18] ROM-DOS was used as the embedded system on the Canon PowerShot Pro 70.[19]

Emulation

Under Linux, it is also possible to run copies of DOS and many of its clones under DOSEMU, a Linux-native virtual machine for running DOS programs at near native speed. There are a number of other emulators for running DOS under various versions of UNIX, even on non-x86 platforms, such as DOSBox.[20][21]

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.[11][20]

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.[22]

Design

All MS-DOS-type operating systems run on machines with the Intel x86 or compatible CPUs, mainly the IBM PC 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-tasking operating system with basic kernel functions that are non-reentrant: only one program at a time can use them and DOS itself has no functionality to allow more than one program it 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 by default provides a primitive ability for shell scripting, 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.[23] GOSUB and simple arithmetic is supported with the DR DOS COMMAND.COM as well as some with third-party shells like 4DOS; however, no real form of programming is usually enabled.

The operating system offers an application programming interface that allows development of character-based applications, but not for accessing most of the hardware, such as graphics cards, printers, or mice. This required programmers to access the hardware directly, 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.[24]

Boot sequence

  • The bootstrap loader on PC-compatible computers (MBR or boot sector) is located at track zero, the first sector on a disk. The ROM BIOS will load this sector into memory at address 0000h:7C00h, and typically check for a signature "55h AAh" at offset +1FEh. If the sector is not considered to be valid, the ROM BIOS will try the next physical disk in the row, otherwise it will jump to the load address with certain registers set up.
  • If the loaded boot sector happens to be a Master Boot Record (MBR), as found on partitioned media, it will relocate itself to 0000h:0600h in memory,[25] otherwise this step is skipped. The MBR code will scan the partition table, which is located within this sector, for an active partition (modern MBRs check if bit 7 is set at offset +1BEh+10h*n, whereas old MBRs simply check for a value of 80h), and, if found, load the first sector of the corresponding partition, which holds the Volume Boot Record (VBR) of that volume, into memory at 0000h:7C00h in the similar fashion as it had been loaded by the ROM BIOS itself. The MBR will then pass execution to the loaded portion with certain registers set up.
  • The sector content loaded at 0000h:7C00h constitutes a VBR now. VBRs are operating system specific and cannot be exchanged between different DOS versions in general, as the exact behaviour differs between different DOS versions. In very old versions of DOS such as DOS 1.x, the VBR would load the whole IO.SYS/IBMBIO.COM file into memory at 0000h:0600h.[26] For this to work, these sectors had to be stored in consecutive order on disk by SYS. In later issues, it would locate and store the contents of the first two entries in the root directory at 0000h:0500h and if they happen to reflect the correct boot files as recorded in the VBR, the VBR would load the first 3 consecutive sectors of the IO.SYS/IBMBIO.COM file into memory at 0070h:0000h. The VBR also has to take care to preserve the contents of the Disk Parameter Table (DPT). Finally, it passes control to the loaded portion by jumping to its entry point with certain registers set up (with considerable differences between different DOS versions).
  • In modern DOS versions, where the VBR has loaded only the first 3 sectors of the IO.SYS/IBMBIO.COM file into memory, the loaded portion contains another boot loader, which will then load the remainder of itself into memory, using the root directory information stored at 0000h:0500h. For most versions, the file contents still need to be stored in consecutive order on disk. In older versions of DOS, which were still loaded as a whole, this step is skipped.
  • The DOS system initialization code will initial its builtin device drivers and then load the DOS kernel, located in MSDOS.SYS on MS-DOS systems, into memory as well. In Windows 9x, the DOS system initialization code and builtin device drivers and the DOS kernel are combined into a single IO.SYS file while MSDOS.SYS is used as a text configuration file.
  • The CONFIG.SYS file is then read to parse configuration parameters. The SHELL variable specifies the location of the shell which defaults to COMMAND.COM.
  • The shell is loaded and executed.
  • The startup batch file AUTOEXEC.BAT is then run by the shell.[27][28]

The DOS system files loaded by the boot sector must be contiguous and be the first two directory entries.[29] 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.

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 File Allocation Table (FAT) filesystem. This was originally FAT12 which supported up to 4078 clusters per drive. DOS 3 added support for FAT16 which used 16-bit allocation entries and supported up to 65518 clusters per drive. DOS 3.31 added support for FAT16B which removed the 32 MB drive limit and could support up to 2 GB. Finally MS-DOS 7.1 (the DOS component of Windows 9x) added support for FAT32 which used 32-bit allocation entries and could support hard drives up to 137 GB.

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.

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 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.[30]

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.[30] 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 batch job 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.

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.[31]

A partial list of these reserved names is: NUL:, CON:, AUX:, PRN:, COM1:, COM2:, COM3:, COM4:, LPT1:, LPT2:, LPT3:,[32] 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:

echo This does 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 originally designed for the Intel 8086/8088 processor and therefore could only directly access a maximum of 1 MB of RAM. Due to PC architecture only a maximum of 640 KB (known as conventional memory) is available as the upper 384 KB is reserved.

Specifications were developed to allow access to additional memory. The first was the Expanded Memory Specification (EMS) which originally allowed memory on an add-on card to be accessed via a 64 KB page frame in the reserved upper memory area. 80386 and later systems could use a virtual 8086 mode (V86) mode memory manager like EMM386 to create expanded memory from extended memory without the need of an add-on card. The second specification was the Extended Memory Specification (XMS) for 80286 and later systems. This provided a way to copy data to and from extended memory, access to the 65520-byte High Memory Area (HMA) directly above the first megabyte of memory and the Upper Memory Block (UMB) area. Generally XMS support was provided by HIMEM.SYS or a V86 mode memory manager like QEMM or 386MAX which also supported EMS.

Starting with DOS 5, 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 UMBs via the DOS=UMB statement in CONFIG.SYS.

DOS under OS/2 and Windows

CMD.EXE, the DOS-styled command prompt used in Microsoft-NT-based 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 serves. 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, add 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 Windows NT (2000, XP, Vista, 7), the DOS emulation is provided by way of a virtual DOS machine (NTVDM). The DOS files reside in NTIO.SYS and NTBIO.SYS as usual, but run in the virtual machine provided by NTVDM. The character input is passed to the console session that launched the DOS program. This allows one to use CLI features such as pipes and redirection between DOS and Windows NT. The OS/2 emulation in NT and 2000 is similar, but no virtual machine is loaded: it is handled by OS2SS.EXE and OS2.EXE.

64-bit versions of Windows do not support NTVDM and cannot run 16-bit DOS applications directly.

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).[33]

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;[34] DR DOS 5.0, released the next year, included ViewMAX, based upon GEM.[35]

Terminate and Stay Resident

DOS was not a multitasking operating system. DOS did however provide a Terminate and Stay Resident (TSR) function which allowed programs to remain resident in memory. These programs could 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 effectively implementing a simple form of multitasking on a program-specific basis. The PRINT command did this to implement background print spooling. Borland Sidekick, a popup personal information manager (PIM) also used this technique. Terminate and Stay Resident programs were also used to provide additional features not available by default. Programs like CED and DOSKey provided command line editing facilities beyond what was natively available in COMMAND.COM. Programs like the Microsoft CD-ROM Extensions (MSCDEX) provided access to files on CD-ROM disks.

Software

Arachne web browser

DOS was the dominant PC-Compatible platform and many notable programs were written for it. These included:

See also

References

  1. ^ Murdock, Everett (1988). DOS the Easy Way. EasyWay Downloadable Books. ISBN 0-923178-00-7.
  2. ^ a b c Rolander, Tom. "The rest of the story: How Bill Gates beat Gary Kildall in OS war, Part 1" (Interview). {{cite interview}}: Unknown parameter |interview= ignored (help); Unknown parameter |show= ignored (help)
  3. ^ Bove, Tony (2005). Just Say No to Microsoft. No Starch Press. pp. 9–11. ISBN 1-59327-064-X.
  4. ^ a b Bellis, Mary. "The Unusual History of MS-DOS The Microsoft Operating System". Retrieved 2008-09-02.
  5. ^ "Did you know that OS/2 wasn't Microsoft's first non Unix multi-tasking operating system?".
  6. ^ http://blogs.technet.com/b/exchange/archive/2004/03/05/larry-osterman-s-biography.aspx
  7. ^ Pollack, Andrew (1991-07-27). "Microsoft Widens Its Split With I.B.M. Over Software". New York Times. Retrieved 2008-09-02.
  8. ^ Brinkley, Joel (1999-05-28). "I.B.M. Executive Describes Price Pressure by Microsoft". New York Times. Retrieved 2008-09-02.
  9. ^ Jim Hall (2002-03-25). "The past, present, and future of the FreeDOS Project". Retrieved 2008-06-14.
  10. ^ Hall, Jim (September 23, 2006). "History of FreeDOS". freedos.org. Retrieved 2007-05-28.
  11. ^ a b James Bannan (2006-10-13). "HOW TO: Coax retro DOS games to play on Vista". Retrieved 2008-07-03.
  12. ^ "Finding The DOS In Windows 95". Smart Computing. 1996. Retrieved 2008-07-12. {{cite web}}: Unknown parameter |month= ignored (help)
  13. ^ http://support.microsoft.com/kb/138996
  14. ^ http://www.conctrls.com/CCInews.html
  15. ^ Hall, Jim (2007-07-13). "Jim Hall". Retrieved 2008-06-12.
  16. ^ "Dell PCs Featuring FreeDOS". Retrieved 2008-06-14.
  17. ^ "GPL'd DOS workalike adds features". 2007-04-01. Retrieved 2008-06-01.
  18. ^ "DR DOS Embedded DOS". Retrieved 2008-09-26.
  19. ^ "Datalight DOS Selected for Canon's New Line of Digital Still Cameras". Business Wire. 1999-08-24. Retrieved 2008-09-26.
  20. ^ a b "DOSBox Information". Retrieved 2008-05-18.
  21. ^ "DOSEMU Home". 2007-05-05. Retrieved 2008-07-03.
  22. ^ "DOS Games on Vista". 2008-03-11. Retrieved 2008-09-02.
  23. ^ "Batch File Help". computerhope.com. Retrieved 2008-09-10.
  24. ^ Matczynski, Michael. "ZINGTECH - Guide to the New Game Programmer". Retrieved 2008-09-02.
  25. ^ "The Master Boot Record (MBR) and What it Does". 090912 dewassoc.com
  26. ^ "Reverse-Engineering DOS 1.0 – Part 1: The Boot Sector « pagetable.com". 090912 pagetable.com
  27. ^ "CONFIG.SYS Commands". 090913 academic.evergreen.edu
  28. ^ Kozierok, Charles (2001). "The DOS Boot Process". The PC Guide. Retrieved 2008-09-02.
  29. ^ "misc.txt". 090912 arl.wustl.edu
  30. ^ a b "Drive Letter Assignment and Choosing Primary vs. Logical Partitions". The PC Guide. 2001-04-17. Retrieved 2012-04-04.
  31. ^ "Microsoft Windows MS-DOS Device Name DoS Vulnerability". Retrieved 2008-09-02.
  32. ^ "DOS device names definition". PC Magazine. Retrieved 2008-09-02.
  33. ^ Murdock, Everett. DOS the Easy Way. EasyWay Downloadable Books. pp. 7–12. ISBN 0-923178-02-3.
  34. ^ Murdock, Everett. DOS the Easy Way. EasyWay Downloadable Books. p. 71. ISBN 0-923178-02-3.
  35. ^ Dvorak, John (1991). Dvorak's Guide to DOS and PC Performance. Osborne McGraw-Hill. pp. 442–444. {{cite book}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  36. ^ Darrow, Barbara (1 February 2002). "Whatever Happened To Lotus 1-2-3?". Retrieved 2008-07-12.
Notes

  • IBM Corp., IBM, (January 1984). “IBM DOS Release 2.10 Cloth bound retail hard board box”. 1st edition. IBM Corp. Item Number. 6183946
  • IBM Corp., IBM, (January 1984). “Disk Operating System User's guide (DOS Release 2.10)”. 1st edition. Microsoft Corp. (100 pages including colour illustrations) Item Number. 6183947
  • IBM Corp., IBM, (January 1984). “Disk Operating System Manual (DOS Release 2.10)”. 1st edition. Microsoft Corp. (574 looseleaf pages in 3 ring folder) Item No. 6183940