Un multiplexeur de terminaux est une application logicielle qui peut être utilisée pour multiplexer plusieurs sessions de connexion distinctes basées sur un pseudo-terminal au sein d'un seul terminal, d' une fenêtre d'émulateur de terminal , d'une console système PC/station de travail ou d' une session de connexion à distance , ou pour détacher et rattacher des sessions à partir d'un terminal. Il est utile pour gérer plusieurs programmes à partir d'une interface de ligne de commande et pour séparer les programmes de la session du shell Unix qui a démarré le programme, en particulier pour qu'un processus distant continue de s'exécuter même lorsque l'utilisateur est déconnecté.
Caractéristiques
Un multiplexeur de terminaux peut être considéré comme une version texte des gestionnaires de fenêtres graphiques ou comme un moyen d'associer des terminaux virtuels à n'importe quelle session de connexion. Il s'agit d'un wrapper qui permet à plusieurs programmes texte de s'exécuter en même temps et fournit des fonctionnalités qui permettent à l'utilisateur d'utiliser les programmes au sein d'une seule interface de manière productive.
- Persistance
- Similaires au Virtual Network Computing , de nombreux multiplexeurs de terminaux permettent à l'utilisateur de démarrer des applications à partir d'un ordinateur, puis de se reconnecter à partir d'un autre ordinateur et de continuer à utiliser la même application sans avoir à la redémarrer. Cela simplifie l'accès à la même session entre différents emplacements, comme le travail et la maison. Ces multiplexeurs offrent généralement des fonctionnalités indépendantes du terminal afin que les utilisateurs puissent se déconnecter et se reconnecter à l'aide de différents types de terminaux, ce qui permet aux applications de continuer à s'exécuter sans avoir à se rendre compte du changement de terminal.
- Concrètement, le multiplexeur démarre une session (avec des processus associés), puis n'y attache pas de terminal, ou attache un terminal mais peut ensuite le détacher (par exemple si la connexion réseau est interrompue). Comme la session ne se termine pas, les processus ne reçoivent pas de signal de "raccrochage" ( SIGHUP ) et ne sont pas terminés, ils continuent donc de s'exécuter, et on peut ensuite (r)attacher un terminal à la session et continuer à interagir, ou simplement laisser la session sans attache.
- Fenêtres multiples
- Plusieurs sessions de terminal peuvent être créées, chacune exécutant généralement une seule application. Les fenêtres sont numérotées et l'utilisateur peut utiliser le clavier pour passer de l'une à l'autre. Certains émulateurs de terminal GUI fournissent des onglets ou des fonctionnalités similaires. Chaque fenêtre possède son propre tampon de défilement arrière, de sorte que la sortie est capturée même lorsque la fenêtre n'est pas affichée activement, et que l'historique peut être enregistré même lors de la migration vers un autre ordinateur. Les fenêtres peuvent être divisées en écran. Bien que certaines applications texte aient cette fonctionnalité intégrée, un multiplexeur de terminal permet à n'importe quelle application d'être divisée en écran avec n'importe quel nombre d'autres applications.
- Partage de session
- Les multiplexeurs de terminaux permettent à plusieurs ordinateurs de se connecter simultanément à la même session, ce qui permet la collaboration entre plusieurs utilisateurs. Le même ordinateur peut également être utilisé pour établir plusieurs connexions simultanées, offrant ainsi une fonctionnalité alternative au fractionnement d'écran, en particulier pour les ordinateurs dotés de plusieurs moniteurs.
Implémentations
- Byobu : Un utilitaire de profil et de configuration pour GNU Screen et tmux.
- dvtm : Gestion des fenêtres en mosaïque pour la console.
- GNU Screen : le prototype du multiplexeur de terminaux, sorti pour la première fois en 1987.
- mtm : présenté comme « peut-être le plus petit multiplexeur de terminaux utile au monde »
- neercs : neercs (« screen » écrit à l'envers) est un équivalent de GNU Screen. Il prend en charge les vignettes de fenêtre et les économiseurs d'écran animés graphiques. Il prend également en charge le changement de console 3D (basculement entre les consoles mappées sur les faces d'un cube) via la bibliothèque d'art ASCII libcaca .
- splitvt : utilitaire de terminal fractionné.
- TD/SMP : introduit par DEC sur leurs terminaux VT330/340 , TD/SMP était propriétaire et uniquement largement pris en charge par leurs propres serveurs de terminaux.
- tmux : un équivalent moderne de GNU Screen, sorti en 2007 ; il est sous licence BSD , permet plusieurs volets (avec prise en charge optionnelle de la souris Xterm ) et dispose d'une interface de commande scriptable. tmux visait à permettre le partage d'une seule fenêtre entre plusieurs terminaux, tout en gardant les autres fenêtres de la même session entièrement séparées. tmux fait partie du système de base OpenBSD depuis la version 4.6 de 2009.
- Twin (« Environnement Windows en mode texte ») : un gestionnaire de fenêtres à part entièrepour les fenêtres texte. Initialement lancé comme un projet MS-DOS , il a ensuite été porté sur Linux.