# PC-kompatibles DOS

Als PC-kompatibles DOS werden Betriebssysteme für Computer bezeichnet, die kompatibel zum Betriebssystem-Standard MS-DOS von Microsoft sind. Dabei gelten diese DOS-Betriebssysteme als IBM-PC-kompatibel bzw. MS-DOS-kompatibel, wenn sie auf einem IBM PC oder einem IBM-PC-kompatiblen Computer lauffähig sind und es ermöglichen, für PC DOS bzw. MS-DOS geschriebene Programme unverändert und voll funktionsfähig auszuführen.

## Vorgeschichte

Die Wurzeln der DOS-Systeme für Heimcomputer liegen in Betriebssystemen für Mainframes, die ab den mittleren 1960er Jahren verfügbar wurden. Damals lösten Magnetplatten die Magnetbänder als wichtigster Massenspeicher ab. Unter den sogenannten Disk Operating Systems wurde es im Gegensatz zu den älteren Tape Operating Systems möglich, ohne IPL mehrere Programmabläufe (Batch-Jobs) quasi parallel zu verarbeiten und damit über die rein sequenziellen Schreib-/Lese-Vorgänge des Bandlaufwerks hinauszugehen, wie für Magnetplatten-Speichermedien angemessen ist.
Mit der Gruppe der auf dem PC im engeren Sinne (IBM PC) lauffähigen Systeme haben sich die beiden Zweige der DOS-Systeme von Microsoft (MS-DOS) und IBM (IBM DOS/PC DOS) herausgebildet.
Diese DOS-Typen wurden ursprünglich im Jahr 1980 als QDOS, dann bald in 86-DOS umbenannt, von Tim Paterson von Seattle Computer Products als CP/M-80-Derivat für Intel-8086-Prozessoren geschrieben, weil die CP/M-86-Version von Digital Research auf sich warten ließ. Bis auf das gegenüber dem CP/M-Dateisystem deutlich verbesserte FAT-Dateisystem, das Paterson seinerseits aus einem BASIC-Interpreter von Microsoft übernommen hatte, bot 86-DOS fast genau die gleichen Möglichkeiten wie CP/M-80, nur eben für einen neueren Prozessortyp.
Kurz danach wurde 86-DOS von Microsoft gekauft und in MS-DOS umbenannt, als IBM bei Microsoft um ein kurzfristig verfügbares Betriebssystem für ihren in Entwicklung befindlichen IBM PC anfragte, Microsoft aber nicht schnell genug selbst eines entwickeln konnte.
PC DOS und MS-DOS haben darum einige wesentliche Merkmale und Systemschnittstellen (APIs) von CP/M übernommen. Dieser Umstand führte später zu rechtlichen Auseinandersetzungen von Microsoft mit dem CP/M-Hersteller Digital Research.

## PC-kompatibles DOS
### MS-DOS

MS-DOS ist ein Betriebssystem, das bei Microsoft aus einer Auftragsentwicklung für IBM hervorging. Die erste von Microsoft selbst vertriebene Version von MS-DOS kam 1982 als MS-DOS 1.25 auf den Markt. MS-DOS gab es in Anpassungen für Dutzende verschiedener PC-Hersteller (OEMs), bei denen insbesondere die in der Datei IO.SYS liegenden hardwarenahen Ein- und Ausgaberoutinen sowie verschiedene Hilfsprogramme speziell an die Besonderheiten der jeweiligen Wirtsmaschinen, die zwar kompatibel zu dem 8086-Prozessor von Intel, aber nicht notwendigerweise auch zum IBM PC kompatibel sein mussten, angepasst wurden. Diese angepassten Versionen waren daher auf Rechnern von anderen Herstellern nicht oder nur eingeschränkt lauffähig. Die speziell an IBM PCs angepasste OEM-Variante von MS-DOS hieß IBM DOS bzw. später PC DOS und wurde von IBM für die eigenen Rechner vertrieben. Die technische Weiterentwicklung erfolgte abwechselnd sowohl bei Microsoft als auch bei IBM.
Mit dem Aufkommen „100 % IBM-PC-kompatibler“ Klone ab dem Jahr 1983 und dem Verschwinden von nicht IBM-kompatiblen x86-Rechnern verschwanden zunehmend auch die funktionell speziell angepassten OEM-Versionen von MS-DOS vom Markt, sodass im weiteren Verlauf alle OEMs mit einer generischen MS-DOS-Version mit nur minimalen OEM-Anpassungen bedient werden konnten, die oft nur noch in der Anpassung der Startmeldung und/oder in individuell beigefügten Utilities bestanden. Gegenüber der von IBM vertriebenen OEM-Version „PC DOS“ verfügte die generische Version von MS-DOS immerhin über Code zur Behandlung diverser Spezialfälle auf nicht vollständig kompatiblen Maschinen. PC DOS als dediziertes Betriebssystem nur für Original-IBM-Maschinen konnte ohne diese Sonderbehandlungen auskommen und blieb somit etwas schlanker und performanter.
Die letzte eigenständige MS-DOS-Version mit der Versionsnummer 6.22 erschien 1994. Als Bestandteil der Betriebssysteme der Windows-9x-Reihe bekam MS-DOS LBA- und FAT32-Unterstützung und wurde noch bis zur Version 8.0 weiterentwickelt.

