Différence entre pts et tty


108

Duplication possible:
Quelle est la différence exacte entre un "terminal", un "shell", un "tty" et une "console"?

Je vois toujours les pts et les tty quand j'utilise la whocommande mais je ne comprends jamais en quoi ils sont différents? Quelqu'un peut-il m'expliquer s'il vous plaît?


Réponses:


111

Un téléscripteur est un terminal natif, le back - end est matériel ou noyau émulé.

A pty (pseudo dispositif terminal) est un dispositif de terminal qui est émulé par un autre programme ( par exemple: xterm, screenou sshsont tels programmes). Un pts est la partie esclave d'un pty .

(Plus d'informations peuvent être trouvées dans man pty.)

Bref résumé :

Un pty est créé par un processus posix_openpt()(qui ouvre généralement le périphérique spécial /dev/ptmx) et est constitué d'une paire de périphériques à caractère bidirectionnel:

  1. La partie principale, 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 unlockpt()et le maître est utilisé pour recevoir ou envoyer des caractères à cette deuxième partie (esclave).

  2. La partie esclave, qui est ancrée dans le système de fichiers en tant que /dev/pts/x(le nom réel peut être obtenu par le maître via ptsname()) se comporte comme un terminal natif ( /dev/ttyx). Dans la plupart des cas, un shell est utilisé pour l'utiliser comme terminal de contrôle.


Qu'entendez-vous par le backend, c'est du matériel?
Motivé le


Merci. Je suppose que c’est une référence historique par opposition à une utilisation contemporaine, c’est-à-dire qu’elle était supportée par du matériel.
Motivé le

38

A ttyest un terminal classique (la console de votre serveur, par exemple).
A ptsest un terminal esclave psuedo (une xtermou une sshconnexion).

man pts a une description détaillée des pseudo-terminaux.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.