Was bedeuten pty und tty?

Lesezeit: 7 Minuten

Warum ist Benutzer-Avatar
warum

Ich habe viele Erwähnungen von bemerkt pty und tty Kann mir jemand in einigen Open-Source-Projekten sagen, was sie bedeuten und was der Unterschied zwischen ihnen ist?

  • Vielleicht möchten Sie die Manpage pty(7) lesen (wie in this Verknüpfung), wo pty/ttys werden als vorgefertigte Dateipaare beschrieben, die das Master/Slave-Ende eines Pseudo-Terminals darstellen (siehe die Beschreibung zum BSD-Stil).

    – wangkaibule

    23. September 2020 um 11:31 Uhr


  • @wangkaibule Das sollte eine Antwort sein!

    – Franklin Yu

    24. Dezember 2020 um 21:25 Uhr

  • In der Vergangenheit habe ich einen Artikel über den PTY in der Linux-Welt geschrieben: rkoucha.fr/tech_corner/pty_pdip.html

    – Rachid K.

    24. September um 8:07 Uhr


Benutzeravatar von Charlie Martin
Charly Martin

tty ursprünglich gemeint “Fernschreiber” und "pty" meint “Pseudo-Fernschreiber”.

Unter UNIX, /dev/tty* ist jedes Gerät, das sich wie ein verhält “Fernschreiber”, dh: ein Terminal. (Wird Fernschreiber genannt, weil wir das damals für Terminals hatten.)

EIN pty ist ein pseudotty, ein Geräteeintrag, der wie ein Terminal für den dort lesenden und schreibenden Prozess fungiert, aber von etwas anderem verwaltet wird. Sie erschienen (soweit ich mich erinnere) zuerst für X Window und Screen und dergleichen, wo Sie etwas brauchten, das wie ein Terminal funktionierte, aber von einem anderen Programm aus verwendet werden konnte.

  • Ich denke, ptys wurde hauptsächlich zu Unix hinzugefügt, um Telnet, rsh und rlogin zu unterstützen.

    – Fred Foo

    18. Dezember 2010 um 12:24 Uhr

  • @CharlieMartin Was meinst du damit, dass der PTY etwas ist, “das sich wie ein Terminal verhält?” Warum sollten wir so etwas wollen? Und wie nutzt ein anderes Programm dieses pty? Meine Vermutung ist, dass der pty Befehle oder etwas an das echte Terminal (tty) für das Programm weiterleitet. Ist das richtig? Wenn nicht, ignorieren Sie meine Vermutung und beantworten Sie bitte den ersten Teil meines Kommentars.

    – OK, gib mir Geld

    3. Oktober 2014 um 23:57 Uhr


  • Stellen Sie sich ein Terminal als ein Objekt vor: Es verbindet etwas an einem Ende mit stdin und stdout am anderen Ende. Ein echter TTY verbindet sich mit einem physikalischen Terminal. eine PTY-Verbindung zu einem Programm, z. B. xterm, oder einem Befehlsfenster oder einem Shell-Fenster. Es liegt dann an dem Programm und sagt es wirklich ist es ein Terminal, ehrlich. Vor PTYs haben Sie solche Programme mit Pipes verbunden, aber Pipes haben signifikante Unterschiede, wie keine Flusskontrolle. PTYs schienen dieses Problem zu lösen.

    – Charly Martin

    5. Oktober 2014 um 20:25 Uhr

  • @CharlieMartin “Ein echtes TTY stellt eine Verbindung zu einem physischen Terminal her”. Was ist mit der Linux-Konsole? In einem Ubuntu-System sind beispielsweise Linux-Konsolen eingeschaltet Ctrl-Alt-F{1..6} und sie sind verbunden /dev/tty{1..6}. Die Linux-Konsole ist kein physikalisches Terminal, dennoch ist sie mit einem verbunden ttyN (nicht zu a ptyN). Übersehe ich hier etwas?

    – Utku

    26. März 2017 um 7:04 Uhr


  • Nur, dass Sie so ziemlich nichts Bestimmtes über LINUX sagen können, das keinen seltsamen Grenzfall haben wird. In diesem Fall ist die Linux-Konsole eine Kernel-Funktion, die einen /dev/tty dev-Eintrag verwendet, dann aber mit einer Reihe von Dingen verbunden wird, um sie an den Benutzer weiterzugeben. en.wikipedia.org/wiki/Linux_console

    – Charly Martin

    26. März 2017 um 23:36 Uhr

