Possibile duplicato:
qual è la differenza esatta tra un 'terminale', una 'shell', una 'tty' e una 'console'?
Vedo sempre pts e tty quando uso il who
comando ma non capisco mai come sono diversi? Qualcuno può spiegarmi questo, per favore?
Possibile duplicato:
qual è la differenza esatta tra un 'terminale', una 'shell', una 'tty' e una 'console'?
Vedo sempre pts e tty quando uso il who
comando ma non capisco mai come sono diversi? Qualcuno può spiegarmi questo, per favore?
Risposte:
Un tty è un dispositivo terminale nativo, il backend è emulato dall'hardware o dal kernel.
Un pty (pseudo-dispositivo terminale) è un dispositivo terminale che viene emulato un altro programma (esempio: xterm
, screen
o ssh
sono tali programmi). Un pts è la parte schiava di un pty .
(Ulteriori informazioni sono disponibili in man pty
.)
Breve riassunto :
Un pty è creato da un processo attraverso posix_openpt()
(che di solito apre il dispositivo speciale /dev/ptmx
) ed è costituito da una coppia di dispositivi a carattere bidirezionale:
La parte principale, che è il descrittore di file ottenuto da questo processo tramite questa chiamata, viene utilizzata per emulare un terminale. Dopo un po 'di inizializzazione, la seconda parte può essere sbloccata 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 attraverso ptsname()
) 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.