『Unixプログラミング環境』は、1984年にプレンティス・ホール社から初版が出版された書籍で、ベル研究所のブライアン・W・カーニハンとロブ・パイクによって書かれ、 Unixオペレーティングシステムの重要かつ初期の文書とみなされている。
本書は、標準化された入力と出力を備えた、小さく協調するツールのUnix哲学について論じています。カーニハンとパイクは、Unixの設計とUnix哲学について簡単に説明しています。[ 1 ]
UNIXシステムは数々の革新的なプログラムや技術を導入していますが、単一のプログラムやアイデアだけでその性能が決まるわけではありません。むしろ、その有効性を支えているのは、プログラミングへのアプローチ、つまりコンピュータの使い方に関する哲学です。その哲学をたった一文で言い表すことはできませんが、その核心は、システムの力は個々のプログラムそのものよりも、プログラム間の関係性から生まれるという考え方にあります。多くのUNIXプログラムは単独ではごく些細なことしか実行しませんが、他のプログラムと組み合わせることで、汎用的で便利なツールとなるのです。
著者らはさらに、本書の目的は「UNIXプログラミングの哲学を伝えること」だと述べている。[ 1 ]
本書は、初心者向けのUnix入門から始まります。次に、ファイルシステムとシェルの基本について解説します。読者は、フィルタの使用方法から、堅牢なUnixアプリケーションをプログラミングするためのC言語の使用方法、 grep、sed、make、AWKの基本まで、幅広いトピックを順を追って学ぶことができます。本書の最後には、yaccを使ったプログラミング言語パーサーの作成方法、 troffとmsおよびmmを使ったドキュメントのフォーマット方法、プリプロセッサであるtbl、eqn、picの使い方、manマクロセットを使ったmanページの作成方法に関するチュートリアルが掲載されています。付録では、edエディタと、前述のプログラミング言語であるhoc(「高階計算機」の略)について解説しています。
本書の出版から数十年経った今でもUnixは存在しているが、本書で描かれているUnixは既に成熟した状態にある。1984年当時、Unixは既に15年間(1969年から)開発が続けられており、10年前には査読付き学術誌(SOSP、1974年、「The UNIX Timesharing System」)に掲載され、少なくとも7つの公式マニュアル版が出版されていた(Version 7 Unixを参照)。1984年には既にいくつかの商用および学術的なUNIX派生版が存在し(例:Xenix、SunOS、BSD、UNIX System V、HP-UX)、その1年前にはデニス・リッチーとケン・トンプソンがUNIXに関する業績で権威あるチューリング賞を受賞していた。本書はUNIXが黎明期にあった時ではなく、既に多くの新規ユーザーに向けて書籍として出版するに値するほど普及していた時期に書かれたのである。
振り返ってみると、1984年はUnixの進化の初期段階ではなかっただけでなく、少なくともベル研究所においては、ある意味でUnixの進化の終焉でもあった。重要なUNIXの派生版は、それ以前にAT&Tの研究用Unixから分岐していた。System Vは1983年に公開され、BSDは1979年のUnix第7版をベースにしており、ほとんどの商用Unix派生版はSystem V、BSD、またはその両方の組み合わせをベースにしていた。第8版Unixはこの本の直後に登場し、ベル研究所でのUNIXのさらなる開発(第9版と第10版)は、ベル研究所の取り組みがPlan 9 from Bell Labsへと発展するまで、ベル研究所の外には広まらなかった。
本書はANSI Cが最初に草案される前に執筆されたため、掲載されているプログラムは旧来のK&Rスタイルに準拠しています。ただし、本書のウェブサイトで公開されているソースコードは、ANSI Cに準拠するように更新されています。
Linux Voiceのテクニカルエディターであるベン・エバラードは、 30年前の本であるにもかかわらず関連ドキュメントを提供していること、そしてLinuxについてあまり知らない意欲的なプログラマーにとって良い本であることを高く評価した。[ 2 ]