Benutzeravatar von caf
Café

EIN tty ist ein Terminal (es steht für fernschreiben – Die ursprünglichen Terminals verwendeten einen Zeilendrucker für die Ausgabe und eine Tastatur für die Eingabe!). Ein Terminal ist im Grunde nur ein Benutzerschnittstellengerät, das Text für die Eingabe und Ausgabe verwendet.

EIN pty ist ein Pseudoterminal – Es handelt sich um eine Softwareimplementierung, die dem angeschlossenen Programm wie ein Terminal erscheint, aber anstatt direkt mit einem “echten” Terminal zu kommunizieren, überträgt es die Eingabe und Ausgabe an ein anderes Programm.

Zum Beispiel, wenn Sie sich per SSH in eine Maschine einloggen und ausführen lsdas ls Der Befehl sendet seine Ausgabe an ein Pseudo-Terminal, dessen andere Seite mit dem SSH-Daemon verbunden ist.

  • Könnten Sie ein etwas “genaueres” Beispiel für PTYs geben? Ich habe immer noch nicht verstanden, wo sie herkommen und wie sie überhaupt heißen. Vielen Dank

    – Benutzer3085931

    30. Juni 2014 um 6:58 Uhr

  • Kann jemand helfen, wann und wie *nix basierte Betriebssystem erstellt diese Pseudo-Terminals.

    – Krishna Oza

    7. Februar 2017 um 6:37 Uhr

  • @darth_coder: Sie werden erstellt, wenn eine Anwendung eine anfordert. Das passiert, wenn Sie beispielsweise ein neues grafisches Terminalfenster öffnen oder sich aus der Ferne anmelden.

    – Café

    7. Februar 2017 um 23:09 Uhr

  • @caf können Sie Kernelmodule oder Daemon nennen, die für das Spawnen eines Terminals verantwortlich sind.

    – Krishna Oza

    8. Februar 2017 um 5:59 Uhr

  • @darth_coder: Jede Anwendung kann dies tun. sshd und xterm sind zwei typische Beispiele.

    – Café

    8. Februar 2017 um 6:05 Uhr

tty: Fernschreiber. Bezieht sich normalerweise auf die seriellen Schnittstellen eines Computers, an denen Terminals angeschlossen waren.

pty: Pseudoteletyp. Der Kernel stellt einen pseudoseriellen Port bereit, der mit Programmen verbunden ist, die Terminals emulieren, wie z. B. xterm oder screen.

Benutzeravatar von nikolaosmparoutis
nikolaosmparoutis

Wenn Sie den mount-Befehl ohne Kommandozeilenargumente ausführen, der die auf Ihrem System gemounteten Dateisysteme anzeigt, sehen Sie eine Zeile, die ungefähr so ​​aussieht: none on /dev/pts type devpts (rw,gid=5, mode=620) Dies zeigt an, dass ein spezieller Dateisystemtyp, devpts , unter /dev/pts eingehängt ist. Dieses Dateisystem, das mit keinem Hardwaregerät verknüpft ist, ist ein „magisches“ Dateisystem, das von erstellt wird Linux Kernel. Es ähnelt dem /proc-Dateisystem

Wie das /dev-Verzeichnis enthält /dev/pts Einträge, die Geräten entsprechen. Aber im Gegensatz zu /dev , einem gewöhnlichen Verzeichnis, ist /dev/pts ein spezielles Verzeichnis, das dynamisch vom Linux-Kernel erstellt wird. Der Inhalt des Verzeichnisses ändert sich mit der Zeit und spiegelt den Zustand des laufenden Systems wider. Die Einträge in /dev/pts entsprechen Pseudo-Terminals (oder Pseudo-TTYs oder PTYs).

Linux erstellt für jedes neue Terminalfenster, das Sie öffnen, einen PTY und zeigt einen entsprechenden Eintrag in /dev/pts an. Das PTY-Gerät verhält sich wie ein Terminalgerät – es nimmt Eingaben von der Tastatur entgegen und zeigt Textausgaben von Programmen an, die darin laufen . PTYs sind nummeriert, und die PTY-Nummer ist der Name des entsprechenden Eintrags in /dev/pts .

