Duplicata possible:
Quelle est la différence exacte entre un 'terminal', un 'Shell', un 'tty' et une 'console'?
Je vois toujours pts et tty lorsque j'utilise la commande who
mais je ne comprends jamais en quoi ils sont différents? Quelqu'un peut-il m'expliquer cela?
Un tty est un périphérique terminal natif, le backend est émulé soit par le matériel, soit par le noyau.
Un pty (périphérique pseudo-terminal) est un périphérique terminal qui est émulé par un autre programme (exemple: xterm
, screen
ou ssh
sont de tels programmes). Un pts est la partie esclave d'un pty .
(Plus d'informations peuvent être trouvées dans man pty
.)
court résumé:
Un pty est créé par un processus via posix_openpt()
(qui ouvre généralement le périphérique spécial /dev/ptmx
), Et est constitué par une paire de dispositifs à caractères bidirectionnels:
La partie maître, qui est le descripteur de fichier obtenu par ce processus via cet appel, est utilisée pour émuler un terminal. Après une certaine initialisation, la deuxième partie peut être déverrouillée avec unlockpt()
, et le maître est utilisé pour recevoir ou envoyer des caractères à cette deuxième partie (esclave).
La partie esclave, qui est ancrée dans le système de fichiers comme /dev/pts/x
(Le vrai nom peut être obtenu par le maître via ptsname()
) se comporte comme un périphérique terminal natif (/dev/ttyx
) . Dans la plupart des cas, un shell est démarré qui l'utilise comme terminal de contrôle.
Un tty
est un terminal standard (la console de votre serveur, par exemple).
Un pts
est un esclave terminal psuedo (une connexion xterm
ou ssh
).
man pts
a une description détaillée des pseudo-terminaux.