### PC DOS und IBM DOS

PC DOS ist eine weit verbreitete OEM-Variante des Betriebssystems MS-DOS, das bei Microsoft aus einer Auftragsentwicklung für IBM hervorging und vor Auslieferung durch IBM leichten Veränderungen, vor allem einer Vielzahl von Fehlerbehebungen, unterworfen wurde. Version 1.0 kam 1981, also noch vor der ersten von Microsoft selbst vertriebenen MS-DOS-Version, unter der offiziellen Bezeichnung „IBM Personal Computer Disk Operation System 1.0“ auf den Markt, wurde aber schon damals in Kurzform einfach „PC DOS“ genannt. Die Versionen 3.30 bis 5.02 liefen unter dem offiziellen Namen „IBM DOS“ und ab Version 6.1 wurde das System als „IBM PC DOS“ vermarktet.
Gegenüber generischen MS-DOS-Ausgaben wies PC DOS verschiedene Optimierungen auf, die z. T. nur auf Original-IBM-PCs und 100 %-kompatiblen Maschinen lauffähig waren. Die technische Weiterentwicklung erfolgte abwechselnd sowohl bei Microsoft als auch bei IBM.
PC DOS wurde bis zur Version 6.3 von 1993 kompatibel zu MS-DOS (Windows 3.x) weiterentwickelt, wobei sich bereits Version 6.1 von MS-DOS 6.0 deutlicher unterschied als die vorigen Versionen untereinander und PC DOS als Alternative auch für PCs andere Hersteller vermarktet wurde. Die aktuellen Versionen PC DOS 7.0 (Revision 0, 1994) mit REXX-, PCMCIA-, DPMS- und XDF-Unterstützung, Stacker Disk Compression und einem leistungsfähigen Texteditor und Hilfesystem, PC DOS 2000 (PC DOS 7.0 Revision 1, 1998) mit Jahr-2000-Fixes und Euro-Unterstützung und OEM PC DOS 7.1 (2003) mit LBA/FAT32-Unterstützung sind eigenständige Weiterentwicklungen von IBM, an denen Microsoft keinen Anteil mehr hatte.

### DR-DOS

