Peripheral Interchange Program

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

Peripheral Interchange ProgramPIP)は、DEC製コンピュータにおけるデータファイル転送ユーティリティ。1960年代に PDP-6 上で最初に実装された。その後、PDP-10PDP-11 にも実装されている。

歴史[編集]

PIP は当初 ATLATL("Anything Lord to Anything Lord" の略)と呼ばれていた。この名称はデバイスに依存しないファイルコピーツールであることを示している。

紆余曲折を経て、以下のような構文に落ち着いた。

PIP destination=source

この語順は一般的な英語の語順とは逆である。そのため、PDPマシン上の数あるユーティリティの1つとして、次のようなコマンド構文も生まれた。

COPY source destination 

しかし取って代わられたわけではなく、1980年代中ごろにも PIP は普通に使われていた。

CP/M での PIP[編集]

ゲイリー・キルドールCP/M で PIP とファイルのコンセプトをRSTS/Eなどから流用した。フロッピーディスク上のファイルにアクセスするだけでなく、CP/M の PIP は以下のような「スペシャルファイル」間でデータ転送が可能だった。

  • CON:コンソール (入出力)
  • AUX: — 補助デバイス。CP/M 1 および 2 では、AUX: ではなく PUN: (紙テープパンチ)と RDR: (紙テープリーダー)を用いていた。
  • LST: — リスト出力デバイス。通常はプリンター
  • PRN: — LST: と同じ。ただし、行番号が付与され、タブ文字が拡張され、60行毎にフォームフィードが付与される。
  • NUL: — ヌルデバイス。入力としては /dev/zero、出力としては /dev/null として機能する。
  • EOF:End Of File 文字(ASCII 0x1A)を生成する入力デバイス
  • INP: — カスタム入力デバイス。デフォルトでは EOF: と同じ。
  • OUT: — カスタム出力デバイス。デフォルトでは NUL: と同じ。

これらはPIPでしか使えないため、真のスペシャルファイルではない。2つのカスタムデバイスは、PIPプログラムの先頭から固定の位置に呼び出しコードが実装されていた。これは、ユーザーやOEMがその位置にパッチを当てることで独自の入出力機器をサポート可能とすることを意図していた。プログラム内にはそのための246バイトの空き領域が用意されていた。

CP/M では PIP destination=source という構文だけでなく、PIP destination_source という構文もあった。これは、端末によっては '_' を左向きの矢印で表示するものがあったためである。つまり、PIP destination←source のように表示された。これは文書には明記されておらず、CP/M ではファイル名に使える文字の種類が明確に定義されていなかった。このため、アンダースコアを使ったファイル名もエラーにはならず、そのようなファイルはPIPでうまく扱えない。

関連項目[編集]