go-pipe - 背景

歴史的経緯

パイプの発明

1973年、Douglas McIlroy が UNIX にパイプを導入しました。これは「一つのことをうまくやる」という UNIX 哲学の核心となる機能です。

# パイプの誕生により可能になった
cat file | grep pattern | sort | uniq

シェルの進化

パイプの導入により、小さなプログラムを組み合わせて複雑な処理を行う「UNIX 哲学」が確立されました。

コンピュータサイエンス的な意味

パイプの内部構造

パイプはカーネル内の循環バッファです:

[プロセス1] --write--> [カーネルバッファ] --read--> [プロセス2]

ファイルディスクリプタ

FD 説明
0 標準入力(stdin)
1 標準出力(stdout)
2 標準エラー(stderr)

リダイレクトの仕組み

// dup2 でファイルディスクリプタを複製
syscall.Dup2(pipeRead, 0)   // stdin をパイプに
syscall.Dup2(pipeWrite, 1)  // stdout をパイプに

実践での活用

  • ログ処理パイプライン
  • データ変換
  • フィルタリング処理