www.wikidata.de-de.nina.az
Ein Pseudoterminal ist ein Dienst in einer Unix Umgebung der meist vom Kernel bereitgestellt wird Das Pseudoterminal ist eine Art der Interprozesskommunikation eine bidirektionale Pipe die den Datenfluss interpretiert und auf konfigurierbare Ereignisse speziell reagiert Diese zusatzlichen Funktionen des Pseudoterminals sind dieselben die innerhalb des Kernels mit einem normalen z B seriellen Terminal assoziiert werden Pseudoterminals werden dann verwendet wenn eine terminalorientierte Anwendung bekannte Beispiele sind vim top oder less nicht an einem normalen Terminal sondern beispielsweise mittels einer Anwendung wie telnet oder ssh uber ein Netzwerk betrieben werden soll Wurde man die Standardausgabe dieser Prozesse direkt nutzen so wurde dies wenig Sinn ergeben da ein Terminal die Eingaben immer interpretiert d h fur bestimmte Sonderzeichen bestimmte Aktionen durchfuhrt Inhaltsverzeichnis 1 Funktionsweise 2 Programme die Pseudoterminals benutzen 3 Implementierungen 3 1 BSD 3 2 UNIX 98 SUSv2 Funktionsweise Bearbeiten nbsp Wie script 1 Pseudoterminals unter Unix nutztEin normales Terminal ermoglicht die textorientierte Ein Ausgabe Dabei ist eine Seite immer mit einem Prozess verbunden das heisst der Prozess hat eine Geratedatei des Terminals geoffnet dev ttyS0 dev tty1 Die andere Seite des Terminals wird z B mit einer seriellen Schnittstelle verbunden dev ttyS i n i oder mit einer virtuellen Systemkonsole Monitor und Tastatur dev tty i n i n 0 1 2 Beim Pseudoterminal ist die andere Seite nicht mit einem Gerat d h einer Schnittstelle des Rechners sondern mit einem anderen Prozess verbunden Ein Pseudoterminal hat eine Master und eine Slave Seite Die Slave Seite ist das Aquivalent zu einem normalen Terminal Gerat das von einer Anwendung genutzt wird die Master Seite ist im Kernel direkt mit der Slave Seite verbunden Der Master ist also das was bei einem normalen Terminal die serielle Schnittstelle ist nur dass dies mit einem anderen Prozess geschieht statt mit einem Gerat Deswegen ist ein Pseudoterminal auch eine Form der Interprozesskommunikation Im Unterschied zu einer Pipe oder einem Unix Domain Socket werden die Daten aber wahrend des Transits von Master zu Slave oder andersherum interpretiert Falls bestimmte Escape Sequenzen ubertragen werden sollen werden sie nicht direkt an den mit dem Slave verbundenen Prozess weitergereicht sondern losen eine bestimmte Aktion aus Zum Beispiel wird dem Prozess der die Slave Seite geoffnet hat ein SIGINT Signal geschickt wenn in den Master 0x03 geschrieben wird Strg C Wird Strg Z 0x1A in den Master geschrieben dann bekommt der Prozess der den Slave geoffnet hat genauer der den Slave zu seinem controlling tty gemacht hat ein SIGTSTP Signal das ihn im Regelfalle anhalt Diese Funktionen hat auch der Geratetreiber fur ein normales Terminal die Interprozessverbindung wird um diese Funktionen bei einem Pseudoterminal erganzt Wenn es heisst ein Prozess schreibt in den Master dann ist das vergleichbar mit ein Terminalgerat ubertragt Daten uber die serielle Schnittstelle zum Computer zum Beispiel weil der Nutzer etwas auf der Tastatur eingegeben hat Die Zusatzfunktion eines Pseudoterminals gegenuber einer Pipe ist also marginal eine Shell wird aber wichtige Funktionen Job Control Flow Control zeichenorientierte Eingabe mit einer Pipe nicht zur Verfugung stellen konnen Haufig werden Pseudoterminals fur netzwerktransparente Terminalverbindungen benutzt telnet ssh und fur GUI basierte Terminalemulationen xterm Programme die Pseudoterminals benutzen Bearbeitenscreen ein Fenstermanager fur den Textmodus xterm eine Terminalemulation fur X11 sshd Sicherer TerminalserverImplementierungen BearbeitenEs gibt zwei grundlegende Implementierungen von Pseudoterminals Die BSD Implementierung und die UNIX 98 Implementierung SUSv2 Nach dem Offnen verhalten sich beide Implementierungen exakt gleich Neue Unix Betriebssysteme aktuelle Linux Versionen FreeBSD stellen zumeist beide Implementierungen bereit BSD Bearbeiten Bei der BSD Implementierung gibt es in dev schon vorbereitete Pseudoterminals Die Master Terminals sind nach dem Schema dev ptypn n 1 2 3 benannt die Slave Terminals heissen dev ttypn UNIX 98 SUSv2 Bearbeiten Es gibt eine Master Datei dev ptmx pseudo terminal multiplexer die man beliebig oft offnen kann Beim Offnen wird ein Filedeskriptor fur ein Master Terminal zuruckgegeben Jedes Mal wird dabei ein neues Slave Terminal alloziert Die Slaves heissen dann z B dev pts 1 dev pts 23 Abgerufen von https de wikipedia org w index php title Pseudoterminal amp oldid 216838805