288 votes

Que signifient pty et tty ?

J'ai remarqué de nombreuses mentions de pty y tty dans certains projets open source, quelqu'un pourrait-il me dire ce qu'ils signifient et quelle est la différence entre eux ?

2 votes

Vous pouvez lire la page de manuel de pty(7) (comme ceci lien ), où pty/tty s sont décrits comme des paires de fichiers pré-créées représentant les extrémités maître/esclave d'un pseudo-terminal (voir la description du style BSD).

0 votes

@wangkaibule Cela devrait être une réponse !

267voto

Charlie Martin Points 62306

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

Dans UNIX, /dev/tty* est tout dispositif qui agit comme un "télétype" c'est-à-dire un terminal. (Appelé télétype parce que c'est ce qu'on avait comme terminaux à cette époque bénigne).

A pty es 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 quelque chose d'autre. Ils sont apparus pour la première fois (si je me souviens bien) pour X Window et screen et autres, où vous aviez besoin de quelque chose qui agissait comme un terminal mais qui pouvait être utilisé à partir d'un autre programme.

1 votes

Je pense que les ptys ont été ajoutés à Unix principalement pour supporter Telnet, rsh et rlogin.

0 votes

@larsmans, nous avions telnet (au moins) avant qu'il y ait un pty -- en fait, telnet et moi sommes entrés en informatique la même année, en 1969. J'étais un peu à l'écart dans le monde DECNET quand rsh est apparu dans UNIX, donc je ne suis pas sûr de l'ordre des choses. En tout cas, cela fait partie de "et autres".

0 votes

Je sais que le protocole Telnet est plus ancien que ptys, mais le programme Telnet actuel d'Unix est apparu dans 4.2BSD en 1983 ; c'était aussi le premier Unix avec ptys.

262voto

caf Points 114951

A tty es un terminal (il s'agit de télétype - les terminaux originaux utilisaient une imprimante de ligne pour la sortie et un clavier pour l'entrée !). Un terminal est essentiellement un dispositif d'interface utilisateur qui utilise du texte pour l'entrée et la sortie.

A pty es un pseudo-terminal - il s'agit d'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 à un autre programme.

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

1 votes

Pourriez-vous donner un exemple un peu plus "précis" de PTYs ? Je n'ai toujours pas compris où ils interviennent et comment ils sont appelés. Merci

0 votes

Quelqu'un peut-il m'aider à savoir quand et comment *nix crée ce pseudo terminal.

0 votes

@darth_coder : Ils sont créés lorsqu'une application en fait la demande. Cela se produit lorsque vous faites des choses comme ouvrir une nouvelle fenêtre de terminal graphique ou vous connecter à distance.

25voto

wnoise Points 6448

Tty : télétype. Désigne généralement les ports série d'un ordinateur, auxquels étaient reliés des terminaux.

pty : pseudo-télétype. Port pseudo-sériel fourni par le noyau, connecté à des programmes émulant des terminaux, tels que xterm, ou screen.

22voto

nikolaosmparoutis Points 391

Si vous exécutez la commande mount sans arguments de ligne de commande, ce qui affiche systèmes de fichiers montés sur votre système, vous remarquerez une ligne qui ressemble à quelque chose comme à ceci : none on /dev/pts type devpts (rw,gid=5,mode=620) Ceci indique qu'un type spécial de système de fichiers, devpts , est monté sur /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 la clé Linux. qui est 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 à des périphériques. Mais 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 de ce répertoire varie dans le temps et reflète l'état de la machine. et reflète l'état du système en cours d'exécution. Les entrées de /dev/pts correspondent à des pseudo-terminaux (ou pseudo-TTY, 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 . correspondant dans /dev/pts . Le périphérique PTY se comporte comme un terminal : il accepte les entrées du Il accepte les entrées du clavier et affiche la sortie texte des programmes qui s'y exécutent. Les PTY sont numérotés, et leur numéro correspond au nom de l'entrée correspondante dans le fichier /dev/pts .

Pour Par exemple, si le numéro PTY de la nouvelle fenêtre du terminal est 7, invoquez la commande suivante depuis une autre fenêtre une autre fenêtre :

echo ‘I am a virtual di ’ > /dev/pts/7

La sortie apparaît dans la nouvelle fenêtre du terminal. Vous pouvez essayer de changer le 7 avec 1, 2 selon les terminaux ouverts vous verrez la sortie sur l'autre fenêtre de terminal. Le dev/pts est le bus (la poste) pour faire cela !

16voto

Peter Barganski Points 41

A tty es un physique t erminal- t elet y pe port sur un ordinateur (généralement un port série).

Un télétype tty peut également être émulée par un programme informatique fonctionnant comme un module dans l'espace du noyau.

Le mot télétype est un court-circuit de la machine à écrire télégraphique ou téléimprimeur des années 1930 - lui-même un appareil électromagnétique qui a remplacé le télégraphe les machines de codage des années 1830 et 1840.

Teletypewriter
TTY - Téléimprimeur Années 30

A pty es un p seudo- t ele ty port pe fourni par le noyau d'un système d'exploitation d'ordinateur pour connecter l'utilisateur à des logiciels d'émulation de terminal tels que ssh, xterm ou screen.

enter image description here   PTY - Pseudo-Télétype

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

Implantations de systèmes d'exploitation

Ceux-ci utilisent p seudo- t ele ty Cependant, leurs noms et leurs mises en œuvre ont quelque peu divergé.

Linux monte un système de fichiers spécial devpts sur /dev (le "s" signifiant vraisemblablement s erial) qui crée une entrée correspondante dans /dev/pts pour chaque nouvelle fenêtre de terminal que vous ouvrez, par exemple /dev/pts/0

macOS/FreeBSD utilisent également le /dev cependant, ils utilisent une structure de fichiers numérotée TTY convention d'appellation ttys pour chaque nouvelle fenêtre de terminal que vous ouvrez, par exemple /dev/ttys002

Microsoft Windows a toujours le concept d'un LPT pour les terminaux d'impression de ligne dans le shell de commande pour la sortie sur une imprimante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X