2010-12-13 25 views
177

Ho notato che ci sono numerose segnalazioni di pty e tty in alcuni progetti opensource, potrebbe qualcuno può dirmi che cosa significano e qual è la differenza tra loro? Grazie!Cosa significano pty e tty?

risposta

168

"tty" originariamente significava "teletype" e "PTY" significa "pseudo-teletype".

In UNIX,/dev/tty * è qualsiasi dispositivo che agisce come un "teletype", cioè terminale. (Chiamato teletype perché è quello che avevamo per i terminali in quei giorni ottenebrati.)

Una pty è una pseudotty, una voce di dispositivo che funge da terminale per il processo di lettura e scrittura, ma gestita da qualcos'altro. Sono apparsi per la prima volta (come ricordo) per X Windows e lo schermo e simili, dove era necessario qualcosa che funzionasse ilke un terminale ma che potesse essere utilizzato da un altro programma.

+2

Ho avuto dei PTY in PDP-11 RSTS/E nel 1976 ... – EJP

+0

Penso che i pty siano stati aggiunti a Unix principalmente per supportare Telnet, rsh e rlogin. –

+0

@larsmans, avevamo telnet (almeno) prima che ci fosse un pty - in effetti, telnet ed io entrammo entrambi in informatica nello stesso anno, 1969. Ero un po 'fuori nel mondo di DECNET quando rsh si presentò in UNIX, quindi Non sono sicuro dell'odore lì. In ogni caso, fa parte di "e simili". –

14

tty: teletype. Solitamente si riferisce alle porte seriali di un computer, a cui sono stati collegati i terminali.

pty: pseudoteletype. La porta pseudoseriale del kernel era collegata a programmi che emulavano terminali, come xterm o schermo.

194

Un tty è un terminale (corrisponde a teletype - i terminali originali utilizzavano una stampante di linea per l'output e una tastiera per l'input!). Un terminale è fondamentalmente solo un dispositivo di interfaccia utente che utilizza il testo per l'input e l'output.

Una pty è uno pseudo-terminale: un'implementazione software che appare al programma collegato come un terminale, ma invece di comunicare direttamente con un terminale "reale", trasferisce l'input e l'output a un altro programma.

Ad esempio, quando si SSH ad una macchina ed eseguire ls, il comando ls sta inviando la sua uscita di una pseudo-terminale, l'altro lato del quale è attaccato il demone SSH.

+1

Potresti dare un esempio un po 'più "preciso" dei PTY? Non ho ancora capito da dove vengono e come sono stati chiamati. Grazie – user3085931

+0

Qualcuno può aiutarti quando e come il sistema operativo basato su '* nix' crea questi pseudo terminali. –

+0

@darth_coder: vengono creati quando un'applicazione ne richiede uno. Ciò accade quando fai cose come aprire una nuova finestra di terminale grafica o accedere da remoto. – caf

11

Se si esegue il comando mount senza argomenti della riga di comando, che visualizza i file system montati sul sistema, si noterà una linea che sembra qualcosa di simile : nessuno sul/dev/pts digitare devpts (rw, gid = 5, mode = 620) Ciò indica che un tipo speciale di file system, devpts, è montato in/dev/pts .Questo file system, che non è associato alcun dispositivo hardware, è un “ magic "file system creato dal kernel Linux. E 'simile al file system/proc

Come la directory/dev,/dev/pts contiene voci corrispondenti ai dispositivi. Ma a differenza di /dev, che è una directory ordinaria,/dev/pts è una directory speciale che è crea- ated dinamicamente il contenuto Linux kernel.The della directory variare nel tempo e riflettere lo stato del sistema in esecuzione. Le voci in/dev/pts corrispondono a pseudo-terminali (o pseudo-TTY o PTY).

Linux crea un PTY per ogni nuova finestra del terminale si apre e si visualizza un corri- ingresso spondente in/dev/pts agisce il dispositivo .La PTY come un terminale dispositivo accetta input dalla tastiera e di uscita visualizza il testo da i programmi che vengono eseguiti in esso. I PTY sono numerati e il numero PTY è il nome della voce corrispondente in /dev/pts.

Ad esempio, se il numero PTY della nuova finestra di terminale è 7, invocare questo comando dalla un'altra finestra: % echo 'Sono di virtual'>/dev/pts/7 L'output appare nella nuova finestra del terminale.

Problemi correlati