Que signifient pty et tty?

237

J'ai remarqué qu'il y a de nombreuses mentions ptyet ttydans certains projets open source, quelqu'un peut-il me dire ce qu'ils signifient et quelle est la différence entre eux? Merci!

Pourquoi
la source

Réponses:

225

"tty" signifiait à l'origine "télétype" et "pty" signifie "pseudo-télétype".

Sous UNIX, / dev / tty * est tout périphérique qui agit comme un "télétype", c'est-à-dire un terminal. (Appelé télétype parce que c'est ce que nous avions pour les terminaux en ces jours bénis.)

Un pty est un pseudonyme, une entrée de périphérique qui agit comme un terminal pour le processus de lecture et d'écriture, mais qui est géré par autre chose. Ils sont apparus pour la première fois (si je me souviens bien) pour X Window et screen et similaires, où vous aviez besoin de quelque chose qui agissait comme un terminal mais pouvait être utilisé à partir d'un autre programme.

Charlie Martin
la source
Je pense que ptys a été ajouté à Unix principalement pour prendre en charge Telnet, rsh et rlogin.
Fred Foo
5
@CharlieMartin Que voulez-vous dire par le pty "qui a agi comme un terminal?" Pourquoi voudrions-nous quelque chose comme ça? Et comment un autre programme utilise-t-il ce pty? Ma conjecture est que les commandes de relais pty ou quelque chose au terminal réel (tty) pour le programme. Est-ce correct? Sinon, ignorez ma supposition et veuillez répondre à la première partie de mon commentaire.
OKGimmeMoney
16
Considérez un terminal comme un objet: il relie quelque chose à une extrémité à stdin et stdout à l'autre. Un véritable ATS se connecte à un terminal physique. un PTY se connecte à un programme, par exemple, xterm, ou une fenêtre de commande, ou une fenêtre shell. Il se trouve alors au programme et dit que ce vraiment est donc un terminal, honnête. Avant les PTY, vous connectiez des programmes comme celui-ci avec des tuyaux, mais les tuyaux présentent des différences importantes, comme aucun contrôle de flux. Les PTY semblaient résoudre ce problème.
Charlie Martin
3
@CharlieMartin "Un véritable ATS se connecte à un terminal physique". Et la console Linux? Par exemple, dans un système Ubuntu, il y a des consoles Linux sur lesquelles Ctrl-Alt-F{1..6}elles sont connectées /dev/tty{1..6}. La console Linux n'est pas un terminal physique, mais elle est connectée à un ttyN(pas à un ptyN). Est-ce que j'ai râté quelque chose?
Utku
1
Seulement, vous ne pouvez presque rien dire de précis sur LINUX qui n'aura pas d'étui bizarre. Dans ce cas, la console Linux est une fonctionnalité du noyau qui utilise une entrée / dev / tty dev mais se connecte ensuite à un tas de choses pour communiquer avec l'utilisateur. en.wikipedia.org/wiki/Linux_console
Charlie Martin
235

Un tty est un terminal (il signifie télétype - les terminaux d'origine utilisaient une imprimante de ligne pour la sortie et un clavier pour l'entrée!). Un terminal est essentiellement un périphérique d'interface utilisateur qui utilise du texte pour l'entrée et la sortie.

Un pty est un pseudo-terminal - c'est une implémentation logicielle qui apparaît au programme attaché comme un terminal, mais au lieu de communiquer directement avec un "vrai" terminal, il transfère l'entrée et la sortie vers un autre programme.

Par exemple, lorsque vous vous connectez à une machine et que vous l'exécutez ls, la lscommande envoie sa sortie à un pseudo-terminal, dont l'autre côté est attaché au démon SSH.

