Das Terminal ist die Schnittstelle, über die man geheimnisvolle Linux-Kommandos eingibt, aber ist das Terminal nur ein Fenster mit Eingabeaufforderung auf dem Linux-Desktop?

Fakt ist, dass das Terminal, das man heute nutzt, wahrscheinlich kein echtes Terminal ist. In diesem Beitrag werde ich die wahre Bedeutung eines Linux Terminals und einer Konsole erläutern. Dieses Grundkonzept zu verstehen ist wichtig, wenn man Linux beherrschen möchte.

Das Terminal ist eine Verbindung zwischen Mensch und Computer

Als Substantiv hat „Terminal“ viele Bedeutungen. Das Merriam-Webster-Wörterbuch gibt uns da eine gute Definition von Terminal im Bereich der Informatik:

info_outline

Definition des Terminals

Eine Kombination aus einer Tastatur und einem Ausgabegerät (z. B. einer Videoanzeigeeinheit), mit der Daten in einen Computer oder ein elektronisches Kommunikationssystem eingegeben oder von diesem ausgegeben werden können.

Quelle: https://www.merriam-webster.com/dictionary/terminal

Der Mensch und der Computer sind zwei unabhängige Einheiten. Der Mensch braucht eine Schnittstelle, um Informationen in einen Computer einzugeben und die Ergebnisse aus dem Computer zu lesen. Heutzutage umfasst das Eingabegerät von Personalcomputern: die Tastatur, die Maus und das Mikrofon.

Das Ausgabegerät beinhaltet Monitor und Lautsprecher. Man nennt sie üblicherweise Peripheriegeräte. Aber in der Unix- und Linux-Welt werden Ein- und Ausgabegeräte als Terminal bezeichnet. Das Gegenteil von Terminal ist der Host, der Geräte wie CPU, RAM, HDD und so weiter umfasst.

Jetzt haben wir also zwei Gleichungen.

Computer = Host + Terminal
Terminal = Input device + Output device

Das erste Terminal

Ende der siebziger Jahre kamen die Personalcomputer in den alltäglichen Lebensbereich. Bis dahin konnten wir nur teure Großrechner und Minicomputer in großen Unternehmen oder Universitäten einsetzen. Der Minicomputer PDP-7 von Ken Thompson und Dennis Ritchie (die beiden Schöpfer von Unix) war damals 72.000 US-Dollar teuer, der Großrechner GE-45 kostete sogar 10 Millionen US-Dollar.

Ken Thompson und Dennis Ritchie wollten Unix zu einem Mehrbenutzer-Betriebssystem machen, d.h. jeder Benutzer sollte ein Terminal haben, um sich mit dem Computer zu vernetzen. Jeder Benutzer benötigt einen Monitor und eine Tastatur. Allerdings waren damals alle Computergeräte, einschließlich des Monitors, sehr teuer. Und Tastaturen waren physisch an Computer angeschlossen. Es gab damals keine abnehmbaren Tastaturen.

Also fand man eine alternative Lösung:

Man nutzte die billige Fernschreibmaschine 33 ASR als Endgerät. Teletype (TTY) wurde eigentlich hauptsächlich zum Senden und Empfangen von getippten Nachrichten in der Telegrafie verwendet, aber man konnte es verwenden, um Informationen in den Computer einzugeben und Informationen aus ihm herauszuholen.

Mit der Tastatur wurden die Informationen eingegeben und auf dem Papier ausgedruckt.

Teletype Model 33 ASR mit Lochstreifenstanzer und -leser

Viele Fernschreiber waren an einen Unix-Rechner angeschlossen. Jeder Benutzer konnte sich mit seinem eigenen Benutzernamen und Passwort vor seinem eigenen Fernschreiber an Unix anmelden. So wurde Unix das erste Mehrbenutzer-Betriebssystem und 33 ASR das erste Unix-Terminal. Aufgrund dieser Tatsache wird das Akronym TTY häufig verwendet, um ein Terminal unter Unix/Linux darzustellen.

Im Laufe der Jahre wurden die Terminals immer fortschrittlicher. Im Jahre 1970 führte die Firma DEC (Dgital Equipment Corporation) das Video-Terminal VT05 ein. Es verfügte über einen Monitor mit einem Videobildschirm für die Ausgabe.

Das ursprüngliche serielle DEC-Terminal, das VT05.

Zeichenterminal vs. Grafikterminal

Das Zeichenterminal ist auch als Textterminal bekannt, das nur textbasierte Informationen ausgeben kann. Teletypen sind Zeichenterminals. Das bekannteste Zeichenterminal ist das VT100 von DEC aus dem Jahr 1978. Es ist so gut konstruiert, dass es zu einem Standard für spätere Terminals wurde.

Das Grafikterminal ist besser, weil es auch Grafiken/Bilder auf dem Bildschirm anzeigen kann. Das bekannteste Grafikterminal ist das X-Terminal, das die grundlegende Unterstützung des X-Window-Systems bereitgestellt hat.

