DOS: Difference between revisions
GreenC bot (talk | contribs) Reformat 2 archive links. Wayback Medic 2.5 per WP:USURPURL and JUDI batch #20 |
|||
Line 1: | Line 1: | ||
{{Short description|Family of IBM PC-compatible operating systems}} |
|||
{{Otheruses4|the family of closely related operating systems for the IBM PC compatible platform|disk operating systems in the more general sense|Disk operating system}} {{For|the similarly-named operating system for the System/360|DOS/360}} {{otheruses}} |
|||
{{About|a family of operating systems|the concept|disk operating system|the type of cyber attack|Denial-of-service attack{{!}}DoS|other uses|DOS (disambiguation)}} |
|||
{{mergefrom|X86 DOS Comparison}} |
|||
{{redirect-distinguish|WinDOS|Microsoft Windows}} |
|||
[[Image: Msdos.gif|right|thumb|300px|This screen shows the help information for the often-used MS-DOS <tt>[[dir (DOS command)|dir]]</tt> command. DOS commonly uses a [[command line interface]], in contrast to more modern operating systems which generally include a [[graphical user interface]].]] |
|||
{{Use dmy dates|date=April 2019|cs1-dates=y}} |
|||
'''DOS''' commonly refers to the family of closely related operating systems which dominated the [[IBM PC compatible]] market between 1981 and 1995 (or until about 2000, if Windows versions 95 and 98 are included) : [[PC-DOS]], [[MS-DOS]], [[FreeDOS]], [[DR-DOS]], [[Novell-DOS]], [[OpenDOS]], [[PTS-DOS]], [[ROM-DOS]] and several others. Of these, MS-DOS from [[Microsoft]] was the most widely used. These operating systems ran on [[IBM PC]] type hardware using the [[Intel]] [[x86]] [[CPU]]s or their compatible cousins from other makers. MS-DOS is still common today and was the foundation for many of Microsoft's operating systems (from Windows V1.00 through [[Windows Me]]). MS-DOS was later abandoned as the foundation for their operating systems. |
|||
[[File:Ms-dosdir.png|thumb|The boot screen and command-line interface of [[MS-DOS 6]], with an example of its directory structure]] |
|||
[[File:FreeDOS Beta 9 pre-release5 (command line interface) on Bochs sshot20040912.png|thumb|The boot screen and command-line interface of [[FreeDOS]], showing version information and an example of its directory structure]] |
|||
'''DOS''' ({{IPAc-en|d|ɒ|s}}, {{IPAc-en|d|ɔː|s}}) is a family of disk-based [[operating system]]s for [[IBM PC compatible]] computers.<ref>{{cite book |author-last=Murdock |author-first=Everett |title=DOS the Easy Way |publisher=EasyWay Downloadable Books |date=1988 |isbn=0-923178-00-7}}</ref> The DOS family primarily consists of [[IBM PC DOS]] and a rebranded version, [[Microsoft]]'s [[MS-DOS]], both of which were introduced in 1981. Later compatible systems from other manufacturers include [[DR-DOS]]<!-- still written without hyphen in 1988 --> (1988), [[ROM-DOS]] (1989), [[PTS-DOS]] (1993), and [[FreeDOS]] (1994). MS-DOS dominated the IBM PC compatible market between 1981 and 1995. |
|||
Although the name has come to be identified specifically with this particular family of operating systems, ''DOS'' is a platform-independent acronym for ''[[disk operating system]]'',<ref>[http://www.dictionary.com/browse/dos Dictionary.com] {{webarchive|url=https://web.archive.org/web/20171112185542/http://www.dictionary.com/browse/dos |date=2017-11-12}}</ref> whose use predates the IBM PC. Dozens of other operating systems also use the acronym, beginning with the mainframe [[DOS/360 and successors|DOS/360]] from 1966. Others include [[Apple DOS]], [[Apple ProDOS]], [[Atari DOS]], [[Commodore DOS]], [[TRSDOS]], and [[AmigaDOS]]. |
|||
== History == |
== History == |
||
{{Further|Comparison of DOS operating systems|Timeline of DOS operating systems}} |
|||
MS-DOS (and the IBM PC-DOS which was licensed therefrom), and its predecessor, [[QDOS]], was an imitation of [[CP/M]] ('''C'''ontrol '''P'''rogram / |
|||
(for) '''M'''icrocomputers) — which was the dominant operating system for 8-bit [[Intel 8080]] and [[Zilog]] [[Zilog Z-80|Z80]] based microcomputers. |
|||
=== Origins === |
|||
[[File:CPM.png|thumb|[[Apple CP/M]] from [[Digital Research]] on a [[Z-80 SoftCard]] for the [[Apple II]] ]] |
|||
[[IBM PC DOS]] (and the separately sold [[MS-DOS]]) and its predecessor, [[86-DOS]], ran on [[Intel 8086]] [[16-bit]] processors. It was developed to be similar to [[Digital Research]]'s [[CP/M]]—the dominant disk operating system for [[8-bit]] [[Intel 8080]] and [[Zilog Z80]] microcomputers—in order to simplify porting CP/M applications to MS-DOS. |
|||
[[File:Ibm pc 5150.jpg|thumb|The [[IBM Personal Computer]] (IBM 5150 PC)]] |
|||
When [[IBM]] introduced the [[IBM PC]], built with the [[Intel 8088]] microprocessor, they needed an operating system. Chairman [[John Opel]] had a conversation with fellow United Way National Board Executive Committee member [[Mary Maxwell Gates]], who referred Opel to her son [[Bill Gates]] for help with an 8088-compatible build of CP/M.<ref>{{Cite journal |url=https://www.nytimes.com/1994/06/11/obituaries/mary-gates-64-helped-her-son-start-microsoft.html |title=Mary Gates, 64; Helped Her Son Start Microsoft |date=1994-06-11 |journal=New York Times |access-date=2023-04-11 }}</ref> IBM was then sent to Digital Research, and a meeting was set up. However, initial negotiations for the use of CP/M broke down: Digital Research wished to sell CP/M on a royalty basis, while IBM sought a single license, and to change the name to "PC DOS". Digital Research founder [[Gary Kildall]] refused, and IBM withdrew.<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 |author-last=Rolander |author-first=Tom |author-link=Tom Rolander |interviewer-first=Robert |interviewer-last=Scoble |work=The Scoble Show |url-status=dead |archive-url=https://web.archive.org/web/20071104052350/http://www.podtech.net/home/3801/the-rest-of-the-story-how-bill-gates-beat-gary-kildall-in-os-war-part-1 |archive-date=2007-11-04}}</ref><ref>{{cite book |title=Just Say No to Microsoft |url=https://archive.org/details/justsaynotomicro00bove |url-access=registration |author-last=Bove |author-first=Tony |publisher=[[No Starch Press]] |date=2005 |pages=[https://archive.org/details/justsaynotomicro00bove/page/9 9]–11 |isbn=1-59327-064-X }}</ref> |
|||
[[File:86-DOS running assembler and HEX2BIN (screenshot).png|thumb|A simulated [[Seattle Computer Products|SCP]] [[86-DOS]] session]] |
|||
{{anchor|QDOS}} |
|||
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 {{currency|amount=50000|code=USD|linked=no}}. This became Microsoft Disk Operating System, MS-DOS, introduced in 1981. |
|||
Within a year Microsoft licensed MS-DOS to over 70 other companies,<ref name="freiberger19820823">{{cite journal |url=https://books.google.com/books?id=VDAEAAAAMBAJ&pg=PA22 |title=Bill Gates, Microsoft and the IBM Personal Computer |journal=[[InfoWorld]] |date=1982-08-23 |access-date=2015-01-29 |author-last=Freiberger |author-first=Paul |author-link=Paul Freiberger |page=22 |url-status=live |archive-url=https://web.archive.org/web/20150318020802/https://books.google.com/books?id=VDAEAAAAMBAJ&lpg=PA19&pg=PA22 |archive-date=2015-03-18}}</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. 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 {{currency|amount=200|code=USD|linked=no}} 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 sold MS-DOS only to [[original equipment manufacturer]]s (OEMs). One major reason for this was that not all early PCs were 100% [[IBM PC compatible]]. DOS was structured such that there was a separation between the system specific device driver code ([[IO.SYS]]) and the DOS kernel ([[MSDOS.SYS]]). Microsoft provided an OEM Adaptation Kit (OAK) which allowed OEMs to customize the device driver code to their particular system. By the early 1990s, most PCs adhered to IBM PC standards so Microsoft began selling a retail version of MS-DOS, starting with MS-DOS 5.0. |
|||
In the mid-1980s, Microsoft developed a [[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? |url-status=live |archive-url=https://web.archive.org/web/20121104092239/http://blogs.msdn.com/b/larryosterman/archive/2004/03/22/94209.aspx |archive-date=2012-11-04}}</ref><ref>{{cite web |url=http://blogs.technet.com/b/exchange/archive/2004/03/05/larry-osterman-s-biography.aspx |title=Larry Osterman's Biography |url-status=live |archive-url=https://web.archive.org/web/20130602232429/http://blogs.technet.com/b/exchange/archive/2004/03/05/larry-osterman-s-biography.aspx |archive-date=2013-06-02}}</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 DOS 4.0 which was developed by IBM and based upon DOS 3.3. |
|||
[[File:Digital Research CP-M-86 for the IBM Personal Computer Version 1.0 720x400.png|thumb|Digital Research [[CP/M-86]] for the IBM Personal Computer Version 1.0]] |
|||
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 [[PalmDOS]] and [[Novell DOS]]; later, it was part of [[Caldera (company)|Caldera]] (under the names [[OpenDOS]] and [[DR-DOS 7.02]]/[[DR-DOS 7.03|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 the introduction of [[Xenix]]. The company planned to improve MS-DOS over time, 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 journal |url=https://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 |journal=[[BYTE]] |date=January 1982 |access-date=2013-10-19 |author-last=Morgan |author-first=Chris |page=6}}</ref><ref name="fiedler198310">{{cite journal |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 |journal=[[BYTE]] |date=October 1983 |access-date=2015-01-30 |author-last=Fiedler |author-first=Ryan |page=132}}</ref> |
|||
[[File:Os2-1.0-prompt.png|thumb|right|[[OS/2]] 1.0 featured a text mode interface similar to MS-DOS.]] |
|||
IBM, however, did not want to replace DOS.<ref name="howitt19841210">{{cite journal |url=https://books.google.com/books?id=si4EAAAAMBAJ&pg=PA31 |title=Unix and the Single User |journal=[[InfoWorld]] |date=1984-12-10 |access-date=2015-02-07 |author-last=Howitt |author-first=Doran |page=28 |url-status=live |archive-url=https://web.archive.org/web/20180129162940/https://books.google.com/books?id=si4EAAAAMBAJ&lpg=PA31 |archive-date=2018-01-29}}</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 |access-date=2013-11-06 |author-last=Letwin |author-first=Gordon |author-link=Gordon Letwin |newsgroup=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 Windows.<ref>{{cite journal |url=https://www.nytimes.com/1991/07/27/business/microsoft-widens-its-split-with-ibm-over-software.html |title=Microsoft Widens Its Split With I.B.M. Over Software |author-last=Pollack |author-first=Andrew |access-date=2008-09-02 |date=1991-07-27 |journal=[[The New York Times]] |url-status=live |archive-url=https://web.archive.org/web/20101102233112/http://query.nytimes.com/gst/fullpage.html?res=9D0CE0D81339F934A15754C0A967958260 |archive-date=2010-11-02}}</ref> They split development of their DOS systems as a result.<ref>{{cite journal |url=https://www.nytimes.com/1999/05/28/business/ibm-executive-describes-price-pressure-by-microsoft.html |title=I.B.M. Executive Describes Price Pressure by Microsoft |author-last=Brinkley |author-first=Joel |date=1999-05-28 |journal=New York Times |access-date=2008-09-02 |url-status=live |archive-url=https://web.archive.org/web/20081211172916/http://query.nytimes.com/gst/fullpage.html?res=990DEEDD1630F93BA15756C0A96F958260 |archive-date=2008-12-11}}</ref> The last retail version of MS-DOS was MS-DOS 6.22; after this, MS-DOS became part of Windows 95, 98 and Me. The last retail version of PC DOS was PC DOS 2000 (also called PC DOS 7 revision 1), though IBM did later develop PC DOS 7.10 for OEMs and internal use. |
|||
The [[FreeDOS]] project began on 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 |access-date=2008-06-14 |author-first=Jim |author-last=Hall |author-link=James Hall (programmer) |url-status=dead |archive-url=https://archive.today/20120529010945/http://www.linuxfordevices.com/c/a/News/The-past-present-and-future-of-the-FreeDOS-Project/ |archive-date=2012-05-29}}</ref><ref>{{cite web |url=http://www.freedos.org/freedos/about/ |date=2006-09-23 |title=History of FreeDOS |author-first=Jim |author-last=Hall |author-link=James Hall (programmer) |publisher=freedos.org |access-date=2007-05-28 |url-status=dead |archive-url=https://web.archive.org/web/20070527173146/http://www.freedos.org/freedos/about/ |archive-date=2007-05-27}}</ref> |
|||
=== Decline === |
|||
{{Main|History of Microsoft Windows}} |
|||
Early versions of [[Microsoft Windows]] ran on MS-DOS.<ref name="emulate"/> By the early 1990s, the 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= |archive-url=https://web.archive.org/web/20040707000544/http://www.smartcomputing.com/editorial/article.asp?article=articles%2Farchive%2F95win%2F95win21%2F95win21.asp&guid= |url-status=dead |archive-date=2004-07-07 |title=Finding The DOS In Windows 95 |work=Smart Computing |date=March 1996 |access-date=2008-07-12}}</ref><ref name="various-77715">{{cite web |url=https://devblogs.microsoft.com/oldnewthing/20071224-00/?p=24063 |title=What was the role of MS-DOS in Windows 95? |author-first=Raymond |author-last=Chen |author-link=Raymond Chen (Microsoft) |work=The Old New Thing - Site Home - MSDN Blogs |date=2007-12-24 |access-date=2014-02-05 |archive-url=https://web.archive.org/web/20140205100822/http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx |archive-date=2014-02-05 |url-status=live}}</ref><ref name="various-42623">{{cite web |url=http://support.microsoft.com/kb/138996 |title=Description of Restarting Computer in MS-DOS Mode |work=support.microsoft.com |date=2007-01-19 |access-date=2014-02-05 |archive-url=https://web.archive.org/web/20140205101959/http://support.microsoft.com/kb/138996 |archive-date=2014-02-05 |url-status=live}}</ref> With DOS no longer required to use Windows, the majority of users stopped using it directly. |
|||
=== Continued use === |
|||
[[File:DOSBox screenshot.png|thumb|upright=1.5|[[DOSBox]] ]] |
|||
{{As of|2024}}, available compatible systems are [[FreeDOS]], [[ROM-DOS]], [[PTS-DOS]], [[RxDOS]]<ref>{{cite web |url=http://rxdos.sourceforge.net/ |title=Home |website=rxdos.sourceforge.net}}</ref> and [[REAL/32]]. Some computer manufacturers, including [[Dell]] and [[Hewlett-Packard|HP]], sell computers with FreeDOS<!-- in the form of [[DRMK]] --> as an [[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 |access-date=2008-06-12 |author-last=Hall |author-first=Jim |author-link=James Hall (programmer) |url-status=dead |archive-url=https://web.archive.org/web/20121025185935/http://www.freedos.org/jhall/blog/?yr=2007 |archive-date=2012-10-25}}</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 |access-date=2008-06-14 |url-status=dead |archive-url=https://web.archive.org/web/20080319090122/http://www.dell.com/content/topics/segtopic.aspx/e510_nseries?c=us&cs=19&l=en&s=dhs |archive-date=2008-03-19}}</ref> {{Update inline|date=January 2024|reason=I could not find freedos computers on dell's website, and it seems likely they stopped selling them since 2008}} And a few developers and computer engineers still use it because it is close to the hardware.{{citation needed|date=October 2023}} |
|||
==== Embedded systems ==== |
|||
DOS's structure of accessing hardware directly allows it to be used in [[embedded system|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 |access-date=2008-09-26 |url-status=usurped |archive-url=https://web.archive.org/web/20081221174616/http://www.drdos.com/products/drdos703.htm |archive-date=2008-12-21}}</ref> ROM-DOS is used as operating system for 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 |access-date=2008-09-26 |url-status=live |archive-url=https://archive.today/20120709115533/http://findarticles.com/p/articles/mi_m0EIN/is_1999_Feb_23/ai_53930374/ |archive-date=2012-07-09}}</ref> |
|||
==== Emulation ==== |
|||
On [[Linux]], it is possible to run ''[[DOSEMU]]'', a Linux-native [[virtual machine]] for running DOS programs at near native speed. There are a number of other [[emulator]]s for running DOS on various versions of Unix and [[Microsoft Windows]] such as [[DOSBox]].<ref name="DOSBox"/><ref>{{cite web |url=http://www.dosemu.org/ |title=DOSEMU Home |date=2007-05-05 |access-date=2008-07-03 |url-status=live |archive-url=https://web.archive.org/web/20080723140604/http://www.dosemu.org./ |archive-date=2008-07-23}}</ref> DOSBox is designed for legacy gaming (e.g. ''[[King's Quest]]'', ''[[Doom (1993 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 |access-date=2008-07-03 |author-first=James |author-last=Bannan |url-status=live |archive-url=https://web.archive.org/web/20080801222002/http://apcmag.com/how_to_coax_retro_dos_games_to_play_on_vista.htm |archive-date=2008-08-01}}</ref><ref name="DOSBox">{{cite web |url=http://www.dosbox.com/information.php |title=DOSBox Information |access-date=2008-05-18 |url-status=live |archive-url=https://web.archive.org/web/20080525111324/http://www.dosbox.com/information.php |archive-date=2008-05-25}}</ref> DOSBox includes its own implementation of DOS which is strongly tied to the emulator and cannot run on real hardware, but can also boot MS-DOS, FreeDOS, or other DOS operating systems if needed. |
|||
== Design == |
|||
MS-DOS and IBM PC DOS related operating systems are commonly associated with machines using the [[Intel]] [[x86]] or compatible [[CPU]]s, mainly [[IBM PC compatible]]s. 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. As long as application programs used DOS APIs instead of direct hardware access, they could run on both IBM-PC-compatible and incompatible machines. The original [[FreeDOS]] kernel, [[DOS-C]], was derived from [[DOS/NT]] for the Motorola 68000 series of CPUs in the early 1990s. While these systems loosely resembled the DOS architecture, applications were not binary compatible due to the incompatible instruction sets of these non-x86-CPUs. However, applications written in high-level languages could be ported easily. |
|||
DOS is a single-user, single-tasking operating system with basic [[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. The DOS kernel provides [[DOS API|various functions for programs]] (an ''application program interface''), like character I/O, file management, memory management, program loading and termination. |
|||
DOS provides the ability for [[shell script]]ing via [[batch file]]s (with the [[filename extension]] <code>.BAT</code>). Each line of a batch file is interpreted as a program to run. Batch files can also make use of internal commands, such as [[GOTO]] and [[Conditional (programming)|conditional statements]].<ref>{{cite web |url=http://www.computerhope.com/batch.htm |title=Batch File Help |access-date=2008-09-10 |publisher=computerhope.com |url-status=live |archive-url=https://web.archive.org/web/20080907080213/http://computerhope.com/batch.htm |archive-date=2008-09-07}}</ref> |
|||
The operating system offers an application programming interface that allows development of character-based applications, but not for accessing most of the [[computer hardware|hardware]], such as [[Video card|graphics card]]s, [[computer printer|printer]]s, or [[computer mouse|mice]]. This required programmers to access the hardware directly, usually resulting in each application having its own set of [[device driver]]s for each hardware peripheral. Hardware manufacturers would release specifications to ensure device drivers for popular applications were available.<ref>{{cite web |url=http://www.zingtech.com/features/gamedev/gnewprog.htm |title=ZINGTECH - Guide to the New Game Programmer |access-date=2008-09-02 |author-last=Matczynski |author-first=Michael |url-status=live |archive-url=https://web.archive.org/web/20081219061919/http://www.zingtech.com/features/gamedev/gnewprog.htm |archive-date=2008-12-19}}</ref> |
|||
=== Boot sequence === |
|||
* The [[bootstrap loader]] on PC-compatible computers, the [[master boot record]], is located beginning at the [[boot sector]], the first sector on the first track ([[track0|track zero]]), of the boot 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. |
|||
* 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 |url-status=live |archive-url=https://web.archive.org/web/20130527211902/http://www.dewassoc.com/kbase/hard_drives/master_boot_record.htm |archive-date=2013-05-27}} 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 if 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 – Part 1: The Boot Sector « pagetable.com |url=http://www.pagetable.com/?p=165 |url-status=live |archive-url=https://web.archive.org/web/20090511101728/http://www.pagetable.com/?p=165 |archive-date=2009-05-11}} 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). |
|||
* In later{{Clarify|date=February 2021}} 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. |
|||
* The DOS system initialization code will initialize its built-in 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 built-in 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 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 |url-status=live |archive-url=https://web.archive.org/web/20090502033350/http://academic.evergreen.edu/projects/biophysics/technotes/program/config-sys.txt |archive-date=2009-05-02}} 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 |author-last=Kozierok |author-first=Charles |date=2001 |access-date=2008-09-02 |url-status=dead |archive-url=https://web.archive.org/web/20080719191224/http://www.pcguide.com/ref/hdd/file/structBoot-c.html |archive-date=2008-07-19 }}</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 |url-status=dead |archive-url=https://web.archive.org/web/20100629152149/http://arl.wustl.edu/~lockwood/class/cse306-s04/resources/helppc/misc.txt.html |archive-date=2010-06-29}} 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 DOS, where the system files can be located anywhere in the root directory and do not need to be contiguous. Therefore, system files can be simply copied to a disk provided that the boot sector is DR DOS compatible already. |
|||
In PC DOS and DR DOS 5.0 and above, the DOS system files are named [[IBMBIO.COM]] instead of [[IO.SYS]] and [[IBMDOS.COM]] instead of [[MSDOS.SYS]]. Older versions of DR DOS used DRBIOS.SYS and DRBDOS.SYS instead. |
|||
Starting with [[MS-DOS 7.0]] the binary system files IO.SYS and MSDOS.SYS were combined into a single file IO.SYS whilst MSDOS.SYS became a configuration file similar to CONFIG.SYS and AUTOEXEC.BAT. If the MSDOS.SYS [[BootGUI]] directive is set to <code>0</code>, the boot process will stop with the command processor (typically COMMAND.COM) loaded, instead of executing WIN.COM automatically. |
|||
=== File system === |
|||
DOS uses a filesystem which supports [[8.3 filename]]s: 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. [[Compaq MS-DOS 3.31]] added support for [[FAT16B]] which removed the 32‑[[Mebibyte|MiB]] drive limit and could support up to 512 MiB. 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 GiB<!-- LBA-28 --> and beyond<!-- LBA-48 -->. |
|||
It was first developed at [[Seattle Computer Products]] by Tim Patterson as a variant of [[CP/M-80]] from [[Digital Research]], but intended as an internal product for testing SCP's new [[8086]] [[Central processing unit|CPU]] card for the [[S-100 bus]]. It did not run on the 8080 (or compatible) CPU needed for CP/M-80. It was called [[QDOS]], among several other names. Microsoft licensed it from SCP, made changes and licensed the result to IBM (sold as [[PC-DOS]]) for its new 'PC' using the 8088 CPU (internally the same as the 8086), and to many other hardware manufacturers. In the later case it was sold as [[MS-DOS]]. |
|||
Starting with DOS 3.1, file redirector support was added to DOS. This was initially used to support networking but was later used to support CD-ROM drives with [[MSCDEX]]. IBM PC DOS 4.0 also had preliminary installable file system (IFS) support but this was unused and removed in DOS 5.0. DOS also supported Block Devices ("Disk Drive" devices) loaded from CONFIG.SYS that could be used under the DOS file system to support network devices. |
|||
[[Digital Research]] produced a compatible variant known as "[[DR-DOS]]", which was eventually taken over (after a buyout of Digital Research) by [[Novell]]. This became "[[OpenDOS]]" for a while after the relevant division of Novell was sold to [[Caldera International]], now called [[SCO Group|SCO]]. Later, the embedded division of Caldera was "spun off" as Lineo (later renamed Embedix), who in turn sold DR-DOS to a start-up called Device Logics, who now seem to call themselves DRDOS, Inc. |
|||
==== Drive naming scheme ==== |
|||
There is also a [[free software|free]] alternative named "[[FreeDOS]]". |
|||
{{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 to 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 |access-date=2012-04-04 |url-status=live |archive-url=https://web.archive.org/web/20120417184135/http://www.pcguide.com/ref/hdd/file/partLetter-c.html |archive-date=2012-04-17}}</ref> |
|||
DOS was one of the first operating systems for the ''PC compatible'' platform, and the first on that platform to gain widespread use (it was still widespread more than 10 years later). This was a quick and messy affair (the variant MS-DOS, sometimes colloquially referred to as ''Messy DOS'', was developed from [[QDOS]], which literally meant "Quick and Dirty Operating System"). |
|||
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.<ref name="driveletter"/> 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. |
|||
[[IBM-PC]]s were only distributed with PC-DOS, whereas [[PC compatible]] computers from nearly all other manufacturers were distributed with MS-DOS. For the early years of this operating system family, PC-DOS was almost identical to MS-DOS. More recently, free versions of DOS such as [[FreeDOS]] and [[OpenDOS]] have started to appear. |
|||
==== Reserved device names ==== |
|||
Early versions of [[Microsoft Windows]] were little more than a graphical [[Operating system shell|shell]] for DOS, and later versions of Windows were tightly integrated with MS-DOS. It is also possible to run DOS programs under [[OS/2]] and [[Linux]] using virtual-machine emulators. |
|||
{{Main|Device file}} |
|||
[[File:Windows Reserved Name Error.png|thumb|right|400px|Error message when attempting to use a reserved name while naming or renaming a file or folder]] |
|||
Because of the long existence and ubiquity of DOS in the world of the PC-compatible platform (DOS compatible programs were made well into the 90's), DOS was often considered to be the native [[operating system]] of the ''PC compatible'' platform. |
|||
There are [[Reserved word|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 |access-date=2008-09-02 |url-status=dead |archive-url=https://web.archive.org/web/20110725163840/http://www.juniper.net/security/auto/vulnerabilities/vuln1043.html |archive-date=2011-07-25}}</ref> |
|||
=== Timeline === |
|||
The reserved names are: |
|||
Microsoft bought non-exclusive rights for marketing QDOS on December 1980. On July 1981, Microsoft bought exclusive rights for 86-DOS, which was the next version of QDOS. |
|||
* <code>COM1</code>, <code>COM2</code>, <code>COM3</code>, <code>COM4</code>, <code>COM5</code>, <code>COM6</code>, <code>COM7</code>, <code>COM8</code>, <code>COM9</code> (serial communication ports) |
|||
The first version, PC-DOS 1.0, was released in August, 1981. It supported up to 256 [[kB]] of [[RAM]] and two 160 kB 5.25" single sided floppy disks. |
|||
* <code>CON</code>, for console |
|||
* <code>LPT1</code>, <code>LPT2</code>, <code>LPT3</code>, <code>LPT4</code>, <code>LPT5</code>, <code>LPT6</code>, <code>LPT7</code>, <code>LPT8</code>, <code>LPT9</code> (line printers) |
|||
* <code>AUX</code>, for auxiliary |
|||
* <code>PRN</code>, for printer<ref>{{cite web|url=https://www.pcmag.com/encyclopedia_term/0,2542,t=DOS+device+names&i=41766,00.asp|title=DOS device names definition|publisher=[[PC Magazine]]|url-status=live|archive-url=https://web.archive.org/web/20080929150356/http://www.pcmag.com/encyclopedia_term/0%2C2542%2Ct%3DDOS+device+names%26i%3D41766%2C00.asp|archive-date=2008-09-29|access-date=2008-09-02}}</ref> |
|||
* <code>NUL</code>, for [[null device]]s; added in [[86-DOS]] 1.10 and [[IBM PC DOS|PC DOS]] 1.0. |
|||
In [[Windows 95]] and [[Windows 98]], typing in the location of the reserved name (such as CON/CON, AUX/AUX, or PRN/PRN) crashes the operating system, of which Microsoft has provided a security fix for the issue. In [[Windows XP]], the name of the file or folder using a reserved name silently reverts to its previous name, with no notification or error message. In [[Windows Vista]] and later, attempting to use a reserved name for a file or folder brings up an error message saying "The specified device name is invalid." |
|||
In May 1982, PC-DOS 1.1 added support for 320 kB double-sided floppy disks. |
|||
These names (except for NUL) have continued to be supported in all versions of MS-DOS, PC DOS and DR-DOS ever since.<ref name="Microsoft_Built-in_devices">{{cite web |title=MS-DOS Device Driver Names Cannot be Used As File Names |date=2003-05-12 |version=Revision 2.0 |id=KB74496, Q74496 |publisher=[[Microsoft]] |url=http://support.microsoft.com/kb/74496/en-us |url-status=dead |archive-url=https://archive.today/20120721143046/http://support.microsoft.com/kb/74496/en-us |archive-date=2012-07-21}}</ref> <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.? -->. In addition to <code>LPT1</code> and <code>LPT2</code> as well as <code>COM1</code> to <code>COM3</code>, Hewlett-Packard's OEM version of [[MS-DOS 2.11]] for the [[HP Portable Plus]] also supported <code>LST</code> as alias for <code>LPT2</code> and <code>82164A</code> as alias for <code>COM2</code>;<ref name="HP_1985_PP" /><ref name="HP_1986_PP" /> it also supported <code>PLT</code> for [[plotter]]s.<ref name="HP_1985_PP" /><ref name="HP_1986_PP" /> Otherwise, <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 |author-first1=Tim |author-last1=Paterson |author-link1=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 --> |orig-year=1983<!-- 1983-05-17 --> |access-date=2014-03-25 |url-status=live |archive-url=https://web.archive.org/web/20140326183713/http://www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1-1-v2-0/ |archive-date=2014-03-26}} (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><ref name="HP_1985_PP" /><ref name="HP_1986_PP" />) 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.<ref name="Microsoft_Built-in_devices" /> 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 fourth 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. |
|||
The first version which supported the PC/XT and fixed disk drives (commonly referred to as hard disk drives), PC-DOS 2.0 and MS-DOS 2.0, had been released in March 1983. |
|||
<code>AUX</code> typically defaults to <code>COM1</code>, and <code>PRN</code> to <code>LPT1</code> (<code>LST</code>),<ref name="Microsoft_Built-in_devices"/> 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. --><ref name="HP_1985_PP">{{cite book |title=Hewlett-Packard - Technical Reference Manual - Portable PLUS |date=August 1985 |edition=1 |id=45559-90001 |publisher=[[Hewlett-Packard Company]], Portable Computer Division |location=Corvallis, OR, USA |url=https://archive.org/details/bitsavers_hpportableblePLUSTechnicalReferenceManualAug1985_25919880 |access-date=2016-11-27}}</ref><ref name="HP_1986_PP">{{cite book |title=Hewlett-Packard - Technical Reference Manual - Portable PLUS |date=December 1986 |orig-year=August 1985 |edition=2 |id=45559-90006 |publisher=[[Hewlett-Packard Company]] |location=Portable Computer Division, Corvallis, OR, USA |url=http://www.jeffcalc.hp41.eu/hpplus/files/techrefman.pdf |access-date=2016-11-27 |url-status=live |archive-url=https://web.archive.org/web/20161128194426/http://www.jeffcalc.hp41.eu/hpplus/files/techrefman.pdf |archive-date=2016-11-28}}</ref><ref name="Paul_1997_OD-A3">{{cite web |author-last=Paul |author-first=Matthias R. |date=1997-10-02 |title=Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT |url=http://www.uni-bonn.de/~uzs180/download/ibmbioa3.zip |url-status=dead |archive-url=https://web.archive.org/web/20031004074600/http://www-student.informatik.uni-bonn.de/~frinke/ibmbioa3.zip |archive-date=2003-10-04 |access-date=2009-03-29}} [https://web.archive.org/web/20181225154705/http://mirror.macintosharchive.org/max1zzz.co.uk/+Windows%20&%20DOS/DOS/System/Novell/Support/Bins/Op702src.zip]</ref> The <code>PLT</code> device (present only in some HP OEM versions of MS-DOS) was reconfigurable as well.<ref name="HP_1985_PP"/><ref name="HP_1986_PP"/> |
|||
At the same time, Microsoft announced its intention to create a [[GUI]] for DOS. Its first version, Windows 1.0, had been announced on November 1983, but was unfinished and did not interest IBM. By November 1985, the first finished version, Microsoft Windows 1.01, had been released. |
|||
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: |
|||
MS-DOS 3.0, released in September 1984, first supported 1.2Mb floppy disks and 32Mb hard disks. MS-DOS 3.1, released November that year, first supported networking. |
|||
<syntaxhighlight lang="dosbatch"> |
|||
ECHO This achieves nothing > NUL |
|||
</syntaxhighlight> |
|||
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. |
|||
MS-DOS 3.2, released in April 1986, was the first retail release of MS-DOS. It added support of 720K 3.5" floppy disks. Previous versions had been sold to computer manufacturers, who pre-loaded them on their computers. This is because operating systems were considered part of a computer, not an independent product. |
|||
{{Further|Parallel port|COM (hardware interface){{!}}Serial port}} |
|||
MS-DOS 3.3, released in April 1987, featured '''logical disks'''. A physical disk could be divided into several partitions which are considered as independent disks by the operating system. Support was also added for 1.44Mb 3.5" floppy disks. |
|||
=== Memory management === |
|||
MS-DOS 4.0, released in July 1988, supported disks up to 2GB (note that typical disk sizes were typically 40-60Mb in 1988), and added a full-screen shell called [[DOS Shell|DOSSHELL]]. Similar or better shells, like [[Norton Commander]] and PCShell, already existed in the market. This release had been considered very buggy. On November 1988, Microsoft addressed many bugs in a service release, MS-DOS 4.01. |
|||
{{Main|DOS memory management}} |
|||
DOS was designed for the Intel 8088 processor, which can only directly access a maximum of 1 MiB of RAM.{{Sfn|Bailes|Mueller|1992|p=5}} Both IBM and Microsoft chose 640 [[kibibytes]] (KiB) as the maximum amount of memory available to programs and reserved the remaining 384 KiB for video memory, the [[read-only memory]] of adapters on some video and network peripherals, and the system's BIOS. By 1985, some DOS applications were already hitting the memory limit, while much of reserved was unused, depending on the machine's specifications.{{Sfn|Bailes|Mueller|1992|pp=42–44}} |
|||
MS-DOS 5.0, released in April 1991, included the full-screen [[BASIC]] interpreter QBasic, which also provided a full-screen text editor (previously, MS-DOS had only line-based text editor), disk cache utility, undelete capabilities, and other improvements. It had severe problems with some disk utilities, fixed later in that year. The fixed version had been called MS-DOS 5.01. |
|||
Specifications were developed to allow access to additional memory. The first was the [[Expanded Memory Specification]] (EMS) was designed to allow memory on an add-on card to be accessed via a 64 KiB page frame in the reserved upper memory area.{{Sfn|Bailes|Mueller|1992|pp=67–68}} 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.{{Sfn|Mueller|1998|pp=169}} 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 65,520-byte [[high memory area]]{{Sfn|Mueller|1998|pp=243–244}} directly above the first megabyte of memory and the [[upper memory block]] area. Generally XMS support was provided by [[HIMEM.SYS]] or a V86 mode memory manager like [[QEMM]] or [[386MAX]] which also supported EMS.{{Sfn|Bailes|Mueller|1992|p=79–80}} |
|||
In March 1992, Microsoft released Windows 3.1, which became the first popular version of Microsoft Windows. More than 1,000,000 users bought it, so Microsoft finally succeeded at its task to write a good (or, at least, popular) graphical interface for DOS. |
|||
Starting with DOS 5,{{Sfn|Mueller|1998|p=243}} DOS could directly take advantage of the HMA by loading its kernel code and disk buffers there via the <code>DOS=HIGH</code> statement in CONFIG.SYS. DOS 5+ also allowed the use of available upper memory blocks via the <code>DOS=UMB</code> statement in CONFIG.SYS.{{Sfn|Bailes|Mueller|1992|pp=150–151}} |
|||
On March 1993, MS-DOS 6.0 had been released. Following competition from [[Digital Research]], Microsoft added a disk compression utility called DoubleSpace. At that time, typical hard disk sizes were about 200-400Mb, and many users badly needed more disk space. MS-DOS 6.0 also featured the disk defragmenter DEFRAG, backup program MSBACKUP, memory optimization with [[List_of_DOS_commands#memmaker|MEMMAKER]], and rudimentary virus protection via MSAV. |
|||
=== DOS under OS/2 and Windows === |
|||
As with versions 4.0 and 5.0, MS-DOS 6.0 turned out to be buggy. Due to complaints about loss of data, on November 1993 Microsoft improved their DoubleSpace utility, and called the new version 6.2. In this version, they also improved other utilities, and introduced a new disk check utility, SCANDISK, similar to [[fsck]] from [[Unix]]. |
|||
{{See also|Virtual DOS machine}} |
|||
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 next version of MS-DOS, 6.21 (released March 1994), appeared due to legal problems. Stac Electronics sued Microsoft and forced it to remove DoubleSpace from their operating system. Otherwise, 6.21 was no different from 6.2. |
|||
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. |
|||
Microsoft licensed another disk compression package, DoubleSpace, from VertiSoft Systems. This package, renamed DriveSpace, had been included in MS-DOS 6.22, which was released in May 1994. There were no other differences between MS-DOS 6.22 and 6.2. |
|||
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. |
|||
MS-DOS 6.22 was the last stand-alone version of MS-DOS available to the general public. MS-DOS was removed from marketing by Microsoft on November 30, 2001. See the [http://www.microsoft.com/windows/lifecycle/default.mspx Microsoft Licensing Roadmap]. |
|||
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. |
|||
Microsoft also released versions 6.23 to 6.25 for banks and American military organizations. These versions introduced [[FAT32]] support. Since then, MS-DOS exists only as a part of Microsoft Windows versions based upon Windows 95 (e.g., Windows 98, Windows Me). The version of MS-DOS included with the original release of Microsoft Windows 95 is numbered 7.0. |
|||
OS/2 allows for 'DOS from Drive A:', (VMDISK). This is a real DOS, like MS-DOS 6.22 or PC DOS 5.00. One makes a bootable floppy disk of the DOS, adds a number of drivers from OS/2, and then creates a special image. The DOS booted this way has full access to the system, but provides its own drivers for hardware. One can use such a disk to access cdrom drives for which there is no OS/2 driver. |
|||
IBM released the last commercial version of a DOS named IBM PC-DOS 7.0 in early 1995. It incorporates many new utilities such as anti-virus software, comprehensive backup programs, PCMCIA support and DOS Pen extensions. Also incorporated are new features to enhance the available memory and disk space. |
|||
In all 32-bit (IA-32) editions of the Windows NT family since 1993, DOS emulation is provided by way of a [[virtual DOS machine]] (NTVDM). 64-bit (IA-64 and x86-64) versions of Windows do not support NTVDM and cannot run 16-bit DOS applications directly; third-party emulators such as DOSbox can be used to run DOS programs on those machines. |
|||
==Accessing hardware under DOS== |
|||
The operating system offered a [[hardware abstraction layer]] that although adequate for developing character-based applications was woefully inadequate for accessing most of the [[computer hardware|hardware]] (such as the graphics hardware). This led to application programmers accessing the hardware directly. The result of this was that each application would have to have a set of [[device driver]]s written for it to use the various ffffffftypes of hardware on offer (different [[computer printer|printer]]s, etc.), and when some new hardware was released, the hardware manufacturers would have to make sure that device drivers for their hardware for the popular applications became available. |
|||
== User interface == |
|||
==DOS and other PC operating systems== |
|||
DOS systems use a [[command-line interface]]. A program is started by entering its filename at the command prompt. DOS systems include utility programs and provide internal commands that do not correspond to programs.<ref>{{cite book |title=DOS the Easy Way |author-last=Murdock |author-first=Everett |year=2008 |pages=7–12 |publisher=EasyWay Downloadable Books |isbn=978-0-923178-02-4}}</ref> |
|||
<!-- Could someone please explain which branches of the Windows family (eg. NT) fits where in relation to DOS --> |
|||
Early versions of [[Microsoft Windows]] were "shell-type" programs that ran under DOS. Later versions were launched under DOS but "extended" it by going into protected mode. Still later versions of MS Windows ran independently of DOS but included much of the old code such that it could run in [[virtual machine]]s under the new OS and the latest versions of MS Windows are continually dropping ever more of the DOS ancestry. [[Windows Me]] was the last Microsoft OS to run on DOS; operating systems in the [[Windows NT]] line (including the post-NT 4.0 versions, such as [[Windows 2000]] and [[Windows XP]], which aren't marketed as "Windows NT") are not based on DOS. |
|||
In an attempt to provide a more user-friendly environment, numerous software manufacturers wrote [[file manager|file management programs]] that provided users with [[WIMP (computing)|WIMP]] 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 [[Graphics Environment Manager|GEM]] (originally written for CP/M) and [[GEOS (16-bit operating system)|GEOS]]. |
|||
Under [[Linux]] (running on [[x86]]-based systems) it's possible to run copies of DOS and many of its clones under ''[[dosemu]]'' (a Linux native virtual machine program for running [[real mode]] programs). There are a number of other emulators for running DOS and/or DOS-based software under various versions of UNIX, even on non-x86 platforms; one such emulator is [[DOSBox]]. |
|||
<!-- What about OS/2? --> |
|||
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 |author-last=Murdock |author-first=Everett |year=2008 |page=71 |publisher=EasyWay Downloadable Books |isbn=978-0-923178-02-4 |url=https://books.google.com/books?id=vrsSflB2o5sC |url-status=live |archive-url=https://web.archive.org/web/20150318124401/http://books.google.com/books?id=vrsSflB2o5sC |archive-date=2015-03-18}}</ref> DR DOS 5.0, released the following year, included [[ViewMAX]], based upon GEM.<ref>{{cite book |title=Dvorak's Guide to DOS and PC Performance |author-last1=Dvorak |author-first1=John Charles |author-link1=John Charles Dvorak |author-first2=Nick |author-last2=Anis |pages=442–444 |publisher=[[Osborne McGraw-Hill]] |date=1991}}</ref> |
|||
==Reserved device names under DOS== |
|||
There are reserved device names in DOS that cannot be used as filenames regardless of extension; these restrictions also affect several Windows versions, in some cases causing crashes and security vulnerabilities. |
|||
=== Terminate and stay resident === |
|||
A partial list of these reserved names is: <code>NUL:</code>, <code>COM1:</code> or <code>AUX:</code>, <code>COM2:</code>, <code>COM3:</code>, <code>COM4:</code>, <code>CON:</code>, <code>LPT1:</code> or <code>PRN:</code>, <code>LPT2:</code>, <code>LPT3:</code>, and <code>CLOCK$</code>. |
|||
{{Main|Terminate-and-stay-resident program}} |
|||
Although DOS is not a multitasking operating system, it does provide a ''terminate-and-stay-resident'' (TSR) function which allows programs to remain resident in memory. These programs can hook the system timer or keyboard interrupts to allow themselves to run tasks in the background or to be invoked at any time, preempting the current running program and effectively implementing a simple form of multitasking on a program-specific basis. The DOS [[PRINT (command)|PRINT]] command does this to implement background print spooling. [[Borland Sidekick]], a popup [[personal information manager]] (PIM), also uses this technique. |
|||
More recent versions of both MS-DOS and IBM-DOS allow reserved device names without the trailing colon; e.g., <code>PRN</code> refers to <code>PRN:</code>. |
|||
Terminate-and-stay-resident programs are also used to provide additional features not available by default. Programs like CED and [[DOSKEY]] provide command-line editing facilities beyond what is available in COMMAND.COM. Programs like the Microsoft CD-ROM Extensions (MSCDEX) provide access to files on CD-ROM disks. |
|||
The <code>NUL</code> filename redirects to a null file, similar in function to the UNIX device [[/dev/null]]. Is best suited for being used in batch command files for discarding unneeded output. If <code>NUL</code> is copied to a file that already exists, it will truncate the target file; otherwise, a zero byte file will be created. (Thus, <code>copy NUL foo</code> is functionally similar to the UNIX command <code>cat </dev/null >foo</code>.) Naming a file as <code>NUL</code>, regardless of extension, could cause unpredictable behavior in most applications. Well-behaved applications will generate an error stating that NUL is a DOS reserved filename; others, "save" the file (but as NUL represents a null file, whatever the program saved is lost), and some applications may hang or leave the computer in an inconsistent state, and a [[reboot]] may be needed. |
|||
Some TSRs can even perform a rudimentary form of task switching. For example, the [[shareware]] program Back and Forth (1990)<ref>Version 1.47 is archived at {{cite web |url=http://archives.scovetta.com/pub/fehq/DOSUtils/b_f_147.zip |title=Back and Forth 1.47 |access-date=2013-08-05 |url-status=dead |archive-url=https://web.archive.org/web/20131105062838/http://archives.scovetta.com/pub/fehq/DOSUtils/b_f_147.zip |archive-date=5 November 2013 }} and says "(C) 1990 by Progressive Solutions, Inc."</ref> has a hotkey to save the state of the currently-running program to disk, load another program, and switch to it, making it 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]]). |
|||
==Drive naming scheme== |
|||
Under Microsoft's DOS [[operating system]] and its derivatives 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 permitted the use of both letters for one drive, and displayed prompts to swap disks. This allowed for copying from floppy to floppy (this wasn't a very fast method though as it generally ended up asking for disk swaps far more often than really needed) or having a program run from one floppy whilst having its data on another. Hard drives were originally assigned the letters "C" and "D", but as support for more hard drives became available this developed into assigning the [[primary partition]]s on each drive (DOS only allowed a single active primary partition per drive even though the partitioning system allowed for more) letters first, then making a second pass over the drives to allocate letters to logical drives in the [[extended partition]]s. Letters for [[CD-ROM]]s, [[RAM disk]]s and other things were allocated after the hard drive partitions. This was often done simply in the order the drivers were loaded, although many drivers could be specifically instructed to take a different letter. Network drives were usually given letters much further on in the alphabet by the network driver software so that they were generally out of the way of this system. |
|||
== Software == |
|||
Because these letters were used directly by normal applications (unlike the /dev/* names in [[Unix-like]] operating systems), the addition of an additional hard drive could be disruptive to applications, which then required reconfiguration or even reinstallation. This was especially true if there were logical drives in an extended partition on the original hard drive and the new hard drive had a primary partition, as it would then cause the logical drives on the first hard drive to change letters. However, even if the new hard drive had only logical drives in an extended partition it would still disrupt the letters of [[RAM disk]]s and [[CD-ROM]] drives. This disruptive system persisted through the 9x versions of Windows but NT adopts a slightly different system. It uses the traditional rules when first installing but after that it tries to preserve the letters of existing drives until you change it. |
|||
{{Further|:Category:DOS software}} |
|||
[[File:Arachne VESA Mode.png|thumb|right|250px|Arachne web browser]] |
|||
* [[Arachne (web browser)|Arachne]], a 16-bit graphical [[web browser]] |
|||
==DOS emulators== |
|||
* [[dBase]], [[database]] program |
|||
Under [[Linux]] it is possible to run copies of DOS and many of its clones under ''[[dosemu]]'', a Linux-native [[virtual machine]] for running [[real mode]] programs. There are a number of other [[emulator]]s for running DOS under various versions of UNIX, even on non-[[x86]] platforms. |
|||
* [[Harvard Graphics]], a [[presentation]] graphics design program |
|||
* [[Lotus 1-2-3]], a [[spreadsheet]] which has been credited with the success of the IBM PC<ref>{{cite web |url=http://www.crn.com/it-channel/18818026 |author-last=Darrow |author-first=Barbara |title=Whatever Happened To Lotus 1-2-3? |date=2002-02-01 |access-date=2008-07-12 |url-status=dead |archive-url=https://web.archive.org/web/20090109203535/http://www.crn.com/it-channel/18818026 |archive-date=2009-01-09}}</ref> |
|||
* [[Norton Commander]] and [[XTree]], file management utilities |
|||
* [[PKZIP]], the utility that quickly became the standard in file compression |
|||
* [[ProComm]], [[Qmodem]], and [[Telix]], [[modem]] communication programs |
|||
* [[Borland Sidekick|Sidekick]], personal information manager that could be used from within other programs |
|||
* [[WordPerfect]], a [[word processor]] that was dominant in the 1980s |
|||
* [[WordStar]], word processor originally for CP/M that became popular on the IBM PC |
|||
=== Development tools === |
|||
DOS emulators are recently sought after, even by [[Windows XP]] users, due to the incompability of the system with pure DOS. Many users find difficulty to play '[[abandonware]]' games made for DOS. One of the most famous emulators, made specifically for gaming, is [[DOSBox]], a windowed (optionally fullscreen) DOS emulator for modern operating systems. |
|||
* [[BASIC]] language interpreters. [[BASICA]] and [[GW-BASIC]] |
|||
* [[DJGPP]], the 32-bit DPMI DOS port of [[GNU Compiler Collection|gcc]] |
|||
* [[Microsoft Macro Assembler]], [[Microsoft C]], and [[CodeView]] from Microsoft |
|||
* [[Watcom C/C++]] from [[Watcom]] |
|||
* [[Turbo Pascal]], [[Turbo BASIC]], [[Turbo C]], [[Turbo Prolog]], and [[Turbo Assembler]] from [[Borland]] |
|||
See also |
== See also == |
||
* [[COMMAND.COM]] (the command line interpreter for DOS and [[Windows 9x]]) |
|||
* [[CP/M]] (Digital Research early operating system similar to DOS) |
|||
* {{ill|Disk Control Program|de}} (DCP, an MS-DOS derivative by the former East-German [[VEB Robotron]]) |
|||
* [[DOS API]] |
|||
* [[DOS/V]] |
|||
* [[Index of DOS games]] |
|||
* [[List of DOS operating systems]] |
|||
* [[PC-MOS/386]] (a DOS-compatible multiuser operating system) |
|||
* [[VGA-compatible text mode]], the base of DOS's TUI on IBM PC compatibles |
|||
== |
== References == |
||
{{reflist|colwidth=30em}} |
|||
*[[disk operating system]] |
|||
*[[x86 DOS Comparison]] |
|||
*[[DOSBox]] |
|||
*[[List of DOS commands]] |
|||
*[[AUTOEXEC.BAT]] and [[CONFIG.SYS]] - DOS configuration files |
|||
== Further reading == |
|||
==References== |
|||
* IBM Corp., IBM, (January 1984). "IBM DOS Release 2.10 Cloth bound retail hard board box". 1st edition. IBM Corp. Item Number. 6183946 |
|||
{{unreferenced|article}}<!-- Do not remove this notice until all facts in the article are cited properly. --> |
|||
* 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 |
|||
* {{Cite book|url=https://archive.org/details/URP_8th_edition|title=Upgrading and Repairing PCs|edition=Eighth|last=Mueller|first=Scott|publisher=[[Que Publishing]]|date=1998|access-date=2021-11-02|isbn=0-7897-1295-4}} |
|||
* {{Cite book|url=https://archive.org/details/memorymanagement00bail|url-access=registration|title=Memory Management and Multitasking Beyond 640K|last1=Bailes|first1=Lenny|last2=Mueller|first2=John|publisher=[[McGraw-Hill]]|date=1992|access-date=2021-11-02|isbn=0-8306-3476-2}} |
|||
==External links== |
== External links == |
||
* [https://web.archive.org/web/20160506004555/http://www.patersontech.com/dos/origins-of-dos.aspx Origins of DOS], articles and manuals by Tim Paterson. |
|||
*[http://www.drdos.org Club Dr-DOS Wiki] - Wiki for Dr-DOS, OpenDOS, Novell-DOS, additional info and news about general DOS |
|||
* {{webarchive |url=https://web.archive.org/web/20071028074338/http://oldfiles.org.uk/powerload/timeline.htm |date=2007-10-28 |title=Timeline of DOS and Windows versions}} |
|||
*[http://www.chebucto.ns.ca/~ak621/DOS/DOS-Head.html Richard Bonner's DOS website] |
|||
* {{cite web |url=http://www.ii.pw.edu.pl/~borkowsm/dos.htm |title=DOS - where hardware is the only limit |access-date=2010-08-29 |url-status=dead |archive-url=https://web.archive.org/web/20100815001119/http://www.ii.pw.edu.pl/~borkowsm/dos.htm |archive-date=2010-08-15}} |
|||
*[http://www.doomwadstation.com/gamedemos Game demos by ID Software for DOS] |
|||
*[http://purl.oclc.org/net/Batfiles/ Batfiles: The DOS batch file programming handbook |
* [https://archive.today/20121209035503/http://purl.oclc.org/net/Batfiles/ Batfiles: The DOS batch file programming handbook] |
||
* {{cite web|url=https://www.pcmag.com/news/the-rise-of-dos-how-microsoft-got-the-ibm-pc-os-contract|title=The Rise of DOS: How Microsoft Got the IBM PC OS Contract|website=pcmag.com|access-date=2022-12-24}} |
|||
*[http://www.nukesoft.co.uk/msdos/ ''MS-DOS Reference''] — Not just for [[MS-DOS]] but also for other DOSses on the [[PC compatible|PC]] platform. |
|||
* {{cite web|url=https://www.jumpjet.info/Application-Software/DOS/sfn.htm|title=Application Software - DOS Short File Name Family|website=www.jumpjet.info|access-date=2020-02-07|archive-date=2020-02-17 |archive-url=https://web.archive.org/web/20200217192920/http://www.jumpjet.info/Application-Software/DOS/sfn.htm|url-status=dead}} "(...) An archive of carefully hand selected FREE [and [[abandonware|abandoned]]] software for DOS." |
|||
*[http://oldfiles.org.uk/powerload/timeline.htm ''DOS and Windows timeline''] |
|||
* [https://lrusso.github.io/VirtualXP/VirtualXP.htm Online Windows XP Simulator] |
|||
*[http://www.dosemu.org/ Linux/dosemu] |
|||
* [https://github.com/microsoft/MS-DOS/tree/main MS-DOS v1.25, v2.0, v4.0 Source Code] |
|||
*[http://www.oldos.org/ Old Os] — Information and downloads for DOS users (including some freeware utilities) |
|||
*[http://www-2.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html ''Ralf Brown's Interrupt List''] |
|||
*[http://www.themodernword.com/eco/eco_mac_vs_pc.html Umberto Eco - The Holy War: Mac vs. DOS] |
|||
*[http://www.16bitos.com ''16bitos.com - Comprehensive DOS version resource''] |
|||
*[http://freedos.sourceforge.net/ FreeDOS (can be downloaded)] |
|||
*[http://www.ibm.com/software/os/dos/ PC-DOS] |
|||
*[http://extdos.siteburg.com ExtDOS] |
|||
{{Disk operating systems}} |
|||
{{Operating system}} |
|||
[[Category:DOS on IBM PC compatibles|*DOS]] |
|||
[[Category:Operating systems]] |
|||
[[Category:Discontinued Microsoft software]] |
|||
{{DEFAULTSORT:Dos}} |
|||
[[bs:DOS]] |
|||
[[Category:DOS on IBM PC compatibles| ]] |
|||
[[cs:DOS]] |
|||
[[Category:American inventions]] |
|||
[[da:DOS]] |
|||
[[ |
[[Category:Disk operating systems]] |
||
[[es:DOS]] |
|||
[[eu:DOS]] |
|||
[[fr:Disk Operating System]] |
|||
[[ko:도스]] |
|||
[[hr:DOS]] |
|||
[[id:DOS]] |
|||
[[he:DOS]] |
|||
[[lv:DOS]] |
|||
[[lt:DOS]] |
|||
[[hu:DOS]] |
|||
[[nl:DOS (besturingssysteem)]] |
|||
[[no:DOS]] |
|||
[[nn:DOS]] |
|||
[[pl:DOS]] |
|||
[[pt:DOS]] |
|||
[[ro:DOS]] |
|||
[[ru:DOS (операционная система)]] |
|||
[[simple:Disk operating system]] |
|||
[[sk:DOS]] |
|||
[[sl:DOS]] |
|||
[[sr:DOS (оперативни систем)]] |
|||
[[fi:DOS]] |
|||
[[sv:DOS]] |
|||
[[th:ดอส]] |
|||
[[tr:DOS]] |
|||
[[uk:DOS]] |
|||
[[zh:DOS]] |
Latest revision as of 23:59, 20 December 2024
DOS (/dɒs/, /dɔːs/) is a family of disk-based operating systems for IBM PC compatible computers.[1] The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible systems from other manufacturers include DR-DOS (1988), ROM-DOS (1989), PTS-DOS (1993), and FreeDOS (1994). MS-DOS dominated the IBM PC compatible market between 1981 and 1995.
Although the name has come to be identified specifically with this particular family of operating systems, DOS is a platform-independent acronym for disk operating system,[2] whose use predates the IBM PC. Dozens of other operating systems also use the acronym, beginning with the mainframe DOS/360 from 1966. Others include Apple DOS, Apple ProDOS, Atari DOS, Commodore DOS, TRSDOS, and AmigaDOS.
History
[edit]Origins
[edit]IBM PC DOS (and the separately sold MS-DOS) and its predecessor, 86-DOS, ran on Intel 8086 16-bit processors. It was developed to be similar to Digital Research's CP/M—the dominant disk operating system for 8-bit Intel 8080 and Zilog Z80 microcomputers—in order to simplify porting CP/M applications to MS-DOS.
When IBM introduced the IBM PC, built with the Intel 8088 microprocessor, they needed an operating system. Chairman John Opel had a conversation with fellow United Way National Board Executive Committee member Mary Maxwell Gates, who referred Opel to her son Bill Gates for help with an 8088-compatible build of CP/M.[3] IBM was then sent to Digital Research, and a meeting was set up. However, initial negotiations for the use of CP/M broke down: Digital Research wished to sell CP/M on a royalty basis, while IBM sought a single license, and to change the name to "PC DOS". Digital Research founder Gary Kildall refused, and IBM withdrew.[4][5]
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 US$50,000. This became Microsoft Disk Operating System, MS-DOS, introduced in 1981. Within a year Microsoft licensed MS-DOS to over 70 other companies,[6] 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. Digital Research became aware that an operating system similar to CP/M was being sold by IBM (under the same name that IBM insisted upon for CP/M), and threatened legal action. IBM responded by offering an agreement: they would give PC consumers a choice of PC DOS or CP/M-86, Kildall's 8086 version. Side-by-side, CP/M cost US$200 more than PC DOS, and sales were low. CP/M faded, with MS-DOS and PC DOS becoming the marketed operating system for PCs and PC compatibles.[4]
Microsoft originally sold MS-DOS only to original equipment manufacturers (OEMs). One major reason for this was that not all early PCs were 100% IBM PC compatible. DOS was structured such that there was a separation between the system specific device driver code (IO.SYS) and the DOS kernel (MSDOS.SYS). Microsoft provided an OEM Adaptation Kit (OAK) which allowed OEMs to customize the device driver code to their particular system. By the early 1990s, most PCs adhered to IBM PC standards so Microsoft began selling a retail version of MS-DOS, starting with MS-DOS 5.0.
In the mid-1980s, Microsoft developed a multitasking version of DOS.[7][8] 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. 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.0 which was developed by IBM and based upon DOS 3.3.
Digital Research attempted to regain the market lost from CP/M-86, initially with 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 PalmDOS and Novell DOS; later, it was part of 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."[9] Microsoft expected that it would be an interim solution before the introduction of Xenix. The company planned to improve MS-DOS over time, 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 upwardly compatible with Xenix, which BYTE in 1983 described as "the multi-user MS-DOS of the future".[10][11]
IBM, however, did not want to replace DOS.[12] After AT&T began selling Unix, Microsoft and IBM began developing OS/2 as an alternative.[9] The two companies later had a series of disagreements over two successor operating systems to DOS, OS/2 and Windows.[13] They split development of their DOS systems as a result.[14] The last retail version of MS-DOS was MS-DOS 6.22; after this, MS-DOS became part of Windows 95, 98 and Me. The last retail version of PC DOS was PC DOS 2000 (also called PC DOS 7 revision 1), though IBM did later develop PC DOS 7.10 for OEMs and internal use.
The FreeDOS project began on 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.[15][16]
Decline
[edit]Early versions of Microsoft Windows ran on MS-DOS.[17] By the early 1990s, the 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.[18][19][20] With DOS no longer required to use Windows, the majority of users stopped using it directly.
Continued use
[edit]As of 2024[update], available compatible systems are FreeDOS, ROM-DOS, PTS-DOS, RxDOS[21] and REAL/32. Some computer manufacturers, including Dell and HP, sell computers with FreeDOS as an OEM operating system.[22][23] [needs update] And a few developers and computer engineers still use it because it is close to the hardware.[citation needed]
Embedded systems
[edit]DOS's structure of accessing hardware directly allows it to be used in embedded devices. The final versions of DR-DOS are still aimed at this market.[24] ROM-DOS is used as operating system for the Canon PowerShot Pro 70.[25]
Emulation
[edit]On Linux, it is possible to run DOSEMU, a Linux-native virtual machine for running DOS programs at near native speed. There are a number of other emulators for running DOS on various versions of Unix and Microsoft Windows such as DOSBox.[26][27] DOSBox is designed for legacy gaming (e.g. King's Quest, Doom) on modern operating systems.[17][26] DOSBox includes its own implementation of DOS which is strongly tied to the emulator and cannot run on real hardware, but can also boot MS-DOS, FreeDOS, or other DOS operating systems if needed.
Design
[edit]MS-DOS and IBM PC DOS related operating systems are commonly associated with machines using the Intel x86 or compatible CPUs, mainly IBM PC 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. As long as application programs used DOS APIs instead of direct hardware access, they could run on both IBM-PC-compatible and incompatible machines. The original FreeDOS kernel, DOS-C, was derived from DOS/NT for the Motorola 68000 series of CPUs in the early 1990s. While these systems loosely resembled the DOS architecture, applications were not binary compatible due to the incompatible instruction sets of these non-x86-CPUs. However, applications written in high-level languages could be ported easily.
DOS is a single-user, single-tasking operating system with basic 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 to execute at a time. The DOS kernel provides various functions for programs (an application program interface), like character I/O, file management, memory management, program loading and termination.
DOS provides the ability for shell scripting via batch files (with the filename extension .BAT
). Each line of a batch file is interpreted as a program to run. Batch files can also make use of internal commands, such as GOTO and conditional statements.[28]
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.[29]
Boot sequence
[edit]- The bootstrap loader on PC-compatible computers, the master boot record, is located beginning at the boot sector, the first sector on the first track (track zero), of the boot 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,[30] 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 if 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.[31] 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 later[clarification needed] 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 initialize its built-in 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 built-in 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.[32][33]
The DOS system files loaded by the boot sector must be contiguous and be the first two directory entries.[34] As such, removing and adding this file is likely to render the media unbootable. It is, however, possible to replace the shell at will, a method that can be used to start the execution of dedicated applications faster. This limitation does not apply to any version of DR DOS, where the system files can be located anywhere in the root directory and do not need to be contiguous. Therefore, system files can be simply copied to a disk provided that the boot sector is DR DOS compatible already.
In PC DOS and DR DOS 5.0 and above, the DOS system files are named IBMBIO.COM instead of IO.SYS and IBMDOS.COM instead of MSDOS.SYS. Older versions of DR DOS used DRBIOS.SYS and DRBDOS.SYS instead.
Starting with MS-DOS 7.0 the binary system files IO.SYS and MSDOS.SYS were combined into a single file IO.SYS whilst MSDOS.SYS became a configuration file similar to CONFIG.SYS and AUTOEXEC.BAT. If the MSDOS.SYS BootGUI directive is set to 0
, the boot process will stop with the command processor (typically COMMAND.COM) loaded, instead of executing WIN.COM automatically.
File system
[edit]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. Compaq MS-DOS 3.31 added support for FAT16B which removed the 32‑MiB drive limit and could support up to 512 MiB. 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 GiB and beyond.
Starting with DOS 3.1, file redirector support was added to DOS. This was initially used to support networking but was later used to support CD-ROM drives with MSCDEX. IBM PC DOS 4.0 also had preliminary installable file system (IFS) support but this was unused and removed in DOS 5.0. DOS also supported Block Devices ("Disk Drive" devices) loaded from CONFIG.SYS that could be used under the DOS file system to support network devices.
Drive naming scheme
[edit]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 to the end of the alphabet.[35]
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.[35] 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
[edit]There are reserved device names in DOS that cannot be used as filenames regardless of extension as they are occupied by built-in character devices. These restrictions also affect several Windows versions, in some cases causing crashes and security vulnerabilities.[36]
The reserved names are:
COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
(serial communication ports)CON
, for consoleLPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
,LPT9
(line printers)AUX
, for auxiliaryPRN
, for printer[37]NUL
, for null devices; added in 86-DOS 1.10 and PC DOS 1.0.
In Windows 95 and Windows 98, typing in the location of the reserved name (such as CON/CON, AUX/AUX, or PRN/PRN) crashes the operating system, of which Microsoft has provided a security fix for the issue. In Windows XP, the name of the file or folder using a reserved name silently reverts to its previous name, with no notification or error message. In Windows Vista and later, attempting to use a reserved name for a file or folder brings up an error message saying "The specified device name is invalid."
These names (except for NUL) have continued to be supported in all versions of MS-DOS, PC DOS and DR-DOS ever since.[38] LST
was also available in some OEM versions of MS-DOS 1.25, whereas other OEM versions of MS-DOS 1.25 already used LPT1
(first line printer) and COM1
(first serial communication device) instead, as introduced with PC DOS. In addition to LPT1
and LPT2
as well as COM1
to COM3
, Hewlett-Packard's OEM version of MS-DOS 2.11 for the HP Portable Plus also supported LST
as alias for LPT2
and 82164A
as alias for COM2
;[39][40] it also supported PLT
for plotters.[39][40] Otherwise, COM2
, LPT2
, LPT3
and the CLOCK$
(still named CLOCK
in some issues of MS-DOS 2.11[41][39][40]) clock device were introduced with DOS 2.0, and COM3
and COM4
were added with DOS 3.3.[38] Only the multitasking MS-DOS 4 supported KEYBD$
and SCREEN$
. DR DOS 5.0 and higher and Multiuser DOS support an $IDLE$
device for dynamic idle detection to saving power and improve multitasking. LPT4
is an optional built-in driver for a fourth line printer supported in some versions of DR-DOS since 7.02. CONFIG$
constitutes the real mode PnP manager in MS-DOS 7.0–8.0.
AUX
typically defaults to COM1
, and PRN
to LPT1
(LST
),[38] but these defaults can be changed in some versions of DOS to point to other serial or parallel devices.[39][40][42] The PLT
device (present only in some HP OEM versions of MS-DOS) was reconfigurable as well.[39][40]
Filenames ended with a colon (:) such as NUL:
conventionally indicate device names, but the colon is not actually a part of the name of the built-in device drivers. Colons are not necessary to be typed in some cases, for example:
ECHO This achieves nothing > NUL
It is still possible to create files or directories using these reserved device names, such as through direct editing of directory data structures in disk sectors. Such naming, such as starting a file name with a space, has sometimes been used by viruses or hacking programs to obscure files from users who do not know how to access these locations.
Memory management
[edit]DOS was designed for the Intel 8088 processor, which can only directly access a maximum of 1 MiB of RAM.[43] Both IBM and Microsoft chose 640 kibibytes (KiB) as the maximum amount of memory available to programs and reserved the remaining 384 KiB for video memory, the read-only memory of adapters on some video and network peripherals, and the system's BIOS. By 1985, some DOS applications were already hitting the memory limit, while much of reserved was unused, depending on the machine's specifications.[44]
Specifications were developed to allow access to additional memory. The first was the Expanded Memory Specification (EMS) was designed to allow memory on an add-on card to be accessed via a 64 KiB page frame in the reserved upper memory area.[45] 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.[46] 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 65,520-byte high memory area[47] directly above the first megabyte of memory and the upper memory block area. Generally XMS support was provided by HIMEM.SYS or a V86 mode memory manager like QEMM or 386MAX which also supported EMS.[48]
Starting with DOS 5,[49] DOS could directly take advantage of the HMA by loading its kernel code and disk buffers there via the DOS=HIGH
statement in CONFIG.SYS. DOS 5+ also allowed the use of available upper memory blocks via the DOS=UMB
statement in CONFIG.SYS.[50]
DOS under OS/2 and Windows
[edit]The DOS emulation in OS/2 and Windows runs in much the same way as native applications do. They can access all of the drives and services, and can even use the host's clipboard services. Because the drivers for file systems and such forth reside in the host system, the DOS emulation needs only provide a DOS API translation layer which converts DOS calls to OS/2 or Windows system calls. The translation layer generally also converts BIOS calls and virtualizes common I/O port accesses which many DOS programs commonly use.
In Windows 3.1 and 9x, the DOS virtual machine is provided by WINOLDAP. WinOldAp creates a virtual machine based on the program's PIF file, and the system state when Windows was loaded. The DOS graphics mode, both character and graphic, can be captured and run in the window. DOS applications can use the Windows clipboard by accessing extra published calls in WinOldAp, and one can paste text through the WinOldAp graphics.
The emulated DOS in OS/2 and Windows NT is based upon DOS 5. Although there is a default configuration (config.sys and autoexec.bat), one can use alternate files on a session-by-session basis. It is possible to load drivers in these files to access the host system, although these are typically third-party.
Under OS/2 2.x and later, the DOS emulation is provided by DOSKRNL. This is a file that represents the combined IBMBIO.COM and IBMDOS.COM, the system calls are passed through to the OS/2 windowing services. DOS programs run in their own environment, the bulk of the DOS utilities are provided by bound DOS / OS2 applications in the \OS2 directory. OS/2 can run Windows 3.1 applications by using a modified copy of Windows (Win-OS/2). The modifications allow Windows 3.1 programs to run seamlessly on the OS/2 desktop, or one can start a WinOS/2 desktop, similar to starting Windows from DOS.
OS/2 allows for 'DOS from Drive A:', (VMDISK). This is a real DOS, like MS-DOS 6.22 or PC DOS 5.00. One makes a bootable floppy disk of the DOS, adds a number of drivers from OS/2, and then creates a special image. The DOS booted this way has full access to the system, but provides its own drivers for hardware. One can use such a disk to access cdrom drives for which there is no OS/2 driver.
In all 32-bit (IA-32) editions of the Windows NT family since 1993, DOS emulation is provided by way of a virtual DOS machine (NTVDM). 64-bit (IA-64 and x86-64) versions of Windows do not support NTVDM and cannot run 16-bit DOS applications directly; third-party emulators such as DOSbox can be used to run DOS programs on those machines.
User interface
[edit]DOS systems use a command-line interface. A program is started by entering its filename at the command prompt. DOS systems include utility programs and provide internal commands that do not correspond to programs.[51]
In an attempt to provide a more user-friendly environment, numerous software manufacturers wrote file management programs that provided users with WIMP 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 GEM (originally written for CP/M) and GEOS.
Eventually, the manufacturers of major DOS systems began to include their own environment managers. MS-DOS/IBM DOS 4 included DOS Shell;[52] DR DOS 5.0, released the following year, included ViewMAX, based upon GEM.[53]
Terminate and stay resident
[edit]Although DOS is not a multitasking operating system, it does provide a terminate-and-stay-resident (TSR) function which allows programs to remain resident in memory. These programs can hook the system timer or keyboard interrupts to allow themselves to run tasks in the background or to be invoked at any time, preempting the current running program and effectively implementing a simple form of multitasking on a program-specific basis. The DOS PRINT command does this to implement background print spooling. Borland Sidekick, a popup personal information manager (PIM), also uses this technique.
Terminate-and-stay-resident programs are also used to provide additional features not available by default. Programs like CED and DOSKEY provide command-line editing facilities beyond what is available in COMMAND.COM. Programs like the Microsoft CD-ROM Extensions (MSCDEX) provide access to files on CD-ROM disks.
Some TSRs can even perform a rudimentary form of task switching. For example, the shareware program Back and Forth (1990)[54] has a hotkey to save the state of the currently-running program to disk, load another program, and switch to it, making it possible to switch "back and forth" between programs (albeit slowly, due to the disk access required). Back and Forth could not enable background processing however; that needed DESQview (on at least a 386).
Software
[edit]- Arachne, a 16-bit graphical web browser
- dBase, database program
- Harvard Graphics, a presentation graphics design program
- Lotus 1-2-3, a spreadsheet which has been credited with the success of the IBM PC[55]
- Norton Commander and XTree, file management utilities
- PKZIP, the utility that quickly became the standard in file compression
- ProComm, Qmodem, and Telix, modem communication programs
- Sidekick, personal information manager that could be used from within other programs
- WordPerfect, a word processor that was dominant in the 1980s
- WordStar, word processor originally for CP/M that became popular on the IBM PC
Development tools
[edit]- BASIC language interpreters. BASICA and GW-BASIC
- DJGPP, the 32-bit DPMI DOS port of gcc
- Microsoft Macro Assembler, Microsoft C, and CodeView from Microsoft
- Watcom C/C++ from Watcom
- Turbo Pascal, Turbo BASIC, Turbo C, Turbo Prolog, and Turbo Assembler from Borland
See also
[edit]- COMMAND.COM (the command line interpreter for DOS and Windows 9x)
- CP/M (Digital Research early operating system similar to DOS)
- Disk Control Program (DCP, an MS-DOS derivative by the former East-German VEB Robotron)
- DOS API
- DOS/V
- Index of DOS games
- List of DOS operating systems
- PC-MOS/386 (a DOS-compatible multiuser operating system)
- VGA-compatible text mode, the base of DOS's TUI on IBM PC compatibles
References
[edit]- ^ Murdock, Everett (1988). DOS the Easy Way. EasyWay Downloadable Books. ISBN 0-923178-00-7.
- ^ Dictionary.com Archived 2017-11-12 at the Wayback Machine
- ^ "Mary Gates, 64; Helped Her Son Start Microsoft". New York Times. 1994-06-11. Retrieved 2023-04-11.
- ^ a b Rolander, Tom. "The rest of the story: How Bill Gates beat Gary Kildall in OS war, Part 1". The Scoble Show (Interview). Interviewed by Scoble, Robert. Archived from the original on 2007-11-04.
- ^ Bove, Tony (2005). Just Say No to Microsoft. No Starch Press. pp. 9–11. ISBN 1-59327-064-X.
- ^ Freiberger, Paul (1982-08-23). "Bill Gates, Microsoft and the IBM Personal Computer". InfoWorld: 22. Archived from the original on 2015-03-18. Retrieved 2015-01-29.
- ^ "Did you know that OS/2 wasn't Microsoft's first non Unix multi-tasking operating system?". Archived from the original on 2012-11-04.
- ^ "Larry Osterman's Biography". Archived from the original on 2013-06-02.
- ^ a b Letwin, Gordon (1995-08-17). "What's happening to OS/2". Newsgroup: comp.os.os2.advocacy. Usenet: DDFvKo.G4M@lab.lwpi.com. Retrieved 2013-11-06.
- ^ Morgan, Chris (January 1982). "Of IBM, Operating Systems, and Rosetta Stones". BYTE: 6. Retrieved 2013-10-19.
- ^ Fiedler, Ryan (October 1983). "The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace". BYTE: 132. Retrieved 2015-01-30.
- ^ Howitt, Doran (1984-12-10). "Unix and the Single User". InfoWorld: 28. Archived from the original on 2018-01-29. Retrieved 2015-02-07.
- ^ Pollack, Andrew (1991-07-27). "Microsoft Widens Its Split With I.B.M. Over Software". The New York Times. Archived from the original on 2010-11-02. Retrieved 2008-09-02.
- ^ Brinkley, Joel (1999-05-28). "I.B.M. Executive Describes Price Pressure by Microsoft". New York Times. Archived from the original on 2008-12-11. Retrieved 2008-09-02.
- ^ Hall, Jim (2002-03-25). "The past, present, and future of the FreeDOS Project". Archived from the original on 2012-05-29. Retrieved 2008-06-14.
- ^ Hall, Jim (2006-09-23). "History of FreeDOS". freedos.org. Archived from the original on 2007-05-27. Retrieved 2007-05-28.
- ^ a b Bannan, James (2006-10-13). "HOW TO: Coax retro DOS games to play on Vista". Archived from the original on 2008-08-01. Retrieved 2008-07-03.
- ^ "Finding The DOS In Windows 95". Smart Computing. March 1996. Archived from the original on 2004-07-07. Retrieved 2008-07-12.
- ^ Chen, Raymond (2007-12-24). "What was the role of MS-DOS in Windows 95?". The Old New Thing - Site Home - MSDN Blogs. Archived from the original on 2014-02-05. Retrieved 2014-02-05.
- ^ "Description of Restarting Computer in MS-DOS Mode". support.microsoft.com. 2007-01-19. Archived from the original on 2014-02-05. Retrieved 2014-02-05.
- ^ "Home". rxdos.sourceforge.net.
- ^ Hall, Jim (2007-07-13). "Jim Hall's blog - 2007". Archived from the original on 2012-10-25. Retrieved 2008-06-12.
- ^ "Dell PCs Featuring FreeDOS". Archived from the original on 2008-03-19. Retrieved 2008-06-14.
- ^ "DR-DOS Embedded DOS". Archived from the original on 2008-12-21. Retrieved 2008-09-26.
- ^ "Datalight DOS Selected for Canon's New Line of Digital Still Cameras". Business Wire. 1999-08-24. Archived from the original on 2012-07-09. Retrieved 2008-09-26.
- ^ a b "DOSBox Information". Archived from the original on 2008-05-25. Retrieved 2008-05-18.
- ^ "DOSEMU Home". 2007-05-05. Archived from the original on 2008-07-23. Retrieved 2008-07-03.
- ^ "Batch File Help". computerhope.com. Archived from the original on 2008-09-07. Retrieved 2008-09-10.
- ^ Matczynski, Michael. "ZINGTECH - Guide to the New Game Programmer". Archived from the original on 2008-12-19. Retrieved 2008-09-02.
- ^ "The Master Boot Record (MBR) and What it Does". Archived from the original on 2013-05-27. 090912 dewassoc.com
- ^ "Reverse-Engineering DOS 1.0 – Part 1: The Boot Sector « pagetable.com". Archived from the original on 2009-05-11. 090912 pagetable.com
- ^ "CONFIG.SYS Commands". Archived from the original on 2009-05-02. 090913 academic.evergreen.edu
- ^ Kozierok, Charles (2001). "The DOS Boot Process". The PC Guide. Archived from the original on 2008-07-19. Retrieved 2008-09-02.
- ^ "misc.txt". Archived from the original on 2010-06-29. 090912 arl.wustl.edu
- ^ a b "Drive Letter Assignment and Choosing Primary vs. Logical Partitions". The PC Guide. 2001-04-17. Archived from the original on 2012-04-17. Retrieved 2012-04-04.
- ^ "Microsoft Windows MS-DOS Device Name DoS Vulnerability". Archived from the original on 2011-07-25. Retrieved 2008-09-02.
- ^ "DOS device names definition". PC Magazine. Archived from the original on 2008-09-29. Retrieved 2008-09-02.
- ^ a b c "MS-DOS Device Driver Names Cannot be Used As File Names". Revision 2.0. Microsoft. 2003-05-12. KB74496, Q74496. Archived from the original on 2012-07-21.
- ^ a b c d e Hewlett-Packard - Technical Reference Manual - Portable PLUS (1 ed.). Corvallis, OR, USA: Hewlett-Packard Company, Portable Computer Division. August 1985. 45559-90001. Retrieved 2016-11-27.
- ^ a b c d e Hewlett-Packard - Technical Reference Manual - Portable PLUS (PDF) (2 ed.). Portable Computer Division, Corvallis, OR, USA: Hewlett-Packard Company. December 1986 [August 1985]. 45559-90006. Archived (PDF) from the original on 2016-11-28. Retrieved 2016-11-27.
- ^ Paterson, Tim; Microsoft (2013-12-19) [1983]. "Microsoft DOS V1.1 and V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM". Computer History Museum, Microsoft. Archived from the original on 2014-03-26. Retrieved 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.)
- ^ Paul, Matthias R. (1997-10-02). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Archived from the original on 2003-10-04. Retrieved 2009-03-29. [1]
- ^ Bailes & Mueller 1992, p. 5.
- ^ Bailes & Mueller 1992, pp. 42–44.
- ^ Bailes & Mueller 1992, pp. 67–68.
- ^ Mueller 1998, pp. 169.
- ^ Mueller 1998, pp. 243–244.
- ^ Bailes & Mueller 1992, p. 79–80.
- ^ Mueller 1998, p. 243.
- ^ Bailes & Mueller 1992, pp. 150–151.
- ^ Murdock, Everett (2008). DOS the Easy Way. EasyWay Downloadable Books. pp. 7–12. ISBN 978-0-923178-02-4.
- ^ Murdock, Everett (2008). DOS the Easy Way. EasyWay Downloadable Books. p. 71. ISBN 978-0-923178-02-4. Archived from the original on 2015-03-18.
- ^ Dvorak, John Charles; Anis, Nick (1991). Dvorak's Guide to DOS and PC Performance. Osborne McGraw-Hill. pp. 442–444.
- ^ Version 1.47 is archived at "Back and Forth 1.47". Archived from the original on 2013-11-05. Retrieved 2013-08-05. and says "(C) 1990 by Progressive Solutions, Inc."
- ^ Darrow, Barbara (2002-02-01). "Whatever Happened To Lotus 1-2-3?". Archived from the original on 2009-01-09. Retrieved 2008-07-12.
Further reading
[edit]- 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
- Mueller, Scott (1998). Upgrading and Repairing PCs (Eighth ed.). Que Publishing. ISBN 0-7897-1295-4. Retrieved 2021-11-02.
- Bailes, Lenny; Mueller, John (1992). Memory Management and Multitasking Beyond 640K. McGraw-Hill. ISBN 0-8306-3476-2. Retrieved 2021-11-02.
External links
[edit]- Origins of DOS, articles and manuals by Tim Paterson.
- Timeline of DOS and Windows versions at the Wayback Machine (archived 2007-10-28)
- "DOS - where hardware is the only limit". Archived from the original on 2010-08-15. Retrieved 2010-08-29.
- Batfiles: The DOS batch file programming handbook
- "The Rise of DOS: How Microsoft Got the IBM PC OS Contract". pcmag.com. Retrieved 2022-12-24.
- "Application Software - DOS Short File Name Family". www.jumpjet.info. Archived from the original on 2020-02-17. Retrieved 2020-02-07. "(...) An archive of carefully hand selected FREE [and abandoned] software for DOS."
- Online Windows XP Simulator
- MS-DOS v1.25, v2.0, v4.0 Source Code