Aufgabe 5.2
Fehler
Das Betriebssystem eines Prozessrechners verfügt über einen Kommandointerpreter. Systemkommandos und Programmaufrufe beginnen immer mit einem Semikolon, gefolgt von dem Programm- oder Kommandonamen, gefolgt von eventuellen Parametern. So ruft das Kommando
;TF
das Transferprogramm auf, mit dem eine Platte kopiert werden kann. Das Transferprogramm führt einen eigenen Dialog mit dem Benutzer, in welchem es eigene Kommandos entgegennimmt. Beispielsweise wird das Kommando
CD
zum Kopieren einer Platte (Copy Disk) benutzt. Nach diesem Kommando fordert das Programm zur Angabe der Quelle, des Ziels und zur Bestätigung auf:
;TF
TF: CD
FROM: FIX
TO: D0
COPY DISK FROM FIX TO D0 (Y/N)? Y
Nach diesem Dialog wird die Festplatte (FIX) auf die Wechselplatte (D0) gesichert.
Das Betriebssystem bietet verschiedene Kommandos an, darunter auch ein Kommando
;CD
zum Löschen des aktuellen Verzeichnisses. Dieses Kommando hat eine Sicherheitsabfrage zur Folge:
;CD
CLEAR DIRECTORY (Y/N)? Y
Nach diesem Dialog in der Root-Ebene ist die gesamte Festplatte gelöscht.
- Welche Fehler können durch diese Kommando- und Dialogstruktur leicht auftreten? Beschreiben Sie den wahrscheinlichen Fehlerablauf.
- Wie ließen sich diese Fehler vermeiden?
Lösung
Bei dieser Konfiguration besteht die Gefahr, dass ein Unterlassensfehler dazu führt, dass statt
;TF
und anschließend
CD
direkt
;CD
eingegeben wird.
Ein solches Vorauseilen ist besonders wahrscheinlich, wenn das Backup die letzte Arbeitshandlung am Freitagnachmittag ist, um die Arbeit der Woche zu sichern. Zwar erfolgt vor dem Löschen noch eine Sicherheitsabfrage. Da aber auch beim korrekten Backup-Ablauf eine solche Abfrage erfolgt, ist hier die Gefahr eines Gewohnheitsfehlers groß, so dass die Abfrage routinemäßig bejaht wird. Damit ist die Festplatte gelöscht und mit ihr die Arbeit der letzten Woche.
Das dümmste, was man jetzt tun kann, ist zu versuchen, wenigstens den Stand der vorigen Woche wiederherzustellen. Denn in dieser angespannten Situation ist ein weiterer Gewohnheitsfehler wahrscheinlich: Das intakte Backup der letzten Woche wird eingelegt und dann korrekt das Transferprogramm aufgerufen. Statt des nun erforderlichen
FROM: D0
TO: FIX
für die Wiederherstellung wird aber aus Gewohnheit der übliche Ablauf
FROM: FIX
TO: D0
für die Sicherung eingegeben, so dass nun auch die Sicherungskopie der letzten Woche mit der leeren Festplatte überschrieben ist. Im konkreten Fall ist unmittelbar anschließend eine Schreibtischtür eingetreten worden.
Der die Katastrophe einleitende Fehler lässt sich vermeiden, indem die Kommandos so gestaltet werden, dass sich nicht durch Verkürzen einer Kommandofolge ein anderes legales Kommando erzeugen lässt. Der zweite Gewohnheitsfehler kann dadurch vermieden werden, dass es getrennte Kommandos für das Sichern und für das Wiederherstellen der Festplatte gibt statt lediglich vertauschter Parameter innerhalb eines allgemeinen Transferkommandos.
Die Verstärkung der Schreibtischtüren ist hingegen nicht zu empfehlen, weil dadurch eher schlimmere Folgen wie Knochenbrüche hervorgerufen werden.