MS-DOS, kurz für Microsoft Disk Operating System, ist Microsofts erstes Betriebssystem für x86-PCs.
MS-DOS ist ursprünglich für den Intel-Prozessor 8086/8088 entwickelt worden und war in den späten 1980er und frühen 1990er Jahren das dominierende Betriebssystem für Einzelplatzrechner.
Heute wird MS-DOS, das immer wieder erweitert wurde (u. a. durch grafische Benutzeroberflächen), für zeitkritische Anwendungen, Startmedien (Boot-Disketten) oder für Anwendungen, die direkten Zugriff auf die Hardware erfordern, vor allem aber in Embedded Systems eingesetzt. Die inzwischen veralteten und vom Markt genommenen Windows-Versionen 1.0-3.11, 95, 98 und Me waren von DOS abhängig. Windows NT und die darauf basierenden Microsoft-Betriebssysteme bauen nicht mehr auf MS-DOS auf und können DOS-Software nicht mehr oder nur noch eingeschränkt ausführen. Hierfür kommen seitdem verstärkt Emulatoren zum Einsatz.
Inhaltsverzeichnis |
MS-DOS wurde ursprünglich als QDOS („Quick and Dirty Operating System“, schnell und nicht ganz sauber programmiertes Betriebssystem) von Tim Paterson bei der Firma Seattle Computer Products entwickelt und 1980 an Microsoft verkauft. MS-DOS setzte sich gegen das damalige Konkurrenzprodukt CP/M von Digital Research durch, da es durch IBM für die damals neuen „Personal Computer“ (mittlerweile ist die abgekürzte Bezeichnung „PC“ selbst im deutschen Sprachraum gebräuchlich) als Standard-Betriebssystem zum Einsatz kam.
Die erste Version von MS-DOS war sehr stark an CP/M angelehnt, sodass Programme, die vormals unter CP/M liefen, sehr schnell auch unter MS-DOS verfügbar waren. Hauptunterschied war das besser durchdachte Dateisystem namens FAT („File Allocation Table“).
In der zweiten Version integrierte Microsoft Konzepte aus Xenix, um Probleme mit den neu aufkommenden Festplatten zu umgehen. Xenix ist ein UNIX-Abkömmling von Microsoft. Die übernommenen Konzepte ermöglichten hauptsächlich ein hierarchisches Dateisystem und ein Treiberkonzept für block- und zeichenorientierte Geräte.
Die dritte Version enthielt Erweiterungen, um über ein Netzwerk Daten von entfernten Rechnern nutzen zu können (Lan-Manager).
Bei der vierten Version wurde im wesentlichen die Begrenzung der Festplatten-Kapazität auf mehr als 32 MB pro logischem Laufwerk erweitert. Daneben wurden hier erstmals 3,5-Zoll-Diskettenlaufwerke vollständig unterstützt. Zur Arbeitserleichterung wurde die DOSSHELL als grafische Oberfläche eingeführt.
Mit der fünften Version versuchte man den knappen Hauptspeicher, der architekturbedingt auf 640 kB begrenzt war, durch die Einführung von HMA („High Memory Area“) und UMA („Upper Memory Area“) etwas zu erweitern. Ab dieser Version wurde EMS und XMS-Speicher für Prozessoren ab dem i386 direkt unterstützt. Auch die maximale Größe von logischen Laufwerken wurde auf 2 GB erhöht. Ansonsten enthielt die Version hauptsächlich Erleichterungen bei der Benutzerführung. Dazu gehörten etwa eine erweiterte DOS-Shell, ein neuer Editor und eine Online-Hilfe.
In der sechsten Version wurden neben diversen Detailverbesserungen der bestehenden Konzepte und dem Hinzufügen verschiedener Fremdprodukte keine wesentlichen Veränderungen mehr vorgenommen. Erwähnenswert ist höchstens noch DoubleSpace (später DriveSpace), mit dem es möglich wurde, Daten ohne zusätzliche Maßnahmen komprimiert auf der Festplatte zu speichern und damit auf Kosten der Geschwindigkeit und Datensicherheit bis zu 50 Prozent Speicher zu sparen.
| Version | Ausgabedatum | Funktionen |
|---|---|---|
| QDOS 0.1 | August 1980 | erste Version für eine S100-Steckkarte mit 8086-Prozessor von Seattle Computer Products; kennt bereits FAT |
| QDOS 0.2 | August 1980 | weitgehend identisch mit Version 0.1, ergänzt um den „provisorischen“ Zeileneditor edlin, der eigentlich nur als Übergangslösung gedacht war |
| 86-DOS 0.3 | Dezember 1980 | Umbenennung in 86-DOS; erste von Microsoft lizenzierte Version |
| 86-DOS 1.0 | April 1981 | MS-DOS 1.0 bereits sehr ähnlich |
| 86-DOS 1.14 | Juli 1981 | Microsoft kauft für 50.000 US-$ alle Rechte an 86-DOS (und erhält 80.000 US-$ von IBM für MS-DOS und MS-BASIC) |
| MS-DOS 1.0 | 12. August 1981 | initiale Version für den ersten IBM PC; einseitige 160-KB-Disketten |
| MS-DOS 1.1 | Mai 1982 | doppelseitige Disketten mit 360 KB; kleine Fehlerbereinigungen |
| MS-DOS 1.25 | August 1982 | erste Version für alle IBM-kompatiblen PC; Unterverzeichnisse |
| MS-DOS 2.0 | März 1983 | Version für den IBM PC XT mit 10-MB-Festplatte; in weiten Teilen neu geschrieben; Unterverzeichnisse; ladbare Gerätetreiber |
| MS-DOS 2.01 | OEM-Version für Wang | |
| MS-DOS 2.05 | OEM-Version für den DEC Rainbow 100 | |
| MS-DOS 2.1 | Oktober 1983 | Version für IBM PC Junior und den IBM PC Portable; landesspezifischer Zeichensätze |
| MS-DOS 2.11 | 1983 | Internationalisierung durch Einführung landesspezifischer Zeichensätze; weitgehend wie MS-DOS 2.1, aber ohne den Segen von IBM |
| MS-DOS 3.0 | August 1984 | Version für IBM PC AT; HD-Disketten mit 1,2 MB; größere Festplatten (20 MB) |
| MS-DOS 3.1 | März 1985 | erstmals mit Netzwerkunterstützung; Speichernutzung oberhalb 640 KB |
| MS-DOS 3.2 | Dezember 1985 | 3,5-Zoll-Disketten mit 720 KB |
| MS-DOS 3.21 | OEM-Version für Grid | |
| MS-DOS 3.3 | April 1987 | Unterstützung für IBMs neue PS/2-Baureihe; 3,5-Zoll-Disketten mit 1,44 MB |
| MS-DOS 3.31 | 1988 | OEM-Version für Compaq; unterstützt bereits Festplattenpartitionen mit mehr als 32 MB |
| MS-DOS 4.0 | Juli 1988 | erste MS-DOS-Shell; EMS-Speicher-Unterstützung; Festplattenpartitionen mit mehr als 32 MB; wurde wegen schwerwiegender Fehler bald wieder vom Markt genommen und durch Version 4.01 ersetzt |
| MS-DOS 4.01 | November 1988 | fehlerbereinigte Version von MS-DOS 4.0 |
| MS-DOS 5.0 | Juni 1991 | verbessertes Speichermanagement (XMS-DOS-Extender); Online-Hilfe; Texteditor; verbesserte MS-DOS-Shell |
| MS-DOS 6.0 | März 1993 | Virenschutz; Rücklöschungen; Festplatten-Defragmentierung; automatisierte Speicheroptimierung; Backup; Datenübertragung über serielle und parallele Schnittstelle; Boot-Menü für unterschiedliche Systemkonfigurationen; erstmals Unterstützung für CD-ROM-Laufwerke im Lieferumfang |
| MS-DOS 6.10 | 1993 | PCMCIA-Unterstützung; Streamer-Backup; Online-Datenkomprimierung |
| MS-DOS 6.20 | November 1993 | Verbesserte Online-Datenträgerkomprimierung; automatische Korrektur von Datenträgerfehlern |
| MS-DOS 6.21 | März 1994 | Online-Datenträgerkomprimierung wegen Urheberrechten entfernt |
| MS-DOS 6.22 | April 1994 | letzte eigenständige MS-DOS-Version; Festplattenoptimierung; neu entwickelte Online-Datenträgerkompression |
| MS-DOS 7.0 | September 1995 | MS-DOS ist nun ein Teil des Lieferumfangs von Windows 95 und kein separat erwerbbares Betriebssystem mehr; Windows 95 verwendet DOS zwar als Unterbau, DOS ist aber nach wie vor auch ohne Windows lauffähig; Unterstützung langer Dateinamen |
| MS-DOS 7.10 | 1996 | ab Windows 95B zusätzlich mit neuem Dateisystem FAT32 für Partitionen über 4 GB; leistungsfähigstes MS-DOS |
| MS-DOS 8.0 | Ende 1999 | MS-DOS ist integraler Bestandteil von Windows ME und nicht mehr eigenständig lauffähig; Kritiker werfen Microsoft vor, die Verschmelzung von DOS und Windows wurde aus firmenpolitischen Gründen vorwiegend künstlich herbeigeführt |
Bei der Einführung neuer Intel-Prozessoren wurde von Intel immer darauf geachtet, dass die Prozessoren ihre Arbeit in einem Modus verrichten, der sich kompatibel zu einem 8088-/8086-Prozessor verhält. Dieser Modus wird Realmode genannt und ist auch noch bei aktuellen Pentium-4 Prozessoren enthalten.
Im Realmode kann maximal 1 MB des Arbeitsspeichers verwendet werden. Durch die Aufteilung des Arbeitsspeichers in Speicher für das Betriebssystem und Speicher für Hardwarekomponenten sowie das BIOS steht MS-DOS und den unter MS-DOS laufenden Applikationen ein maximaler Hauptspeicher von 640 kB zur Verfügung. Diese Beschränkung des Arbeitsspeichers wurde im Laufe der Zeit immer mehr zu einer problematischen Hürde, die mittels eines aufwendigen Speichermanagements, beginnend mit der Version 4, teilweise aufgehoben wurde.
Auch die Verwaltung von immer größer werdenden Festplatten führte MS-DOS immer wieder an die Grenze seiner Leistungsfähigkeit. Die maximal unterstützte Kapazität von Festplattenpartitionen musste bei jeder neuen Version des Betriebssystems erhöht werden. Problematisch war auch das für Disketten entwickelte FAT-Dateisystem (FAT12). Dieses war für Disketten mit einer anfänglichen Kapazität von 360 kB entwickelt worden und war für die Verwaltung von Festplatten ungeeignet. Später wurde immer wieder die maximale Kapazität der Datenträger erhöht (FAT16) und unter Windows 95 (MS-DOS 7) lange Dateinamen unterstützt. Mit Windows 95B (MS-DOS 7.10) kam die Einführung des neuen Dateisystems FAT32, das auch Partitonsgrößen mit mehr als 2 GB adressieren kann. Durch damalige, öfters fehlerhafte Programmierung des BIOS war es dabei jedoch auch nicht immer möglich, entsprechende Kapazität über reine Aufrufen von BIOS-Funktionen zu nutzen, so dass bei vielen Systemen nur ca. 512 MB angesprochen werden konnten. Die strukturellen Einschränkungen wurden bis zum Ende der MS-DOS-Ära mit MS-DOS 8.0 (Windows ME) stetig erweitert, aber Grenzen nicht beseitigt. Dies führte dazu, dass MS-DOS und andere DOS zur jeweiligen Höchstgrenzen-Kompatibilität zu große Datenträger ausschließlich in Abschnitten partitioniert verwenden konnten.
Der Kommandozeileninterpreter "command.com" versteht folgende wichtige Befehle (interne Kommandos):
cd {verzeichnis} bzw.chdir {verzeichnis} |
Wechselt in das angeführte Verzeichnis (engl. change directory). |
cd .. |
Wechselt in das nächsthöhere Verzeichnis. |
cd \ |
Wechselt in das Stammverzeichnis des ausgewählten Laufwerks. |
cls |
Leert den Bildschirm (engl. clear screen). |
copy {von} [nach] |
Kopiert Dateien. |
copy con [dateiname] |
Kleiner Dateieneditor, der über die Kommandozeile funktioniert. Erlaubt das Erstellen von kleineren Dateien. Tatsächlich wird die Ausgabe des Gerätes CON (Konsole), also die Eingabe auf der Tastatur, auf die angegebene Datei kopiert. Damit die eingebenen Daten auch wirklich in der angegebene Datei gespeichert wird, ist die Eingabe mit ^Z (STRG-Z) abzuschließen. |
echo [parameter] |
Befehl, der Text ausgibt, z. B. echo Text. Die Option off kommt oft in Batch-Dateien vor und blendet die verwendeten Befehle aus. |
del {datei} bzw.erase {datei} |
Löscht Dateien. |
dir [/p][/w][/s][/a][/o] |
Zeigt Dateien im gegenwärtigen oder einem angegebenen Verzeichnis. Mit /p wird nach Füllen des Bildschirmes eine Pause der Auflistung der Dateien gemacht, bis eine beliebige Taste gedrückt wird. Die Option /w erlaubt eine Auflistung des Verzeichnisinhaltes in Spaltenform ohne Dateigröße und Datum, der Parameter /s listet auch Dateien in Unterverzeichnissen auf. Der Parameter /a zeigt Dateien nach Attributen an, ohne angegebene Attribute werden alle (also auch versteckte und System-)Dateien angezeigt; /o dagegen sortiert die Dateiliste nach verschiedenen Kriterien. |
exit |
Schließt den aktuellen Befehlsinterpreter (Eingabeaufforderung) und kehrt ins aktuell laufende Programm zurück (funktioniert nur, wenn es sich nicht um den beim Start geladenen Interpreter handelt). In älteren Windows-Versionen entspricht das dem Schließen des Eingabeaufforderungs-Fensters. |
md {name} |
Erstellt ein Verzeichnis. |
path [[=]wert] |
Gibt den Wert der Umgebungsvariablen PATH aus beziehungsweise weist ihn neu zu. Die PATH-Variable enthält eine Liste von Unterverzeichnissen, in denen nach Programmen gesucht wird, wenn diesen kein Pfad explizit vorangestellt wurde. Z. B. erlaubt Path=C:\DOS, von jedem Verzeichnis aus Programme im Verzeichnis C:\DOS zu benutzen. |
prompt [[=]parameter] |
Befehl, um die Anzeige der Kommandozeile zu verändern. Bei frühen DOS-Versionen musste die Anzeige nach jedem Start des Computers mit prompt $p$g konfiguriert werden, um die ständige Anzeige des aktuellen Unterverzeichnisses einzuschalten. |
rd {name} |
Löscht ein leeres Verzeichnis |
ren {name} |
Umbenennung einer Datei. |
set [variable=wert] |
Gibt die Umgebungsvariablen aus oder weist der angegebenen einen neuen Wert zu. |
type {dateiname} |
Gibt den Inhalt einer Datei aus. Verkettet man den Befehl mit dem Programm more (dass seine Eingabe seitenweise ausgibt), d. h. gibt die Befehlsfolge type <Dateiname> | more ein, pausiert die Anzeige, wenn der Bildschirm voll ist. |
ver |
Ausgabe der verwendeten DOS-Version. |
Wird kein internes Kommando eingegeben, so durchsucht der Interpreter das aktuelle Verzeichnis und danach die in der Umgebungsvariablen PATH angegebenen Verzeichnisse nach einem Programm und führt es aus. Verhält sich dieses Programm wie ein Kommando, das heißt, macht es Ausgaben auf dem Bildschirm und beendet es sich anschließend, so bezeichnet man es auch als externes Kommando. Zu diesen externen Kommandos gehören zum Beispiel:
attrib |
Setzt oder entfernt Dateiattribute (Schreibgeschützt, Versteckt, System und Archiv). Ab MS-DOS 1.0 vorhanden und ab MS-DOS 3.3 können alle Dateien in einem Verzeichnis und dessen Unterverzeichnissen auf einmal verarbeitet werden, was das systematische Erstellen von Backups wesentlich erleichtert. Es ist das einzige mit Windows mitgelieferte Programm, das das Systemattribut ändern kann. |
chkdsk |
Prüft ein Laufwerk und zeigt eine Übersicht über dessen Belegung an. |
date |
Ausgabe und Korrektur des Systemdatums. |
deltree {verzeichnis} |
Löscht ein Verzeichnis und dessen kompletten Inhalt. |
diskcopy {Quelle} [Ziel] |
Kopiert eine ganze Diskette Sektor für Sektor. |
doskey |
Hilfsprogramm, das alle während der Sitzung eingegebenen Befehle speichert. Die früheren Befehle können mit den Cursortasten angesehen, editiert und nochmals verwendet werden (sehr praktisch vor allem bei langen Befehlen). |
edit [dateiname] |
Editieren von Textdateien (ab MS-DOS 5 enthalten). |
fc |
Dateivergleich (engl. file compare). Zeigt Unterschiede zwischen Dateien an. |
find |
Durchsucht Texte (z. B. Textdateien oder Eingaben) nach einer Zeichenfolge. |
fdisk |
Zur Partitionierung von Festplatten. Mit dem undokumentierten Schalter /mbr kann auch der Master Boot Record neu geschrieben werden. |
format {laufwerksbuchstabe} |
Formatiert ein Laufwerk. Mit dem undokumentierten Parameter /z:[n] ist auch die Größe der Zuordnungseinheiten (Cluster) festlegbar, wobei n für die Anzahl der Sektoren pro Cluster steht, also Clustergröße=512*n |
help |
Zeigt die Hilfe mit weiteren Befehlen an. Ab MS-DOS 6 ein hypertext-orientiertes System, vorher eine Auflistung der Befehle. |
keyb [parameter] |
Erlaubt die Umstellung des Tastaturlayouts. Mit dem Parameter gr kann man beispielsweise auf die deutsche Tastatur umstellen. |
more [dateiname] |
Gibt den Inhalt der angegebenen Datei oder der Standardeingabe seitenweise aus. Bsp.: type readme.txt | more |
move {von} [nach] |
Verschiebt Dateien (ab MS-DOS 6). |
mem |
Zeigt die Größe des belegten und noch freien Arbeitsspeichers im System an. |
print [dateiname] |
Drucken einer Datei. |
sort |
Gibt die Eingabe sortiert aus. |
time |
Ausgabe und Korrektur der Systemzeit. |
tree [Verzeichnis] |
Zeigt die Verzeichnisstruktur ab Verzeichnis an. Wenn man kein Verzeichnis angibt, wird ab dem aktuellen angezeigt. |
sys {laufwerksbuchstabe} |
Installiert die DOS-Startdateien und den Befehlsinterpreter auf dem angegebenen Laufwerk. (Macht das Laufwerk startfähig.) |
undelete |
Möglichkeit, eventuell gelöschte Dateien wiederherzustellen (etwa ab MS-DOS 6 und nur auf den veralteten FAT12- oder FAT16-Dateisystemen). |
xcopy {von} [nach] |
Weiterentwicklung des copy-Befehls mit mehr Optionen. (Die nochmalige Erweiterung xcopy32 kopiert ab MS-DOS 7 auch versteckte und Systemdateien, allerdings nur während Windows läuft.) |
Die Funktionsweise vieler Kommandos kann mit Parametern (auch Schaltern genannt) beeinflusst werden, die meist mit dem Schrägstrich („slash“) eingeleitet werden. Die Aufrufsyntax der meisten (und aller hier genannten) Befehle wird ausgegeben, wenn als Parameter /? übergeben wird.
Das Betriebssystem OS/2, das von IBM und Microsoft als Nachfolger von DOS konzipiert war, enthält ein integriertes DOS, das der MS-DOS Version 5 entspricht. Anwendungen erhalten dabei mehr freien Speicher zugeteilt, als es unter selbständigem DOS möglich wäre, weil das Wirtssystem OS/2 wesentliche Betriebssystemfunktionen übernimmt. Weiterhin können Anwendungen von der Multitaskingfähigkeit und erhöhten Stabilität von OS/2 profitieren. Anwendungen, die für direkte Hardware-Zugriffe programmiert sind, können jedoch unter echten Multitaskingsystemen wie OS/2, WindowsNT oder Linux systembedingt nicht oder nur sehr eingeschränkt laufen. Dies trifft vor allem auf viele DOS-basierende Spiele zu.
Unter Linux gibt es das Programm DOSEMU, welches DOS-Anwendungen als Task unter Linux ausführen kann.
Mit DOSBox ist es möglich, die CPU eines 286/386-basierten PCs im Real Mode wie auch im Protected Mode unter anderem unter Windows, BeOS, Linux, Mac OS X, MorphOS, eComStation (OS/2) und auf dem Sega Dreamcast zu emulieren.
Erhältliche grafische Benutzeroberflächen für MS-DOS sind unter anderem Microsoft Windows, PC/GEOS, SEAL, GEM oder easyWindow.
Zu MS-DOS kompatible DOS-Versionen:
Brockhaus-1911: Dos-à-dos · Dös
Herder-1854: Dos d'âne · Dos à dos · Dos
Meyers-1905: Dos-à-dos · Parēcis, Serra dos · Dos · Dos d'âne
Pierer-1857: Purga dos Paulistas · Larvatus dos · Figueĭro dos Vinhos · Dos Amīgos · Salvador dos Campos · Rio de Dos Bocas · Dos d'ane · Dos à dos · Alagōas, dos · Dos [2] · Dos [1] · Dos Qartos