DR-DOS (bis einschließlich zur Version 6.0 noch DR DOS) wurde ursprünglich von Digital Research als Antwort auf MS-DOS entwickelt, da MS-DOS, ursprünglich weitestgehend ein Klon von CP/M-80 für 8086-Prozessoren, durch einen Vertrag mit IBM zum Standard-Betriebssystem für den IBM PC und den großen Markt dazu kompatibler Rechner avancierte. Eine solche Vormachtstellung unter den Betriebssystemen für Mikrocomputer hielt zuvor Digital Researchs CP/M-Betriebssystemfamilie inne, welche nun durch MS-DOS zunehmend verdrängt wurde. DR-DOS kann als Weiterentwicklung von CP/M (hier speziell CP/M-86) in Richtung MS-DOS/PC DOS angesehen werden. Tatsächlich lässt sich durch diese Verwandtschaft die Entstehungsgeschichte einiger (nur weniger) Routinen auf Quelltextebene, u. a. auch die des DOS-Kernel BDOS, in direkter Linie bis ins Jahr 1976 zurückverfolgen, also bis lange vor der Einführung des PCs von IBM, auch wenn die Entwicklung von DR DOS als solchem erst viel später begonnen wurde.
Die Entwicklung von zu MS-DOS/PC DOS kompatiblen Disk-Operating-Systemen begann bei Digital Research 1983 mit der Entwicklung des DOS-Emulators PCMODE, eines Zusatzmoduls für deren eigenes auf mehr als hundert OEM-Plattformen etabliertes Betriebssystem Concurrent CP/M-86 3.1 (BDOS-Kernel 3.1). Bei DR Concurrent CP/M-86 handelte es sich um eine multitaskingfähige Ausführung von CP/M-86. Mit der nächsten Betriebssystemversion wurde der Emulator 1984 fester Bestandteil des Systems, das dementsprechend in DR Concurrent DOS 3.2 (mit BDOS-Kernel 3.2) umbenannt wurde. Die CDOS-OEM-Anpassung für IBM-PC-kompatible Rechner wurde durch die Zusatzbezeichnung „PC“ im Namen von DR Concurrent PC DOS (alias CPCDOS) ausgedrückt. Dieses Digital Research-Betriebssystem konnte gleichzeitig CP/M-86- als auch MS-DOS/PC-DOS-1.1-Anwendungen ausführen. Trotz der Namensähnlichkeit muss das System streng von IBM PC DOS unterschieden werden, das als MS-DOS-OEM-Version weder CP/M-86-Kompatibilität noch Multitasking bot. Spätere Versionen von CDOS unterstützten auch EEMS-Bankswitching (CDOS 86/XM, 1986) und nutzten den 286- bzw. 386-Protected Mode (CDOS 286, 1985, bzw. CDOS 386, 1987) zur Speicherverwaltung und für Multitasking. Auch der DOS-Emulator wurde zunehmend weiterentwickelt und bot Kompatibilität zu DOS 2.x/3.x/5.x-Anwendungen. Weiterentwicklungen von Concurrent DOS waren FlexOS und Multiuser DOS (MDOS), aus dem sich sehr viel später Datapac System Manager und IMS REAL/32 entwickelten. CDOS, FlexOS und MDOS wurden jedoch wegen ihrer hohen Zuverlässigkeit überwiegend im professionellen Umfeld und für industrielle Steueraufgaben eingesetzt und sind auf normalen Desktoprechnern nicht weit verbreitet gewesen.
Digital Research unternahm mehrere Versuche, auch im Desktop-Markt mit eigenen MS-DOS/PC-DOS-kompatiblen Betriebssystemen Fuß zu fassen.
Der erste dieser Versuche bestand in DOS Plus 1.2-2.1 (1986–1988), einem Single-User-Abkömmling von DR Concurrent PC DOS 4.1-5.0, der neben CP/M-86-Anwendungen auch PC-DOS-2.11-Anwendungen ausführen konnte und für eine Handvoll OEM-Plattformen verfügbar war. Die DOS-Kompatibilität war als Emulation auf der Basis eines CP/M-Kernels jedoch noch eingeschränkt, u. a. da viele Kommandos noch CP/M-ähnlich lauteten und z. B. keine DOS-Gerätetreiber geladen werden konnten.
Den nächsten und letztlich erfolgreichen Versuch startete Digital Research 1988 mit der Vorstellung von DR DOS 3.31 (mit BDOS-Kernel 6.0) in einer Phase, als die Weiterentwicklung von MS-DOS/PC DOS bei Microsoft und IBM zu stagnieren schien und dringend notwendige Anpassungen an die Möglichkeiten neuerer Maschinen dort über Jahre hinweg verschleppt wurden. Bei dieser neuen Single-User-Betriebssystemlinie handelte es sich um eine Abspaltung von Concurrent DOS 6.0, bei dem das XIOS zwecks Erzielung maximaler Kompatibilität mit der Bootphase von DOS als auch mit DOS-Gerätetreibern durch ein IBM-PC-kompatibles DOS-BIOS ersetzt wurde. Zwar arbeitete im Innern immer noch ein CP/M-ähnlicher BDOS-Kernel, der aber nach außen hin keine Kompatibilität zu CP/M-Systemaufrufen mehr anbot und sich als IBM PC DOS 3.31 ausgab. Das System bot kein Multitasking, dafür aber nahezu 100%ige Kompatibilität zu DOS-Anwendungen, die bei bis dato gängigen MS-DOS-Ausgaben überfällige Unterstützung für die Verwaltung (damals) „großer“ Festplatten (nach dem Vorbild von Compaq MS-DOS 3.31), sowie eine Reihe Erweiterungen gegenüber der Konkurrenz MS-DOS an, etwa eine passwortgestützte Zugriffssteuerung für Dateien und Verzeichnisse, floating drives, beliebig tief verschachtelbare Unterverzeichnisse, eine überall wirksame Kommandozeilen- und Eingabe-History-Funktion, aussagekräftige Fehlermeldungen und erweiterte Hilfefunktionen.
DR DOS konnte sich über etliche Versionen (DR DOS 3.31, 3.32, 3.33, 3.34, 3.35 mit BDOS 6.0, DR DOS 3.40, DR DOS 3.41 mit BDOS 6.3, DR DOS 5.0 mit BDOS 6.5, DR DOS 6.0 mit BDOS 6.7) hinweg als leistungsstarke Alternative zu MS-DOS und PC DOS behaupten. Ab diesem Zeitpunkt wurden viele der grundlegend neuen Funktionen (u. a. Speichermanagement, Taskswitching, GUI, Diskkompression, Löschverfolgung) von DOS zuerst in DR DOS und zum Teil erst Jahre später in MS-DOS und PC DOS implementiert. Auch die Kompatibilität zu unsauberen DOS-Anwendungen wurde zunehmend verbessert, bis schließlich 1992 mit DR PalmDOS 1.0 (BDOS 7.0) die bisherige DOS-Emulation des Kernels vollständig durch DOS-kompatible interne Strukturen ersetzt wurde. Bei DR PalmDOS handelte es sich um eine Weiterentwicklung von DR DOS 6.0 mit speziellen Funktionen für frühe Palmtops wie einem integrierten PCMCIA-Stack, der Möglichkeit, XIP-Applikationen unter einer speziellen Taskswitcher-Variante direkt aus dem ROM heraus auszuführen, und einem erweiterten Energiemanagement inklusive einer dynamisch wirksamen Leerlauferkennung. Aus Kompatibilitätsgründen gaben sich alle bisherigen Ausgaben von DR DOS für normale DOS-Anwendungen als PC DOS 3.31 aus.
Nach dem Verkauf von Digital Research an Novell im Jahr 1993 wurde das System 1994 als Novell DOS 7 (mit BDOS 7.2) vermarktet, das sich für DOS-Anwendungen als PC DOS 6.1 ausgab. Novell DOS 7 bot neben Peer-to-Peer-Netzwerkfunktionen (Personal NetWare) ein stark erweitertes Speichermanagement mit VCPI, DPMI und DPMS und in Verbindung mit einem über EMM386 bereitgestellten 32-bittigen Protected-Mode-Core-System Unterstützung für präemptives Multitasking und Multithreading in virtuellen DOS-Maschinen.
Nach über 15 Updates wurde das System 1996 an Caldera verkauft, welche es 1997 als Caldera OpenDOS 7.01 wiederveröffentlichten. Der Quelltext der Kernkomponenten wurde ebenso veröffentlicht (nur für nicht-kommerzielle Zwecke nutzbar) wie historische Quelltexte von CP/M, GEM und ViewMAX. Caldera UK entwickelte das System unter dem Namen DR-DOS (nun erstmals mit Bindestrich geschrieben) zu DR-DOS 7.02 und 7.03 (BDOS 7.3) mit Jahr-2000-Fixes, Euro-Unterstützung und einigen neuen Hochladefunktionen weiter, Versionen, die neben einigen größeren, nicht allen Ausgaben beiliegenden Erweiterungen (etwa der TCP/IP-Unterstützung, dem grafischen HTML-3.2-Webbrowser WebSpyder, der Unterstützung für lange Dateinamen mit LONGNAME, der dynamisch ladbaren Unterstützung für LBA-Zugriffe und FAT32-Laufwerke mit DRFAT32 sowie einer POSIX-pthreads-API-Erweiterung) in erster Linie durch mehrere hundert Optimierungen und Verbesserungen im Detail auffielen. Außerdem wurden spezielle DR-DOS-Versionen namens „Winglue“ bzw. „Winbolt“ entwickelt, die kompatibel zu Windows 95 (MS-DOS 7.0 + Windows 4.0) und Windows 98 (7.1 + Windows 4.1) waren und eine wichtige Rolle im Prozess Caldera vs. Microsoft spielten, aber bislang unveröffentlicht blieben.
Mit der Schließung der englischen Entwicklungszentrale in Andover Anfang 1999 und der Ausgliederung an Caldera Thin Clients, USA, einer Tochter der Caldera-Mutter, wurde die Weiterentwicklung von DR-DOS abrupt eingestellt. DR-DOS 7.03 wurde zunächst noch von Lineo bzw. Embedix, die aus Caldera Thin Clients hervorgegangen sind, vertrieben und wird heute noch von DRDOS, Inc. alias DeviceLogics für den Einsatz in eingebetteten Systemen angeboten.
Von ehemaligen Entwicklern des Systems wurden über die Jahre in Auftragsarbeit noch spezielle OEM-Versionen DR-DOS 7.04, 7.05, 7.06 und später auch noch 7.07 (BDOS 7.3/7.4/7.7) und 7.08 (BDOS 7.8) mit LBA- und FAT32-Unterstützung entwickelt.
Von DRDOS, Inc. wurden zwei Versionen veröffentlicht. Bei DR-DOS 8.0 (2004) handelt es sich um eine auf DR-DOS 7.0x zurückgehende OEM-Version mit LBA- und FAT32-Unterstützung mit vielfältigen Erweiterungen der Disktools. DR-DOS 8.1 (2005) basierte – im Gegensatz zu DR-DOS 8.0 – zum Teil nicht auf DR-DOS-Vorgängerversionen, sondern auf FreeDOS-Komponenten und musste wegen Urheberrechtsverletzungen zurückgezogen werden.
Die letzte offizielle Version für Desktop-Systeme ist damit immer noch das von Caldera stammende DR-DOS 7.03 aus dem Jahr 1999.
Die einzige öffentlich zugängliche Weiterentwicklung ist somit derzeit das als Fan-Projekt zu titulierende Enhanced DR-DOS 7.01.xx, das von Udo Kuhnt aus dem veröffentlichten Quelltext von Caldera OpenDOS 7.01 hervorgegangen ist. EDR-DOS unterliegt den Lizenzbedingungen des OpenDOS 7.01-Quelltextes, welcher eine kommerzielle Nutzung (außer für Testzwecke) ausschließt.
Das DOS-BIOS und BDOS von DR-DOS und praktisch alle residenten Treiber (insbesondere die Speichermanager) sind komplett in Assembler geschrieben, lediglich Teile der Shell COMMAND.COM und Hilfsprogramme wurden in C geschrieben.

