Mögliches Duplikat:
Was ist der genaue Unterschied zwischen einem „Terminal“, einer „Shell“, einem „tty“ und einer „Konsole“?
Ich sehe immer pts und tty, wenn ich who
verwende Befehl, aber ich verstehe nie, wie sie sich unterscheiden? Kann mir das bitte jemand erklären?
Akzeptierte Antwort:
Ein tty ist ein natives Endgerät, das Backend ist entweder Hardware- oder Kernel-emuliert.
Ein pty (Pseudo-Endgerät) ist ein Endgerät, das von einem anderen Programm emuliert wird (Beispiel:xterm
, screen
, oder ssh
sind solche Programme). Ein pts ist der Slave-Teil eines pty .
(Weitere Informationen finden Sie in man pty
.)
Kurze Zusammenfassung :
Ein pty wird von einem Prozess durch posix_openpt()
erstellt (was normalerweise das spezielle Gerät /dev/ptmx
öffnet ) und besteht aus einem Paar bidirektionaler Zeichengeräte:
-
Der Masterteil, der Dateideskriptor, der von diesem Prozess durch diesen Aufruf erhalten wird, wird verwendet, um ein Terminal zu emulieren. Nach einiger Initialisierung kann der zweite Teil mit
unlockpt()
entsperrt werden , und der Master dient zum Empfangen oder Senden von Zeichen an diesen zweiten Teil (Slave). -
Der Slave-Teil, der im Dateisystem als
/dev/pts/x
verankert ist (Der echte Name kann vom Master überptsname()
abgerufen werden ) verhält sich wie ein natives Endgerät (/dev/ttyx
). In den meisten Fällen wird eine Shell gestartet, die es als steuerndes Terminal verwendet.