Possibile duplicato:
Qual è l'esatta differenza tra un "terminale", una "shell", una "tty" e una "console"?
Vedo sempre pts e tty quando uso who
comando ma non ho mai capito come sono diversi? Qualcuno può spiegarmi questo?
Risposta accettata:
Un tty è un dispositivo terminale nativo, il backend è emulato hardware o kernel.
Un pty (pseudo dispositivo terminale) è un dispositivo terminale emulato da un altro programma (esempio:xterm
, screen
o ssh
sono tali programmi). A punti è la parte schiava di un pty .
(Ulteriori informazioni possono essere trovate in man pty
.)
Breve riepilogo :
Un pty viene creato da un processo tramite posix_openpt()
(che di solito apre il dispositivo speciale /dev/ptmx
), ed è costituito da una coppia di dispositivi a caratteri bidirezionali:
-
La parte master, che è il descrittore di file ottenuto da questo processo tramite questa chiamata, viene utilizzata per emulare un terminale. Dopo qualche inizializzazione, la seconda parte può essere sbloccata con
unlockpt()
, e il master viene utilizzato per ricevere o inviare caratteri a questa seconda parte (slave). -
La parte slave, che è ancorata nel filesystem come
/dev/pts/x
(il vero nome può essere ottenuto dal master tramiteptsname()
) si comporta come un dispositivo terminale nativo (/dev/ttyx
). Nella maggior parte dei casi, viene avviata una shell che la utilizza come terminale di controllo.