互換タイムシェアリングシステム(CTSS)は、最初の汎用タイムシェアリングオペレーティングシステムでした。[ 2 ] [ 3 ]互換タイムシェアリングは、バッチ処理と互換性のあるタイムシェアリングであり、両者は同時に動作します。
CTSSはMIT計算センター(以下「コンプセンター」)で開発されました。CTSSは1961年11月にMITの改造IBM 709上で初めてデモンストレーションされました。1962年にはハードウェアが改造IBM 7090に置き換えられ、その後、Project MAC CTSSのIBM 7094と区別するために「ブルーマシン」と呼ばれる改造IBM 7094に置き換えられました。MITコンプセンターのユーザーへの定期サービスは1963年の夏に開始され、1968年まで運用されました。
1963 年 10 月に受領した別の IBM 7094 (「赤いマシン」) に CTSS を 2 番目に展開したものは、プロジェクト MACの初期に使用され、1969 年に赤いマシンが情報処理センターに移設され[ 4 ] 、1973 年 7 月 20 日まで運用されました。CTSS はこれら 2 台のマシンでのみ動作しましたが、カリフォルニア、南米、エジンバラ大学、オックスフォード大学など、MIT 以外の遠隔地にも CTSS ユーザーがいました。[ 1 ] [ 5 ]
ジョン・バッカスは、1954年のMIT夏季講習会で、「タイムシェアリングによって、大型コンピュータを複数の小型コンピュータとして使用できる。各ユーザーごとに閲覧ステーションが必要になるだろう」と述べた。[ 6 ]当時のコンピュータ、例えばIBM 704などは、そのようなシステムを実装するのに十分な性能を持っていなかったが、1958年末、MITの計算センターは、プログラマーやオペレーターが「同時にマシンを使用している他のプログラムとタイムシェアリング方式でマシンから追加の回答を取得できる」ようにする意図で、704にタイプライター入力を追加した。[ 7 ]
1959年6月、クリストファー・ストラッチーはパリで開催されたユネスコ情報処理会議で「大型高速コンピュータにおけるタイムシェアリング」という論文を発表し、コンピュータに接続されたコンソール(テレタイプのようなもの)でプログラマーがプログラムをデバッグしている間、コンピュータ内で別のプログラムが同時に実行されることを想定した。[ 8 ] [ 9 ]当時、バッチ処理では変更したコードを提出してから結果を得るまでに1日かかることが多かったため、プログラムのデバッグは重要な問題だった。
ジョン・マッカーシーがMITでその件に関するメモを作成したことをきっかけに、MITに予備調査委員会、そして作業委員会が設立され、タイムシェアリングの開発に着手した。これらの委員会は、多数のユーザーが同時にコンピュータを使用することを想定し、MITにおけるシステム実装の詳細を決定し、システムの開発を開始した。
1961 年 7 月までに[ 10 ]いくつかのタイムシェアリング コマンドが計算センターの IBM 709 で動作可能になり、1961 年 11 月にはFernando J. Corbató がMIT で実験的タイムシェアリング システムと呼ばれるものを実演しました。1962 年 5 月 3 日、FJ Corbató、MM Daggett、RC Daley は春の合同コンピュータ会議でそのシステムに関する論文を発表しました。[ 11 ] "[CTSS システムの大部分は、Marjorie M. Daggett 夫人、Robert Daley 氏、Robert Creasy 氏、Jessica Hellwig 夫人、Richard Orenstein 氏、FJ Corbató 教授によって準備されました。" [ 8 ] [ 12 ]
このシステムは、ハーバート・M・ティーガーによって改造されたIBM 7090を使用しており、ユーザーコンソール用に3台のFlexowriterとタイマーが追加されていた。3人のユーザーそれぞれに2台のテープユニットがあり、1台はユーザーのファイルディレクトリ用、もう1台はコア(メモリ内のプログラム)のダンプ用だった。システムコマンド用のテープユニットも1台あり、ディスクドライブはなかった。メモリは、ユーザー用に27kワード(36ビットワード)、スーパーバイザー(オペレーティングシステム)用に5kワードだった。
コンソールからの入力は割り込みによってスーパーバイザのバッファに書き込まれ、戻り文字が受信されると制御はスーパーバイザに渡され、スーパーバイザは実行中のコードをテープにスワップアウトし、次に何を実行するかを決定した。当時実装されていたコンソールコマンドは、login、logout、input、edit、fap、mad、madtrn、load、use、start、skippm、listf、printf、xdump、xundumpであった。[ 11 ]
これが互換タイムシェアリングシステム(CTSS)の初期バージョンとなった。これはタイムシェアリングの史上初の公開デモンストレーションだったとみられる。他にも同様の主張はあるものの、それらは特殊用途システムに関するものか、あるいは論文として発表されたものは知られていない。CTSSの「互換性」は、同じコンピュータ上で実行されるバックグラウンドジョブとの互換性に関するものであり、バックグラウンドジョブは一般的にタイムシェアリング機能よりも多くの計算リソースを消費していた。
DOTSYS点字翻訳ソフトウェアの最初のバージョンはCTSS上で動作し、BRAILLEMBOSS点字ページプリンタに出力できた。[ 13 ] [ 14 ] CTSS上のDOTSYSは、ニュース形式のテレタイプセッターテープをグレード2点字に変換する実現可能性調査の一環として、1966年8月18日に初めて実証された。翌月には、テレタイプセッターテープ上の教科書情報をエラーのないグレード2点字に変換する実現可能性が実証された。[ 15 ]
MIT CTSS は学術システムであり、商用コンピューティング用のシステムではなく研究用システムであったため、2 年後、ソフトウェアの移植性のために CTSS の依存関係を取り除いた DOTSYS のバージョンが、アメリカ盲人印刷所の IBM 709 で使用され、テレタイプセッター入力から作成された書籍の最初の点字版が、インクジェット印刷版のわずか 数週間後に印刷されました。[ 16 ]翌年、CTSS 上で、点字での数表の印刷のデモンストレーションが行われました。短いFORTRAN IIプログラムが作成され、BRAILLEMBOSS 点字ページプリンタを介して、インチからミリメートルへの変換表を点字で作成しました。[ 17 ]

