À retenir
- Permet la communication entre processus indépendants.
- Possède une existence physique dans l'arborescence des fichiers.
- Respecte le principe FIFO (First In, First Out) : premier arrivé, premier sorti.
- Nécessite une destruction explicite pour disparaître.
Un tube nommé est un canal de communication persistant qui permet à deux programmes différents d'échanger des données sur un même ordinateur, même s'ils n'ont aucun lien de parenté. On peut l'imaginer comme un tunnel invisible doté d'une adresse précise (un nom de fichier), où les informations ressortent exactement dans l'ordre où elles ont été injectées.
Étymologie
Calqué sur l'anglais named pipe. Le mot « tube » symbolise le transfert fluide de données d'un point A vers un point B, tandis que « nommé » souligne que ce canal dispose d'un identifiant ou d'un chemin d'accès dans le système de fichiers, contrairement aux tubes classiques qui sont éphémères.
Exemples d'usage
- Sous Linux ou macOS, la création d'un point d'échange avec la commande
mkfifo mon_tube. - La communication interne entre un serveur de base de données et un outil de sauvegarde sur la même machine.
- L'envoi de logs d'une application vers un script d'analyse en temps réel sans créer de fichier texte intermédiaire.
Cas d'usage
Ce concept intervient principalement dans l'administration système et la programmation système (IPC - Inter-Process Communication). Il est utilisé pour faire coopérer des logiciels écrits dans des langages différents ou pour automatiser des flux de données complexes sans saturer le disque dur avec des fichiers temporaires.
Bonnes pratiques
Puisqu'un tube nommé est persistant, il est indispensable de le supprimer manuellement après usage pour ne pas encombrer le système de fichiers. Il faut également prévoir la gestion du blocage : un programme qui tente d'écrire dans un tube restera en attente tant qu'aucun autre programme ne viendra lire les données à l'autre bout.
Synonymes
Antonymes
Conseil
Pour bien comprendre, visualisez le tube nommé comme une adresse de livraison. Si vous envoyez un colis (une donnée) à cette adresse, il y restera jusqu'à ce que le destinataire vienne le récupérer. Si vous débutez, testez-le en ligne de commande avec mkfifo dans un terminal et lisez le résultat dans un second terminal.
Questions fréquentes
Quelle est la différence avec un fichier texte classique ?
Un fichier stocke les données sur le disque de façon permanente. Un tube nommé ne sert que de zone de transit : dès qu'une donnée est lue, elle libère de l'espace pour la suivante.
Un tube nommé peut-il fonctionner par réseau ?
Sur les systèmes Unix/Linux, ils sont locaux. Sur Windows, il existe une implémentation spécifique des Named Pipes permettant la communication entre machines via le réseau local.
Est-ce plus rapide qu'un fichier ?
Oui, car les données transitent souvent par la mémoire vive sans être réellement écrites sur le support physique (disque), ce qui accélère les échanges.