### PTS-DOS

PTS-DOS ist ein MS-DOS-Klon aus Russland, der fast komplett in Assembler geschrieben ist. Es unterscheidet sich in Handhabung und Benennung von Systemdateien noch stärker von MS-DOS, als das bei DR-DOS der Fall ist.
PTS-DOS wurde ab 1991 von neu gegründeten Unternehmen PhysTechSoft für das russische Militär entwickelt und durch das Verteidigungsministerium zur kommerziellen Vermarktung freigegeben. Die erste Version wurde 1993 als PTS-DOS 6.4 veröffentlicht. Nach Version 6.5 gründeten einige Programmierer des Herstellers das Unternehmen Paragon und entwickelten unter Mitnahme des Quelltextes eigene Versionen von PTS-DOS. Mittlerweile werden beide Linien nicht mehr weiterentwickelt.

### Weitere MS-DOS/PC-DOS-kompatible Varianten

Es gibt viele zu MS-DOS zumindest teilkompatible DOS, einige verbreitete sind:
* DCP: in der DDR verwendeter DOS-Klon von Robotron.
* Embedded DOS: DOS-Klon von General Software für Embedded Systems
* FreeDOS: Als FOSS-Projekt entstanden, um den Fortbestand und die Weiterentwicklung des DOS-Betriebssystems zu gewährleisten
* PC-MOS/386: Ein multitaskingfähiges Mehrbenutzer-Betriebssystem, das DOS-Anwendungen für mehrere Benutzer verfügbar macht.
* RxDOS: Ein vollständig ablaufinvariant programmierter DOS-Klon von Mike Podanoffsky
* ROM DOS: Ein DOS-Klon von Datalight für Embedded Systems