Linux Terminal Emulators

Jetzt wissen wir, dass das Terminal eine Hardware ist. In den 1970er und 1980er Jahren tippten die Menschen vor einem echten Terminal Befehle ein. Heutzutage tippen wir oft Befehle in ein Software-Terminal, das besser bekannt ist als Terminal-Emulator oder Terminal-Emulationsanwendung. Manchmal nennt man sie virtuelles Terminal. Es sind keine echten Terminals, aber das Betriebssystem denkt, dass sie es wären.

Wenn du Gnome-Terminal benutzt, kannst du den folgenden Befehl ausführen, um das Handbuch von Gnome-Terminal einzusehen.

man gnome-terminal

Die Ausgabe informiert uns dann darüber, dass das Gnome-Terminal eine Terminal-Emulationsanwendung ist und Xterm emuliert.

Xterm ist auch ein Terminal-Emulator. Er emuliert die Terminalstelle VT102 der Firma DEC. Noch heute kannst du Xterm in deiner Linux-Distribution finden.

Was ist eine Konsole?

In den 1970er und 1980er Jahren waren Terminals oft per Kabel mit dem Host verbunden, aber es gibt ein spezielles Terminal, das an den Host angeschlossen ist. Dieses spezielle Terminal wird Konsole genannt. Es wird nur von Administratoren verwendet. Jeder Computer hat nur eine Konsole. Es gibt keinen großen Unterschied im Aussehen zwischen dem Standardterminal und der Konsole, aber die Konsole kann etwas tun, was Standardterminals nicht tun können. Zum Beispiel, wenn das Betriebssystem nicht starten kann, wird eine Fehlermeldung auf der Konsole angezeigt, aber nicht auf anderen Terminals. Und wenn das Betriebssystem in den Einzelbenutzermodus startet, kann man sich nur über die Konsole anmelden. Andere Terminals haben keine Berechtigung, sich im Einzelplatzmodus anzumelden.

Ein modifizierter PDP-7-Rechner, der im norwegischen Oslo restauriert wird

Konsole und Terminal werden auf Personalcomputern oft als Synonyme gesehen. Der Monitor und die Tastatur sind die Konsole und auch gleichzeitig das Terminal. Man kann jederzeit zwischen einem Standardbenutzer und einem Administrator wechseln.

Virtuelle Konsole

Tatsächlich gibt es zwei Arten von Terminal-Emulatoren. Der erste Typ ist das Terminalfenster, das man in einer Desktop-Umgebung öffnet. Der andere Typ ist die virtuelle Konsole. In den 1970ern und 1980ern konnten Menschen oft nur ein Terminal benutzen. Wichtige Personen in einer Firma oder Universität hingegen konnten mehrere Terminals verwenden, da sie viele Dinge mit dem Betriebssystem erledigen mussten. Es gab also mehrere Terminals auf ihren Arbeitsplätzen.

Heutzutage müssen wir nicht mehr mehrere Terminals auf den Schreibtisch stellen, da Linux mehrere virtuelle Terminals erstellen kann. Eines davon ist ein Grafikterminal, die anderen sechs sind Zeichenterminals. Die 7 virtuellen Terminals sind eher als virtuelle Konsolen bekannt und verwenden dieselbe Tastatur und denselben Monitor. Die physische Konsole ist die Kombination von Monitor und Tastatur. Wenn Linux hochfährt, werden die 7 virtuellen Konsolen erstellt und standardmäßig zur Grafikkonsole, d.h. der Desktopumgebung, gebracht.

Wann ist eine virtuelle Konsole sinnvoll?

Wenn aus irgendeinem Grund die Desktopumgebung nicht reagiert oder die Symbole/Taskleiste auf dem Desktop plötzlich verschwindet, kann man auf eine virtuelle Konsole für Zeichen umschalten und Befehle eingeben, um das Problem zu analysieren.

Was ist eine Shell?

Das Terminal ist nur ein Mechanismus zur Übertragung von Informationen. Damit das Betriebssystem die Informationen verstehen kann, wird eine Shell benötigt. Eine Shell unter Linux ist ein Programm, das die Befehle, die man in ein Terminalfenster eingibt, interpretiert, so dass das Betriebssystem versteht, was man tun möchte.

Es gibt viele Shell-Programme, wie Bash, Zsh, Csh, Ksh etc. Bash ist die Standard-Shell auf den meisten Linux-Distributionen. Wenn man ein Terminalfenster öffnet, wird automatisch eine Bash-Shell gestartet. Um zu überprüfen, welche Shell man aktuell verwendet, führt man folgenden Befehl aus.


Ich hoffe, dieser Beitrag hat euch geholfen, Linux-Terminals, Konsolen und Shells besser zu verstehen.

Bildquelle: Pixabay