web-dev-qa-db-fra.com

Que sont les pseudo-terminaux (pty / tty)?

C'est peut-être une question vraiment fondamentale, mais je veux bien la comprendre.

  1. Qu'est-ce qu'un pseudo terminal? (tty/pty)
  2. Pourquoi avons-nous besoin d'eux? Comment ont-ils été introduits et quel en était le besoin?
  3. Sont-ils dépassés? N'en avons-nous plus besoin? Y a-t-il quelque chose qui les a remplacés?
  4. Un cas d'utilisation utile?

Ce que j'ai fait:

  1. Lisez les pages de manuel - obtenez quelques informations mais pas l'image exacte.
  2. J'ai essayé de les lire à partir de la programmation réseau Unix par Richard Stevens. Vous avez des informations mais pas le why? partie.
104
hari
  1. Un appareil qui a les fonctions d'un terminal physique sans en être un. Créé par des émulateurs de terminaux tels que xterm. Plus de détails sont dans la page de manuel pty (7).
  2. Traditionnellement, UNIX a un concept de terminal de contrôle pour un groupe de processus, et de nombreuses fonctions d'E/S sont conçues en tenant compte des terminaux. Les pseudoterminaux gèrent, par exemple, certains caractères de contrôle comme ^ C.
  3. Ils ne sont pas obsolètes et sont utilisés dans de nombreux programmes, y compris ssh.
  4. ssh.
49
thiton

La réponse est dans le nom - "Pseudo" signifiant "pas authentique mais ayant l'apparence de".

Avec les premiers terminaux, il y avait toujours un matériel connecté avec le périphérique associé, que ce soit du matériel d'affichage ou un port série.

Avec xwindows, telnet et ssh, il est apparu nécessaire de disposer de logiciels "Pseudo devices" pour faire le travail pour remplacer le matériel d'affichage. Ce sont des "pseudo-terminaux" ... un logiciel qui émule le matériel du terminal, gérant les entrées et les sorties de la même manière qu'un périphérique physique, de sorte que le logiciel connecté ne sache pas qu'aucun périphérique réel n'est connecté.

29
gview

Les pseudo-terminaux sont des émulateurs pour les lignes série. Ils fournissent des points de terminaison pour les shells telnet, ssh et xterm.

12
Joshua