## Funktionsweise
### Speichertypen

Eine Eigenart von DOS auf IBM-PC-kompatiblen Computern ist, dass der Arbeitsspeicher in unterschiedliche Speichertypen unterteilt werden kann. Diese sind eine Konsequenz der historisch gewachsenen Architektur, denn der erste IBM PC, der die Speicherarchitektur von DOS begründet, ist eine 16-Bit-Architektur mit 8-Bit-Busanbindung (Intel 8088). Die Speicheradressierung ist auf 20 Bits limitiert, was direkten Speicherzugriff auf 1 MiB erlaubt. Da „der (IBM) PC“ Erweiterungskarten unterstützt, deren Firmware („BIOS“) adressierbar sein muss, wurde eine Unterteilung von 640 KiB Arbeitsspeicher für das Betriebssystem (PC DOS bzw. MS-DOS) und 386 KiB für BIOS, Grafikkarte und zusätzliche Erweiterungskarten vorgenommen.
16-Bit-DOS-Programme sind grundsätzlich mit dieser Arbeitsumgebung kompatibel. Dieser Modus wird auch von späteren x86-Prozessoren unterstützt und retronym „Real Mode“ genannt: so kann auch der PC/AT und dazu kompatible PCs weiterhin DOS und DOS-Programme ausführen, hat darin aber ebenfalls nur Zugriff auf 1 MiB RAM. Weil Programme immer mehr Speicher benötigten, wurden anfänglich Speichererweiterungskarten entwickelt, die zusätzlichen Speicher in Form einer Erweiterungskarte bereitstellen. Dieser Speicher wird expanded memory genannt und wurde 1985 als LIM-EMS standardisiert. Viele DOS-Programme können daher mit EMS-Speicher umgehen.
Der Intel 80286 im PC/AT kann bis zu 16 MiB (24 Bits) direkt adressieren, wenn er im 16-Bit-„Protected Mode“ betrieben wird, und ab dem Intel 80386 mit dem auf 32-Bit erweiterten Protected Mode sind es 4 GiB (32 Bits, mit PAE und z. B. 36 Bits sind 64 GiB adressierbar). Damit Speicher über 1 MiB auch im kompatiblen 16-Bit-Real-Mode unter DOS verwendet werden kann, wurden unterschiedliche Speicherarten definiert, die einerseits vom Betriebssystem mittels Treiber zur Verfügung gestellt werden und den Speicher verwalten, andererseits auch von den einzelnen Programmen unterstützt werden müssen. Damit ein DOS-Programm mehr als den Konventionellen Speicher verwenden kann, muss es den jeweiligen Speichertyp kennen und der Spezifikation entsprechend anfordern.
* Konventioneller Speicher (englisch conventional memory) – die unteren 640 KiB, die für das Betriebssystem DOS und Programme zur Verfügung stehen; die ersten 90 KiB sind üblicherweise belegt:
** interrupt vector table (1 KiB)
** ROM BIOS tables
** DOS selbst, u. a. der speicherresidente Teil von COMMAND.COM, Dateisystem-Puffer (CONFIG.SYS BUFFERS=)
* Upper Memory Block (UMB; „oberer Speicherbereich“) – Bereiche zwischen 640 KiB und 1 MiB, wenn sie nicht bereits benutzt werden und daher „frei“ sind; fix vergeben, jedoch von PC zu PC unterschiedlich, sind typischerweise:
** BIOS (typisch 128 KiB; alternative Begriffe: System-BIOS, BIOS-ROM, ROM-BIOS)
** Video-ROM (typisch 64 KiB; video adapter ROM)
** Video-RAM (typisch 128 KiB)
** expanded memory window (64 KiB; EMS)
** Option ROM von Erweiterungskarten, z. B. einer Netzwerk- oder SCSI-Steckkarte (unterschiedlich)
** die ersten 16 Bytes der High Memory Area
* Erweiterungsspeicher (englisch extended memory) – alles, was über 1 MiB hinausgeht
** High Memory Area (HMA, „hoher Speicherbereich“) – 65520 Bytes oberhalb der 1 MiB-Grenze, die durch einen Hack ab dem 80286 nutzbar sind
** expanded memory, siehe Expanded Memory Specification (EMS)
** extended memory per Spezifikation, siehe Extended Memory Specification (XMS)
Im IBM PC und PC XT ist die Upper Memory Block nicht als RAM vorhanden. Dieser „reservierte“ (englisch reserved) Speicherbereich ist dann direkt auf den Speicher im jeweiligen ROM adressiert. Die Chipsets von PCs mit 1 MiB Speicher können den Speicherbereich zwischen 640 KiB und 1 MiB daher manchmal auch nach oben verschieben, sodass 640 KiB Konventioneller Speicher, gefolgt von der HMA (die ROMs), gefolgt von 384 KiB Erweiterungsspeicher für die Software verfügbar sind. Soll DOS die freien Bereich im UMB jedoch nutzen können, muss der Speicher unverändert eingeblendet werden, wodurch aber auch jene Speicherbereiche, die durch die ROMs belegt sind, verloren gehen, da sie nicht gleichzeitig als RAM adressierbar sind.
Ab dem 80286 kann auch EMS-Speicher im Erweiterten Speicher bereitgestellt werden, ganz ohne Speicher-Erweiterungskarten, die allerdings weiterhin funktionieren. Aufgrund von Einschränkungen des 80286 ist der Zugriff auf EMS-Speicher im Erweiterungsspeicher jedoch langsam – ein Manko, das durch Hardware-Unterstützung (im Chipset am Mainboard) umgangen werden kann und beim 80386 beseitigt wurde.
DOS bietet mit den Treibern HIMEM.SYS für UMB/HMA/XMS und EMM386.EXE für EMS für alle DOS-Programme den jeweils passenden Speicher.
Das Kommandozeilenprogramm MEM gibt den konfigurierten und verfügbaren Speicher für DOS-Programme aus:

### Befehlszeile

Als interaktive Benutzerschnittstelle steht grundsätzlich eine Befehlszeile bereit, auf der DOS-Befehle und ausführbare Dateien aufgerufen werden können.

### Initialisierung über Batch-Befehle

Unter DOS werden häufig Batchdateien (deutsch auch „Stapelverarbeitungsdateien“) benutzt, um automatisch Abfolgen von Befehlen auszuführen. Da manche DOS-Systeme keine Einstellungen speichern können und diese daher nach einem Neustart verfallen, werden Batchdateien benutzt, um diese bei jedem Systemstart erneut zu setzen (zum Beispiel mittels AUTOEXEC.BAT, einer Batchdatei, die verschiedene DOS-Systeme beim Starten automatisch ausführen).

### Grafische Benutzeroberflächen für DOS

Es wurden viele grafische Benutzeroberflächen (auch engl. GUI, Graphical User Interface) für MS-DOS und dazu kompatible DOS-Versionen entwickelt. Bis heute weiterentwickelte und erhältliche grafische Bedienoberflächen sind PC/GEOS, OpenGEM (eine freie Weiterentwicklung des originalen GEM von Digital Research) sowie die Entwicklungen um MatrixOS, Qube3P und SEAL.
Sehr alte Versionen von Microsoft Windows bis einschließlich Windows 2.x waren nur grafische Erweiterungen für MS-DOS. Sie wurden als optionale Erweiterung von MS-DOS entwickelt und auch separat vertrieben. Windows 3.x verwendet in vielen Bereichen DOS-Routinen, besitzt jedoch mit eigenem Scheduler und Speichermanagement bereits wesentliche Komponenten eines eigenständigen Betriebssystems. Windows 95 und alle darauf basierenden Nachfolger verwenden DOS zum Starten und für die Ausführung DOS-basierter Programme; 32-Bit-Programme verwenden DOS-Betriebssystemroutinen nur selten, da das Win32-API diese prinzipiell ersetzt. Die speziell für Windows angepassten Versionen von MS-DOS (MS-DOS 7, 8) sind für den Start der jeweiligen Windows-9x-Version zwingend. Diese weiterentwickelten MS-DOS-Versionen waren nicht mehr einzeln erhältlich, sondern nur noch integraler Bestandteil aller Versionen von Windows 95, Windows 98 und zuletzt von Windows Me, das im Jahr 2000 erschien. Danach wurde die Weiterentwicklung eingestellt.