Wenn die PTY-Nummer des neuen Terminalfensters beispielsweise 7 ist, rufen Sie diesen Befehl von einem anderen Fenster aus auf:

echo ‘I am a virtual di ’ > /dev/pts/7

Die Ausgabe erscheint im neuen Terminalfenster. Sie können versuchen, die 7 mit 1, 2 zu ändern, je nachdem, welche Terminals geöffnet sind, sehen Sie die Ausgabe im anderen Terminalfenster. Der dev/pts ist der Bus (die Post), um dies zu tun!

Benutzeravatar von Tony Barganski
Toni Barganski

EIN tty ist ein körperlich tTerminal-teletjPE-Anschluss an einem Computer (normalerweise ein serieller Anschluss).

Ein Fernschreiber tty kann auch von einem Computerprogramm emuliert werden, das als Modul im Kernel-Space läuft.

Das Wort fernschreiben ist ein Kurzschluss der Telegrafenschreibmaschineoder Fernschreiber Gerät aus den 1930er Jahren – selbst ein elektromagnetisches Gerät, das das ersetzte Telegraph Kodiermaschinen der 1830er und 1840er Jahre.

Fernschreiber
TTY – Fernschreiber der 1930er Jahre

EIN pty ist ein pSeudo-teletype Port, der von einem Betriebssystem-Kernel eines Computers bereitgestellt wird, um Benutzerland-Terminalemulationssoftwareprogramme wie ssh, xterm oder screen zu verbinden.

Geben Sie hier die Bildbeschreibung ein

PTY – Pseudo-Teletyp

Ein Terminal ist einfach die Benutzerschnittstelle eines Computers, die Text für die Ein- und Ausgabe verwendet.

Betriebssystemimplementierungen

Diese verwenden pSeudo-teletype-Ports sind ihre Benennung und Implementierung jedoch ein wenig auseinandergegangen.

Linux Mountet ein spezielles Dateisystem Entwickler an /dev (das ‘s’ steht vermutlich für serial), die einen entsprechenden Eintrag in erzeugt /dev/pts für jedes neue Terminalfenster, das Sie öffnen, z /dev/pts/0

macOS/FreeBSD benutze auch die /dev Dateistruktur verwenden sie jedoch eine nummerierte TTY Namenskonvention ttys für jedes neue Terminalfenster, das Sie öffnen, z /dev/ttys002

Microsoft Windows hat immer noch das Konzept eines LPT Port für Zeilendruckerterminals innerhalb seiner Befehlsshell für die Ausgabe an einen Drucker.

  • Das zweite Bild, das Sie bereitgestellt haben, ist ein VT100-Videoterminal. Dies ist immer noch ein physisches TTY (obwohl die TTY-Hersteller in den 1970er Jahren von Druckern zu Videodisplays übergegangen waren) und definitiv kein PTY (Terminal in Software). Es ist erwähnenswert, dass Videoterminals der alten Schule wie das von Ihnen abgebildete DEC VT100 keine Software ausführen können, geschweige denn ein Betriebssystem, da es sich nicht um Computer handelt.

    – Verschleierung des Benutzernamens

    25. Juli 2020 um 12:04 Uhr

  • @dwk Gut entdeckt in Bezug auf das VT100-Videoterminal. Ich habe das Foto aktualisiert.

    – Toni Barganski

    4. März 2021 um 14:31 Uhr

  • Das zweite Bild, das Sie bereitgestellt haben, ist ein VT100-Videoterminal. Dies ist immer noch ein physisches TTY (obwohl die TTY-Hersteller in den 1970er Jahren von Druckern zu Videodisplays übergegangen waren) und definitiv kein PTY (Terminal in Software). Es ist erwähnenswert, dass Videoterminals der alten Schule wie das von Ihnen abgebildete DEC VT100 keine Software ausführen können, geschweige denn ein Betriebssystem, da es sich nicht um Computer handelt.

    – Verschleierung des Benutzernamens

    25. Juli 2020 um 12:04 Uhr

  • @dwk Gut entdeckt in Bezug auf das VT100-Videoterminal. Ich habe das Foto aktualisiert.

    – Toni Barganski

    4. März 2021 um 14:31 Uhr

1426910cookie-checkWas bedeuten pty und tty?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy