# DOS Shell

Die DOS Shell bzw. eingedeutscht auch durchgekoppelt DOS-Shell bzw. MS-DOS-Shell, vom Dateinamen DOSSHELL.COM bzw. DOSSHELL.EXE abgeleitet auch oft in der Schreibweise DOSShell ohne Abstand, ist ein Dateimanager, der mit MS-DOS und PC DOS 4.0 im Juni 1988 erstmals verfügbar war. Das Programm wurde von Microsoft nach MS-DOS Version 6.0 nicht mehr weiterentwickelt, auf der „Supplemental Disk“ von MS-DOS wurde es jedoch bis zur letzten Version 6.22 mit ausgeliefert. Von IBM wurde es bis DOS 2000, intern Version 7.0 Revision 1 und offiziell die letzte PC-DOS-Version, beibehalten.
Der Name leitet sich von MS-DOS, dem DOS für PCs, und der Shell eines Betriebssystems, ab.

## Features

Gestartet werden kann die DOS-Shell durch den Kommandozeilenbefehl dosshell. Wie auch mit anderen Dateimanagern kann man damit Dateien kopieren, verschieben und umbenennen sowie Anwendungen mit einem Doppelklick starten. Es ist möglich, einfache Farben und Styles zu nutzen. Die DOS-Shell war einer der ersten erfolgreichen Versuche zur Schaffung eines GUI-Dateimanagers in DOS, da grafische Modi auf Computern mit VGA verfügbar waren. Sie ist aber eher noch eine Zeichenorientierte Benutzerschnittstelle bzw. eine COW-Schnittstelle (von englisch Character Oriented Windows). Die DOS-Shell entspricht vom Aussehen einer DOS-Version des Dateimanagers von Windows 3.
Die DOS-Shell verfügt über eine Hilfe-Funktion und eine Programm-Liste und bietet Taskswitching und TSR-Unterstützung. Sie ist in der Lage, je zwei Verzeichnis-Hierarchien und Dateilisten anzuzeigen. Eine Maus wird unterstützt, was allerdings DOS-üblich einen passenden Treiber voraussetzt.
Eine herausragende Fähigkeit ist, dass alle Dateien auf einer Festplatte in einer einzelnen alphabetisch sortierten Liste angezeigt werden können, zusammen mit dem Pfad und den anderen Attributen. Das erlaubt dem Benutzer, Versionen einer Datei in verschiedenen Verzeichnissen mit ihren Attributen zu vergleichen und damit leichter Redundanzen zu entdecken.

## Probleme

Es gibt mehrere Gründe, warum die DOS-Shell nicht mehr genutzt wurde:
* Multitasking wird nicht unterstützt, allerdings kann per Taskswitching zwischen laufenden Programmen gewechselt werden. Der Programmcode und die Daten des vorherigen Programms werden dazu in eine versteckte temporäre Datei im DOS-Verzeichnis gesichert und anschließend aus dem Speicher entfernt, dann das nächste Programm, wenn es bereits gestartet war, aus einer bestehenden versteckten temporären Datei geladen oder ansonsten regulär gestartet. Abgesehen vom für das Taskswitching genutzten TSR-Bestandteil wird die DOS-Shell selbst, wenn ein anderer Task aktiv wird, ebenfalls in einer versteckten temporären Datei abgelegt.
** Jeder Kontextwechsel benötigt Zeit, da das laufende Programm zuerst auf die Festplatte in eine Datei zurück-gesichert werden und das Folgeprogramm aus einer weiteren Datei in den Speicher zurück geladen werden muss. Der Vorgang konnte auf der damaligen Hardware z. B. durch die Verwendung einer RAM-Disk beschleunigt werden, indem eine %TEMP%-Variable in der AUTOEXEC.BAT angelegt wurde und auf ein TEMP-Verzeichnis mit dem Laufwerksbuchstaben der RAM-Disk zeigte.
** Der TSR-Programmteil der DOS-Shell belegt zusätzlichen Arbeitsspeicher im konventionellen Speicher und, wenn HIMEM.SYS geladen ist, im UMB, der den jeweils aus der DOS-Shell heraus gestarteten Anwendungen nicht mehr zur Verfügung steht.
** Die Fähigkeiten des 80386-Prozessors und dessen Virtual-8086-Modus (VM86), sowie der Extended Memory (XMS) werden hierfür nicht genutzt.
** Ab mehr als drei größeren Programmen neigt die DOS-Shell dazu instabil zu werden, außerdem kann ein fehlerhaft laufendes Programm alle anderen mit in den Abgrund reißen, wenn es die Systemressourcen nicht mehr an das TSR-Programm freigibt. Hier half nur noch ein Neustart des Computers, was dazu führte, dass nicht gespeicherte Daten verloren gingen. Die Möglichkeit eine alte Sitzung der als temporäre versteckte Dateien abgelegten Prozesse erneut zu laden besteht nicht.
* Windows 3.x mit seiner eigenen grafischen Benutzeroberfläche wurde viel populärer unter den Computernutzern. Windows war multitaskingfähig und verwendete im erweiterten Modus die Fähigkeiten des i386-Prozessors und dessen VM86-Modus, was es erlaubte, jedes Real-Mode-DOS-Programm in einer eigenen Umgebung auszuführen. Dadurch standen DOS-Anwendungen mehr Arbeitsspeicher zur Verfügung, da jeder Umgebung (jedem VM86-Task) ein eigener Speicherbereich aus dem Extended Memory (XMS) zur Verfügung steht. Auch können fehlerhafte DOS-Programme, die innerhalb einer VM86-Umgebung laufen, nicht mehr das ganze System zum Absturz bringen, da die jeweils für ein DOS-Programm zuständige VM86-Umgebung in diesem Fall einfach beendet wird, sodass der Benutzer mit Windows und den anderen laufenden Anwendungen weiterarbeiten kann. Windows 3.x selbst läuft sowohl im Standard- als auch im erweiterten Modus im Protected Mode, womit Windows und Windows-Anwendungen auch wesentlich mehr Arbeitsspeicher zur Verfügung stehen als den Real-Mode-Anwendungen unter DOS. Außerdem vergünstigte das Entwickeln von Programmen für Windows anstatt für DOS bei den Softwareherstellern die Supportkosten, da Windows die Hardware wesentlich umfangreicher abstrahierte als DOS und der Speicher von Windows verwaltet wurde, was die Programmierung vereinfachte.