## Heutige Verwendung

DOS-Systeme gelten als veraltet und werden heute, sofern sie nicht eine Betriebssystemkomponente sind, praktisch nur noch auf Altsystemen, für den Betrieb alter DOS-Software in Emulatoren oder in Nischenmärkten eingesetzt.

### Als Betriebssystem

DOS-Betriebssysteme werden für eingebettete Systeme verwendet.
Von OEMs werden DOS-Systeme, insbesondere das frei verfügbare und somit lizenzkostenfreie FreeDOS, gerne verwendet, um PCs nicht völlig ohne Betriebssystem verkaufen zu müssen, wenn sie weder Windows noch Linux installieren wollen.
Um mit neueren Betriebssystemen nicht kompatible Software weiterverwenden zu können, findet es sich als voll installiertes System auf einem PC mit mehreren Betriebssystemen (Multi-Boot-Systeme), von denen man jeweils beim Booten dann ein System wählen kann. Dieser Weg ist heute weitgehend durch DOS-Emulatoren ersetzt.
Auch für ein BIOS- oder Firmware-Update werden diese Betriebssysteme eingesetzt. Des Weiteren werden sie für bootfähige Notfall- und Reparatur-Medien verwendet, insbesondere für die Malware-Bekämpfung, weil die übliche Schadsoftware auf den DOS-Systemen nicht lauffähig ist. Dabei stellt das DOS das Starten von Virenscannern und einfache Filearbeit zur Verfügung. Dasselbe gilt für Wiederherstellungs-CDs von Image-Programmen.

