Display and Keyboard (DSKY)

Die Interaktion mit einem Computer erfolgte zur Zeit der Entwicklung des AGC noch größtenteils über Lochkarten, die dem Computer in Stapeln („Batches”) zugeführt wurden. Die direkte Kommunikation mit einem Computer steckte noch in den Kinderschuhen; 1961 entwickelte Fernando J. Corbató das Time-Sharing-Verfahren. Dabei wird die Prozessorkapazität auf mehrere Benutzer aufgeteilt, so dass freie Kapazitäten besser genutzt werden können. Corbatós erstes Time-Sharing-System, das Compatible Time-Sharing System (CTSS), entwickelte er 1963 weiter zu Multics, was zum Vorläufer von Unix wurde. CTSS ermöglichte eine direkte Interaktion zwischen Benutzer und Computer, allerdings handelte es sich bei diesen Computern um Mainframes, so nutzte Corbató z.B. den IBM-7094 für sein System.

Bei einem derart kleinen Computer, wie er im Apollo-Raumschiff eingesetzt wurde, war ein System wie Multics oder CTSS nicht einsetzbar, hier mussten andere Lösungen her. Doch wie gestaltet man die Interaktion mit einem Computer möglichst einfach und effizient? Fragen wir uns dazu, wie ein Computer heute, im 21. Jahrhundert, benutzt wird. Sehen wir uns einige Beispiele an:

        jim@Neptun:~$ cd ~jim/Dokumente/

Dieser Unix-Befehl setzt das aktuelle Verzeichnis auf das Unterverzeichnis „Dokumente” des Home-Verzeichnis des Benutzers „jim”. Hierbei wird zunächst eine Aktion angegeben (cd für change directory) und dann ein Objekt (das Verzeichnis  jim/Dokumente). Diese Abfolge findet sich auch bei menügesteuerten Anwendungen wieder, wenn auch ggf. durch Menüabfolgen zusätzlich strukturiert. In einem LaTeX-Editor z.B. kann man mit den Menübefehlen „Datei” „Speichern als” die auszuführende Aktion wählen und dann das Objekt, nämlich den Dateinamen. Auch bei Benutzersteuerungen, die auf klassische Auswahlmenüs weitgehend verzichten, wie z.B. die Art der Steuerung in den MS-Office-Programmen ab der Version 2007, bei denen es anstelle der klassischen Menüs die sogenannten Menübänder gibt, findet sich diese Struktur wieder: Um z.B. eine Grafik in ein MS-Word-Dokument (ab Version 2007) einzufügen, wählt man im Menüband die Registerkarte „Einfügen”, dann klickt man auf „Grafik” und wählt schließlich das Objekt (die Grafik) für die Aktion „Einfügen”.

Die Entwickler des AGC haben eine solche Abfolge von Aktionen und Objekten zur Grundlage für die Interaktion mit dem Computer gemacht und das „Display and Keyboard”, kurz DSKY, als Benutzerschnittstelle entworfen. Das DSKY war die Zentrale Schnittstelle zwischen Nutzer und Computer. Dabei handelt es sich um eine digitale Ein- und Ausgabeeinheit. Die Aufteilung der Eingaben in Aktionen und Objekte wurde hier mittels eines „Verb-Noun”-Schemas umgesetzt. Bei den Verben handelt es sich um die jeweils auszuführende Aktion, die Nouns (also Hauptwörter) benennen die dazugehörigen Objekte.

Beide Eingaben erfolgen in oktaler Form. Die Notation eines Verb-Noun-Befehls erfolgt nach folgendem simplen Schema:
V[Oktalzahl]N[Oktahlzahl]E wobei V für Verb, N für Noun und E für Enter steht. Also zum Beispiel: V16N65E (V16: Kontinuierliche, dezimale Anzeige, N65: Zeit). Auf ein Verb muss nicht zwangsläufig ein Noun folgen; der Befehl zur Wahl eines neuen Programms lautet beispielsweise V37E. Anschließend gibt man die Oktalzahl des neuen Programms ein und bestätigt nochmals mit Enter. Um den Rechner z.B. in den Idle-Mode zu versetzen, wird Programm 00 aufgerufen. Die Befehlsfolge lautet also V37E00E.

Damit bricht der Wechsel eines Programms gewissermaßen aus dem Verb-Noun-Schema aus, da eine Eingabe von V37N00E durchaus auch Sinn machen würde. Durch die Verwendung von V37E wird ein Programmaufruf also gewissermaßen zu einer besonderen Art von Verben.

Das Idle-Programm 00 (von den Astronauten schlicht POO genannt) ist von besonderer Bedeutung, da bestimmte Aktionen, wie z.B. ein Upload von der Bodenstation aus, nur im Idle-Mode erfolgen kann. Nicht nur Programme und Aktionen lassen sich über das DSKY eingeben, auch auf den Speicher kann zugegriffen werden. Mittels V27N02E[Adresse]E lässt sich der Core-Rope auslesen:

Beispiel (Apollo 11 Comand Module Software): Eingabe: V27N02E02000E Ausgabe: 00063.

Die DSKY-Einheit aus Odyssey, Apollo 13 [NAS2017b]

Ob die DSKY-Steuerung aber die Menüsteuerung moderner Systeme beeinflusst hat, lässt sich nicht mit Sicherheit feststellen. Eine Aussage von Prof. Corbató zur Geheimhaltung in der Entwicklung des AGC (in einer E-Mail an den Autor) lässt einen solchen Einfluss eher unwahrscheinlich erscheinen. Allerdings wurde das DSKY-Konzept als solches der Öffentlichkeit recht früh vorgestellt, z.B. 1965 in Computer for Apollo zu finden, einem Bericht aus der Fernsehreihe „MIT Science Reporter” von 1965 [MIT1965a]. Somit könnten andere Entwickler durchaus Anregungen für eigene Entwicklungen in der DSKY-Steuerung gefunden haben.

Ebenfalls denkbar ist natürlich, dass die Entwicklungen der verschiedenen Benutzerschnittstellen in den 1960er-Jahren (wie eben z.B. das DSKY und die Entwicklungen von Douglas Engelbart) zwar unabhängig voneinander verliefen, aber auf gemeinsamen Grundlagen beruhten. Solche Grundlagen könnten z.B. die Arbeiten von Noam Chomsky gebildet haben, wie z.B. sein 1956 erschienener Artikel „Three models for the description of language” [CHO1956].

Die Sichtweise der Nutzer des Systems war bei der Entwicklung natürlich auch sehr wichtig und könnte ebenfalls zum Konzept der Benutzerschnittstelle beigetragen haben. Als Verbindungsmann zwischen den Entwicklern und den Nutzern diente David Scott, der am MIT Instrumentation Lab trainiert wurde. David Scott flog zusammen mit Neil Armstrong die Gemini VIII Mission, bei der das erste erfolgreiche Andockmanöver im All stattfand. Im Apollo-Programm fuhr Scott dann den ersten Lunar Rover auf dem Mond. David Scott lobte auch später noch den AGC und dessen Benutzerinterface.