CTSS (Compatible Time-Sharing System)とは
CTSS(Compatible Time-Sharing System、互換
タイムシェアリングシステム)は、
マサチューセッツ工科大学(MIT)計算センターで開発された、世界で初めて実用化された
タイムシェアリングシステムの一つです。
1961年に最初のデモンストレーションが行われ、1973年までMITで運用されていました。当時、MITのProject MACにもCTSSの2号機が設置されましたが、他の機関で採用されることはありませんでした。CTSSに関する論文は、1962年の春季合同コンピュータ会議で発表されています。
概要
CTSSの名称にある「Compatible(互換)」とは、当時の標準的な
バッチ処理OSであったIBM 7094のFORTRAN Monitor System (FMS)との互換性を意味しています。CTSSは、バックグラウンド機能として、仮想的な7094上でFMSをそのまま実行することができました。ハードウェアの完全な仮想化は実現されていませんでしたが、バックグラウンドで実行されるFMSジョブは、磁気テープへのアクセスを問題なく行うことができました。また、フォアグラウンドで実行される
プロセスを妨害したり、リソースを奪うこともありませんでした。
CTSSは、その後のコンピュータ技術に大きな影響を与えました。タイムシェアリングが可能であることを実証し、コンピュータの新たな重要な用途を切り開きました。特に、その後の
タイムシェアリングシステム(CP/CMSなど)に多大な影響を与え、CTSSの後継であるMulticsは、現代の
オペレーティングシステムの基本概念の多くを生み出すこととなりました。
特徴
CTSSには、世界初のコンピュータ化された組版ユーティリティの一種であるRUNOFFが搭載されていました。これは、今日のワープロソフトのルーツとも言えます。
また、CTSSには世界初のユーザー間のメッセージ通信機能が実装されており、これが
電子メールの発祥の一つとされることもあります。この機能により、ユーザー同士が効率的に情報交換を行えるようになりました。
MIT計算センターの職員であったルイ・プザンは、CTSS向けにRUNCOMというコマンドを開発しました。これは、ファイルに記述されたコマンド群を実行するもので、
UNIXの
シェルスクリプトの原型とされています。RUNCOMには、パラメータ置換機能も実装されており、より柔軟なコマンド実行を可能にしていました。
実装
CTSSは、改造されたIBM 7094メインフレームを使用していました。32,768ワード(36ビット)の
磁気コアメモリを2バンク搭載しており、通常は1バンクを使用していました。1バンクはタイムシェアリング管理プログラムが使用し、もう1バンクはユーザープログラム群が使用していました。32Kのうち、27Kがユーザーによって利用され、残りの5Kがモニター用に予約されていました。
CPUの割り当ては、
多段フィードバックキュー方式によって制御されていました。また、特殊なメモリ管理ハードウェア、クロック割り込み機能、特定の命令をトラップする機能なども実装されていました。入出力ハードウェアは、ほとんどがIBMの標準品でした。
6本のデータチャネルには、以下のデバイスが接続されていました。
プリンタ、
パンチカードリーダ、パンチャー
IBM 729 磁気テープ装置、IBM 1301 ディスク記憶装置(後に3800万ワードの容量を持つ IBM 1302 にアップグレード)
IBM 7320
磁気ドラムメモリ(容量は186Kワードで、1秒で32Kメモリバンクをロード可能。後に、1/4秒まで高速化)
2つの独自高速ベクターグラフィックディスプレイ
* IBM 7750 伝送制御装置(112台の
テレタイプ端末を接続可能)。端末にはIBM 1050やModel35
テレタイプ端末などが使用され、一部の端末は遠隔地に設置され、公衆
テレックス回線で接続されていました。
影響
Project MACでは、CTSSの後継として1960年代にMulticsの開発が開始されました。Multicsは、1969年に
UNIXが開発される要因の一つとなりました。例えば、「デーモン」という用語はCTSS発祥であり、
UNIXにまで受け継がれました。
また、ITS(
Incompatible Timesharing System)もMITで開発された、初期の革新的な
タイムシェアリングシステムの一つです。これは、Multicsの方向性を良しとしない人々によって開発され、名称はCTSSのパロディとなっています。
CTSSは、その後のコンピュータ技術の発展に大きな影響を与えたシステムであり、現代の
オペレーティングシステムやネットワーク技術の基礎を築いたと言えるでしょう。