El Programa de Intercambio de Periféricos ( PIP ) era una utilidad para transferir archivos dentro y entre dispositivos en las computadoras de Digital Equipment Corporation . Fue implementado por primera vez en la arquitectura PDP-6 por Harrison "Dit" Morse a principios de la década de 1960. Posteriormente, se implementó para los sistemas operativos de DEC para las arquitecturas PDP-10 , PDP-11 y PDP-8 [ 1 ] . En las décadas de 1970 y 1980, Digital Research implementó PIP en CP/M [ 2 ] y MP/M [ 3 ] .
Historia
Se dice que durante su desarrollo se le llamó ATLATL, que es un acrónimo de "Anything, Lord, to Anything, Lord" (Cualquier cosa, Señor, a cualquier cosa, Señor). [ 4 ] Esto describía con humor tanto su propósito como una herramienta de copia de archivos independiente del dispositivo como las dificultades que existían en ese momento para copiar archivos de forma segura entre dispositivos.
La sintaxis PIP original era
Destino PIP←origen /conmutadores
utilizando el carácter de flecha izquierda del conjunto de caracteres ASCII -1963 que utilizaban los teclados Flexowriter de la época. A medida que se introdujeron otros terminales que utilizaban versiones posteriores de ASCII (sin el carácter de flecha izquierda), PIP permitió la sintaxis
Destino PIP=origen
El carácter de guion bajo ( _ ), que se encontraba en la misma posición de carácter ASCII que había ocupado la flecha izquierda, seguía siendo compatible para separar las especificaciones de destino y origen.
El origen y el destino eran cadenas de especificación de archivos . Estas consistían en un nombre de dispositivo, normalmente 2 caracteres para el tipo de dispositivo, como DK (disco), LP (impresora de línea), MT (cinta magnética), etc., y un número de unidad del 0 al 7, dos puntos (:), nombre de archivo y extensión.
En general, se permitía copiar archivos entre cualquier especificación de archivo y cualquier otra cuando tuviera sentido.
Las primeras versiones de VAX/VMS implementaban ciertos comandos DCL , como DIRECTORY y RENAME , ejecutando RSX-11M PIP en modo de compatibilidad. Este uso de PIP fue reemplazado por código específico de VAX en VAX/VMS 2.0, [ 5 ] pero PIP se mantuvo como parte del producto en capas VAX-11 RSX para VMS. [ 6 ]
A mediados de la década de 1980, el protocolo PIP todavía se utilizaba comúnmente en los sistemas TOPS-10 , TOPS-20 y PDP-11 .
PIP en CP/M y MP/M

PIP.CMDen CP/M-86
PIPcomando en DOS Plus para crear un archivo de texto a partir de la entrada de la consola CON:Gary Kildall , quien desarrolló CP/M y MP/M , basó gran parte del diseño de su estructura de archivos y procesador de comandos en sistemas operativos de Digital Equipment, como RSTS/E para el PDP-11. Además de acceder a archivos en un disquete , el comando PIP en CP/M también podía transferir datos hacia y desde los siguientes "archivos especiales":
- CON: — consola (entrada y salida)
- AUX: — un dispositivo auxiliar. En CP/M 1 y 2, PIP usaba PUN: (perforadora de cinta de papel) y RDR: (lector de cinta de papel) en lugar de AUX:
- LST: — lista el dispositivo de salida, normalmente la impresora
- PRN: — igual que LST: , pero las líneas estaban numeradas, las pestañas expandidas y se añadían saltos de página cada 60 líneas.
- NUL: — dispositivo nulo, similar a \Device\Null y /dev/null
- EOF: — dispositivo de entrada que produjo caracteres de fin de archivo , ASCII 0x1A
- INP: — dispositivo de entrada personalizado, por defecto el mismo que EOF:
- PUN: — unidad de tarjeta perforada
- SALIDA: — dispositivo de salida personalizado, por defecto el mismo que NUL:
Estos no eran archivos de dispositivo propiamente dichos , ya que su manejo se limitaba a la función PIP. Los dos dispositivos personalizados INP: y OUT: se implementaron como llamadas a ubicaciones fijas al inicio del programa PIP; la intención era que el usuario, o el fabricante de equipos originales (OEM ), pudiera modificar estas ubicaciones para agregar sus propios dispositivos de entrada o salida. Se dejaron 246 bytes de espacio libre en el programa para este propósito.
Además de la PIP destination=sourcesintaxis habitual, PIP en CP/M aún permitía el PIP destination_sourceformato antiguo. Este comportamiento no estaba documentado, y CP/M generalmente no tenía un estándar sobre qué caracteres podían aparecer en los nombres de archivo; por lo tanto, otros programas podían crear, y de hecho creaban, nombres de archivo que contenían caracteres de guion bajo, los cuales PIP no podía procesar.
Nombres de archivo reservados en Microsoft Windows
El programa PIP es la razón de los nombres de archivo reservados en Microsoft Windows: CONPRNAUXNULCOM0COM1COM2COM3COM4COM5COM6COM7COM8COM9LPT0LPT1LPT2LPT3LPT4LPT5LPT6LPT7LPT8LPT9. Esta limitación no distingue entre mayúsculas y minúsculas, y también se aplica a los nombres base. Por lo tanto, por ejemplo, Con.txtes un nombre de archivo no válido.
Véase también
- copy (comando) – Comando para copiar datos en RT-11, RSX-11, OpenVMS, AmigaOS, DOS, OS/2 y Microsoft Windows.
- cp (Unix) – Comando Unix para copiar datos
- Kermit (protocolo)
Referencias
- Software CP/M
- utilidades de copia de archivos