Intrex Retrieval System は CTSS 上で動作しました。Intrex は、約 15,000 件のジャーナル記事のカタログを格納するデータベースを備えた、実験的なパイロットモデルの機械指向の書誌ストレージおよび検索システムでした。これは、図書館の自動化の概念を開発およびテストするために使用されました。[ 18 ] [ 19 ] [ 20 ] MIT エンジニアリング ライブラリーでのテスト用に 3 台の BRISC CRTコンソールを展開した結果、ARDS および DATEL という他の 2 つのシステムよりも好ましいことがわかりました。[ 21 ]
CTSS は、デフォルト構成では 1 つしか提供されないコア メモリバンクが 2 つあるように、32,768 (32K) の 36 ビットワードバンクを持つ改良型 IBM 7090 メインフレーム コンピュータ[ 28 ]を使用しました。 [ 29 ] [ 30 ] 1 つのバンクはタイム シェアリング監視プログラム用に予約され、もう 1 つはユーザー プログラム用に予約されました。 CTSS は保護モード カーネルを持ち、A コア (メモリ バンク A) の監視機能の関数は、現代のオペレーティングシステムと同様に、ソフトウェア割り込みによってのみ呼び出すことができました。ソフトウェア割り込みには、メモリ保護割り込みが使用されました。[ 8 ] 200 ms の量子時間単位を持つプロセッサ割り当てスケジューリングは、マルチ レベル フィードバック キューによって制御されました。[ 29 ]また、特別なメモリ管理ハードウェア[ 31 ] 、クロック割り込み[ 32 ]、および特定の命令をトラップする機能も備えていました。[ 31 ]
CTSSは当初、アセンブラ(FAP )とMAD言語用のコンパイラのみを備えていました。また、MADTRNを使用することでFORTRAN IIコードをMADコードに変換することも可能でした。その後、システムの半分がMADで記述されるようになりました。COMIT II、LISP 1.5、ALGOLのバージョンなど、他のプログラミング言語も追加されました。
各ユーザーはデータ保存用の専用ディレクトリを持ち、同じ「問題番号」を持つグループ向けに共有ディレクトリも用意されていました。各ファイルは2部構成の名前を持ち、2番目の部分はファイルの種類を示していました。後のシステムではファイル名の拡張子も同様でした。当初、各ファイルには一時的、永続的、読み取り専用クラス1、読み取り専用クラス2の4つのモードがありました。読み取り専用クラス1では、ユーザーがファイルのモードを変更できました。ファイルはディレクトリ間でシンボリックリンクすることもできました。listfによるディレクトリ一覧の例:
10ファイル、20トラック使用 日付 名前 モード トラック数 1963年5月20日 メインマッド P 15 1963年5月17日 DPFA SYMTB P 1 1963年5月17日 DPFA BSS P 1 1963年5月17日 DPFA FAP P 2
入出力ハードウェアは、ほとんどが標準的なIBM周辺機器でした。これには、以下に接続する6つのデータチャネルが含まれていました。
CTSSは1962年春の合同コンピュータ会議で発表された論文で説明され、他の初期のタイムシェアリングシステムの設計に大きな影響を与えた。
モーリス・ウィルクスはCTSSを目撃し、タイタン・スーパーバイザーのデザインはそれに触発された。[ 34 ] [ 35 ]
また、Project MACによって開発されたMulticsは、1960年代にCTSSの後継として開始され、1969年にはUnixの開発に影響を与えました。デニス・リッチーは1977年に、UnixはCTSSの「現代的な実装」と見なすことができると書いています。[ 36 ] これらの後継システムがCTSSから受け継いだ技術用語の1つにデーモンがあります。
互換性のないタイムシェアリングシステム(ITS) は、初期の革新的で影響力のある MIT のタイムシェアリングシステムであり、CTSS や後に Multics の方向性に反対した人々によって作成されました。その名前は「CTSS」のパロディであり、後に「Unix」という名前が「Multics」のパロディになったのと同様です。[ 37 ] CTSS と ITS ファイルシステムには、多くの設計要素が共通しています。どちらも MFD (マスター ファイル ディレクトリ) と 1 つ以上の UFD (ユーザー ファイル ディレクトリ) を持ちます。どちらもネストされたディレクトリ (サブ ディレクトリ) をサポートしていません。どちらもファイル名は最大 6 文字の 2 つの部分から構成されています。どちらもリンク ファイルをサポートしています。[ 5 ]
私は最初のタイムシェアリングシステムであるCTSSを使用していた。
タイムシェアリング分野の初期開発の多くは大学キャンパスで行われた。8注目すべき例として
は
、MITのCTSS (Compatible Time-Sharing System) があり、これは最初の汎用タイムシェアリングシステムであった...
{{cite book}}ISBN /日付の不一致(ヘルプ)システムとそのコマンドについて説明します呼ばれる)の開発が進められていた…。
におけるテレタイプセッターによる2級点字への変換の実演
これらのプログラムは、元々は MIT の CTSS システムで動作するように作成されましたが、アメリカ盲人印刷所の 709 名用に修正されました。これには、CTSS に依存するプログラムの部分を書き直すことが含まれていました。
1971 年 9 月 27 日以降、BRISC はエンジニアリング ライブラリーのステーションで 1 日 2 時間利用可能となっています。
ログインしているユーザーにメッセージを即座に送信するという基本的な概念は、CTSSとともに登場しました。
コンソールの機能には、3次元線画のハードウェア投影、自動ライトペン追跡、柔軟なノブ、スイッチ、プッシュボタン入力セットが含まれます。コンソールは、Project MAC IBM 7094互換タイムシェアリングシステムに直接、またはPDP-7コンピュータを介して接続されます。
今日ではモーリス卿として知られる彼は、CTSSに触発されて時間共有システムを考案した。
モーリス・ウィルクスは1965年頃、MITを訪れた際にCTSSを発見し、ケンブリッジに戻って、タイムシェアリングこそが未来への道だと私たちに説得した。