### DOS-Emulatoren

OS/2, das von IBM und Microsoft ab 1987 entwickelte Betriebssystem, basierte nicht mehr auf DOS, wenn auch gewisse Eigenheiten des DOS-Systems vorhanden sind. Die damals notwendige Abwärtskompatibilität wurde über den DOS emulation kernel, auch als Multithreading (Multiple Virtual DOS Machine, MVDM) bezeichnet, sichergestellt. Diese damals revolutionäre Technik hat sich aber auch als großer Schwachpunkt herausgestellt, weil der DOS-Modus am Bildschirm nur exklusiv lief, und alle Treiber die Umschaltung in den DOS-Modus mitmachen mussten. Spätere 32-Bit-Versionen ab 1991 erlaubten DOS-Multitasking-Sitzungen mit eigenem Fenstermanager (Workplace Shell, Presentation Manager). Moderne Windows-Versionen der NT-Linie, zu der auch Windows 2000 bis Windows 10 gehören, basieren auf dem Kernel des 1991 vorgestellten 32-Bit-Betriebssystems Windows NT 3.1, das damals vollkommen neu entwickelt wurde und keine „DOS-Wurzeln“ besitzt: MS-DOS/​PC DOS ist weder Bestandteil noch technische Basis dieser Betriebssysteme, wenngleich auch heute noch das Win32-Subsystem moderner 32-Bit-Windows-Versionen die Funktionalität von MS-DOS nachbildet. Modernere OS/2-Versionen verfolgten denselben Weg: Die DOS-Box (Kommandozeile) läuft in diesen Systemen als Interpreter (cmd.exe, COMMAND.COM), die DOS emuliert, um in DOS geschriebene Programme auszuführen. Die Funktion ist die einer Skriptsprache. Die 64-Bit-Versionen von Windows XP und neuer verfügen nicht mehr über die Möglichkeit, MS-DOS-Programme auszuführen.
Es gibt auch auf einigen weiteren Betriebssystemen die Möglichkeit, eine DOS-Umgebung zu emulieren. Beispielsweise stellt das unter Linux verfügbare das Programm DOSEMU eine Umgebung bereit, in der ein PC-kompatibles DOS gestartet werden kann, in dem wiederum für DOS geschriebene Programme genutzt werden können. Alternativ können aber auch ganze PC-Emulatoren (siehe auch Virtualisierung) verwendet werden, die die Hardware eines Computers originalgetreu nachzubilden versuchen. Auf einem solchen „virtuellen Computer“ muss ebenfalls ein originales DOS installiert werden, bevor es verwendet werden kann. Einen anderen Weg geht das auf verschiedenen Betriebssystemen verfügbare Programm DOSBox, das selbst ein zu MS-DOS kompatibles DOS emuliert und daher sofort betriebsbereit ist.
Im Gegensatz zu virtuellen Maschinen sind spezielle DOS-Emulatoren im Allgemeinen effektiver und damit schneller und ressourcenschonender, aber auch nicht vollständig kompatibel, da insbesondere direkte Systemzugriffe wie diverse BIOS-Routinen, die abseits der DOS-API genutzt werden, sowie direkte Zugriffe auf die Hardware, etwa direkte Speicherverwaltung, nicht funktionieren. Ebenso kann es sein, dass ein PC-Emulator nicht alle Funktionen der emulierten Hardware originalgetreu zur Verfügung stellt, und somit das eine oder andere DOS-Programm fehlerhaft oder überhaupt nicht arbeitet. Außerdem fällt der Geschwindigkeitsvorteil weg, wenn das Hostsystem Pacifica- (AMD) oder Vanderpool-Technologie (Intel) unterstützt, da diese Technologien eine starke Beschleunigung von virtuellen Maschinen bewirken, jedoch keine Auswirkung auf Emulatoren haben. Auf solchen Systemen sind virtuelle Maschinen üblicherweise schneller als DOS-Emulatoren.