PWB/
UNIXは、
UNIXオペレーティングシステムの初期段階において、
AT&Tベル研究所で開発された重要なバリエーションの一つです。PWBとは「Programmer's Workbench(
プログラマの仕事台)」の略であり、その名の通り、
プログラマーの作業効率向上を目的としたシステムでした。
1976年以前、
ベル研究所における
UNIX開発は、少数の研究者によって細々と進められていました。しかし、
UNIXの使いやすさが広く認識されるようになると、研究目的だけでなく、
プログラマーをサポートする実用的なツールとしての開発が求められるようになりました。この背景から、1973年にエバン・アイビーとラッド・キャナディが、
ベル研究所の関連部門に所属する1000人の従業員をサポートするためのコンピュータセンターを構築するプロジェクトを開始しました。このプロジェクトが、PWB/
UNIX開発の始まりであり、その後数年間、世界最大の
UNIXサイトとして運用されました。
「Programmer's Workbench」という名前が示すように、PWB/
UNIXは、
プログラマーのチームがソースコードを効率的に管理したり、他のチームと連携して作業するための様々なツールを提供することを目指していました。当時、
UNIX上でプログラムのソースコードを管理していても、実際にプログラムが動作するのは別の古い
オペレーティングシステム上である場合が多かったため、PWBには
IBMのSystem/370や
UNIVAC 1100シリーズといったシステムの
バッチ処理システムにジョブを投入する機能も搭載されていました。1978年には、PWBは
ベル研究所の企業情報システムプログラム部門の1100人ものユーザーコミュニティを支えるまでに成長しました。
PWB/
UNIXのメジャーリリースは、Version 6 Unixをベースとした1.0が1977年7月1日に、
Version 7 Unixをベースとした2.0が1978年にリリースされました。PWB/
UNIXの主要な機能は、その後の商用
UNIXである
UNIX System IIIや
UNIX System Vにも導入され、
UNIXの発展に大きく貢献しました。
PWB/UNIXの主な新機能
PWB/
UNIXには、以下のような特筆すべき新機能が搭載されました。
Source Code Control System (SCCS):マーク・J・ロックカインドによって開発された初期の
バージョン管理システムの一つです。ソースコードの変更履歴を管理し、複数人での開発を効率的に行うための基礎となりました。
リモートジョブエントリ:異なるシステム間でジョブを投入する機能です。これにより、
UNIX上で開発したプログラムを他のシステムで実行することが容易になりました。
PWB Shell:ジョン・R・マッシーによって開発されたシェルで、スティーブン・ボーンの
Bourne Shellよりも古いものです。PWB環境におけるコマンド実行の中心的な役割を果たしました。
Restricted shell (rsh):PWB Shellのオプションとして提供された、制限付きシェルです。特定のコマンドのみを実行できるようにすることで、セキュリティを強化しました。
troffの-mm (memorandum)マクロパッケージ:ジョン・R・マッシーとデール・W・スミスによって開発された、文書作成用のマクロパッケージです。これにより、技術文書などを効率的に作成できるようになりました。
makeユーティリティ:プログラムのビルドプロセスを自動化するツールです。多数のソースファイルからプログラムを作成する際に、コンパイルやリンクの順序を自動的に管理し、開発効率を大幅に向上させました。
find、cpio、expr、xargs、egrep、fgrepといったユーティリティ:ファイル検索、アーカイブ作成、文字列処理など、
UNIX環境で広く使われる便利なコマンド群が提供されました。
yaccとlex:PWBのために特別に開発されたわけではありませんが、PWBの一部として
ベル研究所外に最初に公開されたことで、
UNIXの世界に広く普及しました。yaccはコンパイラを、lexは字句解析器を生成するツールとして、プログラミング開発に大きく貢献しました。
PWB/
UNIXは、当時のプログラミング開発環境を大きく変革し、その後の
UNIXの発展に重要な役割を果たしました。特に、ソースコード管理やビルド自動化といった概念は、現代のソフトウェア開発においても不可欠なものとなっています。