Ich verwende die Linux-Konsole schon seit Jahren, habe aber gerade angefangen, darüber nachzudenken, wie sie eigentlich funktioniert. Wenn Sie „a“ command
als Zeichenfolge eingeben und drücken, Enter
wird die Ausgabe im selben Terminalfenster zurückgegeben.
Das Öffnen eines neuen Terminalfensters und die Ausführung tty
zeigen das folgende Ergebnis:
$ tty
/dev/pts/10
Manpage zu ptydefiniert Folgendes:
Ein Prozess, der mit einem Terminal verbunden werden soll, kann das Slave-Ende eines Pseudoterminals öffnen und dann von einem Programm gesteuert werden, das das Master-Ende geöffnet hat. Alles, was auf dem Master-Ende geschrieben wird, wird dem Prozess auf dem Slave-Ende bereitgestellt, als wäre es eine Eingabe auf einem Terminal.[...]Umgekehrt kann alles, was auf das Slave-Ende des Pseudoterminals geschrieben wird, von dem Prozess gelesen werden, der mit dem Master-Ende verbunden ist.
Mein Verständnis:
Das eigentliche Terminalfenster ist mit einem Slave verbunden /dev/pts/10
und alle Eingaben, die ich in das Terminalfenster eingebe, werden auf der Slave-Seite geschrieben und dann auf der Master-Seite gelesen. Ein mit der Master-Seite verbundener Prozess weiß, was mit allen vom Benutzer eingegebenen Zeichenfolgen zu tun ist, führt sie aus und schreibt Befehlsergebnisse auf der Master-Seite, die dann auf der Slave-Seite gelesen und im Terminalfenster angezeigt werden.
Die Frage:
Welcher mit dem Masterende verbundene Prozess weiß, wie Befehle ausgeführt werden, die Benutzer als Zeichenfolgen eingeben?