Le mot « pipe » vient de l’anglais « pipeline », terme également utilisé en français. En informatique, un pipe désigne un flux de données exécuté entre deux processus étroitement liés, ou n’ayant au contraire aucune origine commune. Cela signifie que le résultat de sortie d’un programme peut servir d’entrée à un autre. Cela permet, entre autres, de diviser des problèmes complexes en sous-problèmes plus petits, et de profiter ainsi d’une meilleure vue d’ensemble.
Il existe deux types de pipes différents sous Linux : les pipes anonymes, ou « Unnamed Pipes » et les pipes nommés, ou « Named Pipes ».
Les pipes sans nom (ou anonymes) ne sont utilisés qu’entre des processus étroitement liés, alors que les pipes nommés ou FIFO (basés sur le principe « First In – First Out », littéralement « premier arrivé, premier sorti ») assurent la communication entre deux processus sans aucun lien entre eux, basés sur des ordinateurs différents au sein d’un même réseau. Contrairement aux pipes sans nom, les pipes nommés permettent aussi une communication bidirectionnelle, et pas seulement unidirectionnelle (dans laquelle un processus écrit, tandis que l’autre ne peut que lire).