Tubo (cáscara)

El caparazón de los sistemas operativos de Unix tiene un mecanismo llamado tube , pipeline o pipe ( / paɪp / ). Este mecanismo hace posible encadenar procesos para que la salida de un proceso ( stdout ) alimente directamente la entrada ( stdin ) del siguiente. Cada conexión se establece mediante un tubo anónimo . Los programas de filtro se utilizan a menudo en esta configuración. Douglas McIlroy acuñó este concepto para los shells de Unix y el nombre en inglés se deriva de la analogía con una tubería física.

Shell Unix

El símbolo utilizado para crear tuberías en los shells de Unix es la barra vertical | , comúnmente llamado tubo o tubería por extensión.

Por ejemplo : programme1 | programme2

El programa programa1 es ejecutado por el sistema que envía los resultados al programa2, que a su vez devuelve los resultados a la salida estándar del sistema.

La tubería se usa ampliamente en Unix, por ejemplo, para asociar varios comandos cuyos procesos están vinculados.

Por ejemplo, el comando:

cut -d" " -f1 < access.log | sort | uniq -c | sort -rn | less

Le permite recuperar y mostrar las direcciones IP de los clientes que accedieron con más frecuencia a un servidor web Apache .

Pseudo-tubos

En sistemas operativos monotâches como MS-DOS , el proceso encadenado debe realizarse de forma secuencial, es decir, uno tras otro. La salida de cada proceso se guarda en un archivo temporal, que luego es leído por el siguiente proceso. Por lo tanto por un lado el tamaño requerido en disco para ejecutar estos comandos puede ser muy grande y por lo tanto de ejecución muy lenta, por otro lado la adquisición permanente es imposible ya que nunca regresará "la mano" y finalmente estos comandos no pueden procesar reales -tiempo de adquisiciones de datos, ya que todo debe escribirse en los discos antes de que se realice el segundo procesamiento. Sin embargo, la sintaxis es idéntica a la de las tuberías de shell de UNIX. Por tanto, hablamos de pseudotubos.

El procesamiento del "dir | destino | más "por el intérprete de comandos permite visualizar por página la lista de los archivos del directorio de forma ordenada. Para hacer esto, el sistema ejecuta:

  1. creación de un archivo 1.tmp temporal en el directorio al que apunta la variable% TEMP% o en el directorio actual si no se especifica% TEMP%
  2. ejecute el comando "dir" y guarde los datos en el archivo 1.tmp
  3. crear un archivo 2.tmp temporal
  4. ejecución del comando "sort" con el archivo 1.tmp como entrada y salida en el archivo 2.tmp
  5. ejecute el comando "más" con el archivo 2.tmp como entrada y salida a la salida estándar
  6. borrar 1.tmp y 2.tmp

Windows PowerShell

Windows PowerShell , el shell equivalente para los sistemas operativos multitarea de Microsoft , también implementa este tipo de mecanismo. Mais contrairement aux tubes UNIX qui permettent de manipuler un flux de données brut sous forme d'octet ou de bits, les tubes de PowerShell permettent de manipuler des objets .NET , méthode qui, implicitement par l'interpréteur de commande, vérifie la nature du flujo.

Notas y referencias

Artículos relacionados