caf
la source
1
Pourriez-vous donner un exemple un peu plus "précis" de PTY? Je ne comprenais toujours pas où ils entrent et comment ils s'appellent. Merci
user3085931
Quelqu'un peut-il aider quand et comment *nixle système d'exploitation basé crée ces pseudo-terminaux.
Krishna Oza
@darth_coder: Ils sont créés lorsqu'une application en demande un. Cela se produit lorsque vous faites des choses comme ouvrir une nouvelle fenêtre de terminal graphique ou vous connecter à distance.
caf
@caf peut vous nommer des modules du noyau ou un démon responsable de la génération d'un terminal.
Krishna Oza
@darth_coder: Toute application peut le faire. sshdet xtermsont deux exemples typiques.
caf
21

tty: télétype. Se réfère généralement aux ports série d'un ordinateur, auxquels étaient connectés des terminaux.

pty: pseudo-télétype. Le noyau a fourni un port pseudo-série connecté à des programmes émulant des terminaux, tels que xterm ou screen.

wnoise
la source
19

Si vous exécutez la commande mount sans arguments de ligne de commande, qui affiche les systèmes de fichiers montés sur votre système, vous remarquerez une ligne qui ressemble à ceci: aucun sur le type / dev / pts devpts (rw, gid = 5, mode = 620) Ceci indique qu'un type spécial de système de fichiers, devpts, est monté dans / dev / pts. Ce système de fichiers, qui n'est associé à aucun périphérique matériel, est un système de fichiers «magique» créé par le Noyau Linux. Il est similaire au système de fichiers / proc

Comme le répertoire / dev, / dev / pts contient des entrées correspondant aux périphériques. Mais contrairement à / dev, qui est un répertoire ordinaire, / dev / pts est un répertoire spécial créé dynamiquement par le noyau Linux. Le contenu du répertoire varie avec le temps et reflète l'état du système en cours d'exécution. Les entrées dans / dev / pts correspondent à des pseudo-terminaux (ou pseudo-ATS ou PTY).

Linux crée un PTY pour chaque nouvelle fenêtre de terminal que vous ouvrez et affiche une entrée correspondante dans / dev / pts. Le périphérique PTY agit comme un périphérique terminal - il accepte les entrées du clavier et affiche la sortie texte des programmes qui y sont exécutés. . Les PTY sont numérotés et le numéro PTY est le nom de l'entrée correspondante dans / dev / pts.

Par exemple, si le numéro PTY de la nouvelle fenêtre de terminal est 7, appelez cette commande à partir d'une autre fenêtre:% echo 'Je suis un di virtuel'> / dev / pts / 7 La sortie apparaît dans la nouvelle fenêtre de terminal.

nikolaos_mparoutis
la source
2

A ttyest un physique t erminal- t elet y orifice de pe sur un ordinateur ( en général un port série).

Le mot télétype est un raccourci de la machine à écrire télégraphique , ou appareil de téléscripteur des années 1930 - lui-même un appareil électromagnétique qui a remplacé les machines d'encodage télégraphique des années 1830 et 1840.

Téléscripteur
ATS - Téléscripteur 1930

A ptyest un p seudo- t ele ty orifice pe fournie par un ordinateur du système d' exploitation du noyau à des programmes de logiciels d' émulation de connexion terminaux, tels que ssh, xterm, ou un écran.

entrez la description de l'image ici
PTY - PseudoTeletype

Un terminal est simplement l'interface utilisateur d'un ordinateur qui utilise du texte pour l'entrée et la sortie.


Implémentations du système d'exploitation

Ces utilisation p seudo- t ele ty pe ports cependant, leur dénomination et les mises en œuvre ont divergé un peu.

Linux monte un système de fichiers spéciaux devpts sur / dev (le « s » debout vraisemblablement pour l Erial) qui crée une entrée correspondante dans /dev/ptspour chaque nouvelle fenêtre de terminal que vous ouvrez, par exemple/dev/pts/0


macOS / FreeBSD utilisent également la structure de fichiers / dev , cependant, ils utilisent une TTYconvention de dénomination numérotée ttyspour chaque nouvelle fenêtre de terminal que vous ouvrez, par exemple/dev/ttys002


Microsoft Windows a toujours le concept d'un LPTport pour les terminaux d'imprimante de ligne dans son Command Shell pour la sortie vers une imprimante.

Tony Barganski
la source