Interfaces de pseudo-terminaux
Un pseudoterminal (abrégé pty) est une paire de périphériques caractères virtuels qui fournissent un canal de communication bidirectionnelle. Un bout du canal est appelé le maître, l'autre est appelé esclave. Le bout esclave du pseudo-terminal fournit une interface qui se comporte exactement comme un terminal classique. Un processus qui s'attend à être connecté à un terminal peut ouvrir le bout esclave d'un pseudo-terminal puis être piloté par un programme qui a ouvert le bout maître. Tout ce qui est écrit sur le maître est fourni au processus sur l'esclave comme si c'était écrit sur un terminal. Par exemple, écrire le caractère d'interruption (généralement ctrl-C) sur le périphérique maître cause l'envoi d'un signal d'interruption SIGINT au groupe de processus qui est connecté à l'esclave. Réciproquement, tout ce qui est écrit sur l'esclave peut être lu par le processus qui connecté au maître. Les pseudo-terminaux sont utilisé par des application telles que des services de login à distance (ssh, rlogin, telnet), les émulateurs de terminaux, script, screen, et expect.
Historiquement, 2 API de pseudo-terminaux ont évolués: BSD et System V. SUSv1 a standardisé une API de pseudo-terminal basée sur l'interface System V, et cette API doit être utilisée dans tous les nouveaux programmes qui utilisent des pseudo-terminaux.
Linux fournit à la fois des pseudo-terminaux de type BSD et de type System V (standardisés). Les terminaux de type System V sont souvent appelés pseudo-terminaux UNIX 98 sur les systèmes Linux. Depuis Linux 2.6.4, les pseudo-terminaux de type BSD sont considérés obsolètes.