この記事では、 IBMタイムシェアリング仮想マシンオペレーティング システムが構築された歴史的背景であるCP/CMS の歴史について説明します。
CP/CMS の開発は、複雑な政治的および技術的環境の中で行われました。
以下の歴史的注釈には、直接観察した人々からの裏付けとなる引用と引用文が記載されています。
60 年代前半: CTSS、初期のタイムシェアリング、およびプロジェクト MAC
第一世代のタイムシェアリングシステムはCTSSで、1961年にMITで初めて実証され、1964年から1974年にかけて実稼働で使用されました。 [1] Multics、CP/CMS 、その他すべてのタイムシェアリング環境への道を開きました。タイムシェアリングの概念は、特に科学計算のニーズを満たす方法として、1950年代後半に初めて明確にされました。当時、コンピュータは主にバッチ処理に使用されていました。つまり、ジョブはパンチカードで送信され、順番に実行されていました。タイムシェアリングにより、ユーザーはコンピュータと直接対話できるようになり、計算やシミュレーションの結果をすぐに確認できるようになりました。
科学分野のユーザーはタイムシェアリングという概念をすぐに受け入れ、IBMなどのコンピュータベンダーにタイムシェアリング機能の向上を迫った。 MITの研究者たちが先頭に立ってプロジェクト MAC を立ち上げた。これは次世代のタイムシェアリング技術を開発することを目的としており、最終的にはMulticsを構築することとなった。Multicsは極めて機能豊富なタイムシェアリングシステムであり、後にUNIXの初期開発のきっかけとなった。[2]この著名な一流コンピュータ科学者のチームは、非常に具体的な技術推奨事項と要件を作成し、新しいシステムに適したハードウェアプラットフォームを探した。技術的な問題は大変だった。初期のタイムシェアリングシステムのほとんどは、インタープリタや制限された実行コンテキストを介してアクセスされるDartmouth BASICなどの新しい言語や修正された言語をユーザーに提供することでこれらの問題を回避していた。しかしプロジェクト MAC のビジョンは、汎用コンピューティングへの共有された無制限のアクセスだった。
IBM は他のベンダーとともに Project MAC に提案書を提出しました。しかし、IBM の提案は受け入れられませんでした。IBM にとって意外なことに、MIT はMultics システム ベンダーとしてGeneral Electric を選択しました。この出来事の余波は CP/CMS に直接つながりました。
IBM と System/360
60 年代初頭、IBM は技術的な方向性を定めるのに苦労していました。同社は、過去のコンピュータ製品に問題があったことを認識していました。それは、多くの IBM 製品と製品ライン間の非互換性です。新しい製品ファミリーや新しいテクノロジの世代ごとに、顧客はまったく新しい一連の技術仕様と格闘することを余儀なくされました。IBM 製品には、さまざまなプロセッサ設計、メモリ アーキテクチャ、命令セット、入出力戦略などが組み込まれていました。もちろん、これは IBM に限ったことではありません。すべてのコンピュータ ベンダーは、新しいシステムを「白紙」設計から始めているようでした。IBM はこれを問題であると同時にチャンスであると見なしていました。ソフトウェア移行のコストは、ハードウェア販売の障壁となっていました。顧客にはコンピュータをアップグレードする余裕がなく、IBM はこの状況を変えたいと考えていました。
IBM は、非常にリスクの高い事業に着手しました。それがSystem/360です。この製品ラインは、IBM 7000シリーズ、キャンセルされたIBM 8000シリーズ、IBM 1130シリーズ、科学技術やその他の用途に使用されるさまざまな専用マシンなど、IBM の以前の多様な製品を置き換えることを目的としていました。System/360 は、前例のない範囲の処理能力、メモリ サイズ、デバイス サポート、およびコストを網羅していました。さらに重要なことは、下位互換性を約束していたため、どの顧客もソフトウェアを変更せずに新しいシステムに移行できました。今日の標準インターフェイスとポータブル システムの世界では、これはそれほど過激な目標ではないと思われるかもしれませんが、当時は革命的でした。System/360 以前は、各コンピュータ モデルに、他のシステムでは使用できない独自のデバイスとプログラムがあることがよくありました。より大きな CPU を購入するということは、新しいプリンタ、カード リーダー、テープ ドライブなども購入することを意味しました。さらに、顧客は新しい CPU で実行するためにプログラムを書き直す必要があり、これに顧客が躊躇することが多かったのです。 IBM は、S/360 で、単一のプロセッサ アーキテクチャ、命令セット、I/O インターフェイス、およびオペレーティング システムを共有する、幅広いコンピュータ システムを提供したいと考えていました。顧客は、現在のニーズに合わせて「組み合わせて」使用することができ、将来、ソフトウェア アプリケーションをすべて書き直すことなく、自信を持ってシステムをアップグレードできます。IBM は、従来の顧客ベース、つまり管理およびビジネス データ処理を行っている大規模な組織に重点を置き続けました。
System/360 プロジェクトの開始時、IBM はそれに伴うリスクの大きさを十分に理解していませんでした。System/360 は最終的に IBM にコンピュータ業界における完全な支配力をもたらしましたが、当初は IBM を倒産寸前まで追い込みました。IBM は史上最大かつ最も野心的なエンジニアリング プロジェクトの 1 つを引き受け、その過程で規模の不経済性と人月という神話を発見しました。フレッド ブルックスによるものなど、この時代に関する膨大な文献は、落とし穴を説明しています。
System/360 パニックの時期に、Project MAC は IBM にコンピュータに広範なタイムシェアリング機能を提供するよう依頼しました。これは System/360 プロジェクトの方向性ではありませんでした。IBM の主な顧客ベースにとってタイムシェアリングは重要とはみなされておらず、バッチ処理が重要でした。さらに、タイムシェアリングは新しい分野でした。仮想メモリなど、関連する概念の多くは未検証のままでした。たとえば、当時は、問題のあるManchester/Ferranti Atlas仮想メモリが「機能しない」理由を説明できる人は誰もいませんでした。[ 3] [a]これは後に、CP/CMS およびM44/44X の研究に基づいて、スラッシングが原因であると説明されました。その結果、1964 年 4 月の IBM の System/360 発表には、タイムシェアリング支持者が求めていた重要な要素、特に仮想メモリ機能が含まれていませんでした。Project MAC の研究者はこの決定に打ちのめされ、怒りを覚えました。System/360 設計チームは Project MAC の研究者と会い、彼らの反対意見に耳を傾けました。しかしIBMは別の道を選びました。
1964 年 2 月、これらのイベントが最高潮に達したとき、IBM はノーム・ラスムッセンを責任者とするケンブリッジ サイエンティフィック センター(CSC) を立ち上げました。CSC は MIT の研究者と IBM の研究所をつなぐ役割を果たすことになっており、プロジェクト MAC と同じ建物内にありました。IBM はプロジェクト MAC の競争に勝ち、科学計算とタイムシェアリングにおける優位性を維持できると確信していました。
CSC の最初のプロジェクトの 1 つは、IBM の Project MAC 提案を提出することだった。IBM は、MIT が GE の提案に傾いているという情報を得ていた。GE の提案は、仮想メモリ ハードウェアやその他の機能強化を備えた 600 シリーズ コンピュータの改良版であり、これが最終的にGE 645となった。IBM は、S/360 用に設計されたが S/360 には含まれていなかったコンポーネントである「Blaauw Box」と呼ばれる仮想メモリデバイスを含む、改良版 S/360 を提案した。MIT チームは IBM の提案を拒否した。改良版 S/360 は、S/360 ラインの他の製品とはあまりにも異なると思われた。MIT は、MULTICS用にカスタマイズされたコンピュータや専用コンピュータを使用するつもりはなく、広く入手可能なハードウェアを求めていた。GE はタイムシェアリングに多大なコミットメントをする用意があったが、IBM は邪魔者とみなされた。IBM の別の重要な顧客であるベル研究所もすぐに同じ決定を下し、タイムシェアリング用の S/360 を拒否した。
1964~67年: CP-40、S/360-67、TSS
Project MACの喪失はCSC にとって壊滅的な打撃となり、CSC は存在意義を失った。ラスムセンはタイムシェアリングに引き続き取り組み、MIT や他の研究者の信頼を取り戻したいと考えた。そのために彼は大胆な決断を下した。活動休止中の CSC チームは S/360 用のタイムシェアリング オペレーティング システムを構築することとなった。ロバート クリーシーはProject MAC を離れ、CSC チームを率いることになった。チームはすぐにCP-40の開発を開始した。これは完全に仮想化されたハードウェアに基づく初の成功した仮想マシンオペレーティング システムである。 [4]
IBM が Project MAC とベル研究所を失ったことは、IBM の他の部門にも波紋を呼んだ。
- IBM は、顧客のタイムシェアリング要件を満たす満足のいく方法を見つけるために、社内タスクフォースを結成しました。CSC の主要スタッフを含むチームは、MIT 研究者の目標に近い新しい S/360 モデルを設計しました。これがIBM System/360-67となり、1965 年 8 月に発表され、1966 年 7 月に出荷されました。IBM の発表には、新しいタイムシェアリング オペレーティング システムTSS/360も含まれており、楽観的に 1967 年 6 月にリリースされる予定でした。
- IBM は認識された問題を修正し、おそらくは IBM の面目失墜の責任者を処罰するために、開発部門と製造部門を再編した。
CSC はすぐに MIT のリンカーン研究所に S/360-67 の提案を提出し、成功しました。これは MIT における IBM の信頼性の向上を示すものでした。IBM は、カスタマイズされたRPQシステムではなく、「本物の」タイムシェアリング製品にコミットすることで、MIT が GE に見出したのと同じコミットメントを示しました。
CSC は CP-40 の開発も継続したが、これは表面上は S/360-67 チームに研究情報を提供するためであったが、非常に厳しいスケジュールと高い目標を掲げる TSS プロジェクトに対して CSC チームが懐疑的になっていたためでもあった。S/360-67 は CSC がしばらく利用できないことから、チームは独創的な暫定措置を思いついた。それは、独自の仮想メモリ S/360 を構築することだった。彼らは、S/360-40 に実装できるカスタム ハードウェアとマイクロコードの変更のセットを設計し、CP-40 の仮想マシン アーキテクチャをサポートできる同等のプラットフォームを提供した。実際の CP-40 と CMS の開発は、改良された S/360-40 が登場する前の 1965 年半ばに始まった。CP-40 が初めて実用化されたのは 1967 年 1 月であった。
その一方で、TSS プロジェクトは遅れ、問題に悩まされていました。CSC のスタッフは、CP/CMS が S/360 タイムシェアリングに適したアーキテクチャであると確信するようになりました。
1967–68: CP-67
1966 年 9 月、CSC のスタッフは CP-40 と CMS を S/360-67 で実行できるように変換し始めました。CP-67 は CP-40 の大幅な再実装でした。Varian の報告によると、設計は「大幅に一般化され、仮想メモリが大きくなった仮想マシンの数を可変にできるようになった」、新しいデータ構造が「仮想マシンを記述する制御ブロック (これは中核のハードコードされた部分だった) に取って代わった」、CP-67 では「制御ブロックを動的に割り当てることができるように、空きストレージの概念が追加された」、そして「モジュール間のリンクも作り直され、コードが再入可能になった」とのことです。CSC の -67 が届くまでしばらくかかるため、CSC は独自にカスタマイズした S/360-40 のマイクロコードをさらに変更して、特に仮想メモリに対する異なるアプローチを S/360-67 に似せました。[5] CSCは、ハードウェアの不足を補うために、S/360-40の改良版、S/360-67、そして後に最初のS/370プロトタイプを待つ間、シミュレーションを繰り返し、成功裏に使用しました。これは、「仮想マシン」の考え方の論理的な発展と見ることができます。この期間中、CP-67の初期テストは、S/360-67ハードウェアが利用可能な場所、特にIBMのヨークタウンハイツ研究所とMITのリンカーン研究所でも行われました。
リンカーン研究所の CP-67 の観察者たちは、すでに深刻な TSS 問題に苛立っていたが、CP-67 には非常に感銘を受けた。彼らは IBM に CP/CMS のコピーを提供するよう強く求めた。バリアンによると、この要求は TSS に多額の投資をしていた「会社全体を揺るがした」という。しかし、このサイトは非常に重要だったため、IBM はそれに応じた。バリアンらは、この一連の出来事はラスムッセンが「仕組んだ」ものであり、IBM が CSC の「反戦略的」CP/CMS の研究に資金提供し続けるように仕向けるための「口実」だったのではないかと推測している。ラスムッセンは「何度も中止するように言われた」[6] 。
1967 年 4 月、CP-40 が生産に入ってからわずか数か月後、CP/CMS はすでにリンカーン研究所で日常的に使用されていました。リンカーン研究所のスタッフは CSC と緊密に協力して CP/CMS を改良しました。彼らは「CP と CMS が納品されるとすぐに機能強化を開始しました。リンカーンとケンブリッジのスタッフは緊密に協力し、定期的にコードを交換しました」。これが、その後何年も続くことになるコード共有と相互サポートの伝統の始まりでした。ほぼ同時期に、別の有力な IBM 顧客であるユニオン カーバイドも同じ道をたどり、CP/CMS を運用し、CSC にスタッフを派遣して CP/CMS 開発に貢献することを決定しました。[7]
CP-40、CP-67、CMS は、当時の本質的には研究システムであり、IBM の主流製品組織から離れて、外部の研究者が積極的に関与して構築されました。実験は重要な目標であり、継続的な活動でもありました。CP -40 プロジェクトのリーダーであったRobert Creasy は、後に次のように書いています。
CP/CMS の設計は、小規模で多様なソフトウェア研究開発グループによって、そのグループ自身の使用とサポートのために、また、タイムシェアリング システム設計の実験のために行われました。スケジュールと予算、計画とパフォーマンスの目標を満たす必要はありませんでした。また、システムを開始した後、少なくとも 1 回はシステムをやり直すことも想定していました。グループの大半にとって、これは学習体験となるはずでした。効率性は常に考慮されていましたが、ソフトウェア設計の目標としては明確に除外されていました。システムが実用的かどうかはわかりませんでした。1965 年 1 月、システムの開発を開始した後、外部のグループへのプレゼンテーションから、このシステムが議論を呼ぶことが明らかになりました。[8]
一方、TSS は、バリアンが「エレガントで非常に野心的なシステム」と評したが、「あまりにも若くして巣から引き離されたため、深刻な安定性とパフォーマンスの問題」を示していた。 [9] 1968 年 2 月、 SHARE 30 の時点で、18 の S/360-67 サイトが TSS を実行しようとしていた。会議中に、IBM は「ブルーレター」で TSS が廃止されることを発表した。これはタイムシェアリング コミュニティにとって大きな打撃であった。この決定は一時的に覆され、TSS は 1971 年まで廃止されなかった。[b]しかし、CP/CMS はすぐに実行可能な代替手段として注目を集め始めた。
1968~72年: CP/CMSリリース
- 1968 年 5 月: CP/CMS バージョン 1 が 8 つのインストールにリリースされました。6月にIBM タイプ III ライブラリの一部として利用可能になりました。その後すぐに、CP/CMS の再販に基づいて 2 つのタイムシェアリング ビジネス ( National CSSとIDC)が立ち上げられました。これらのベンチャーは CSC、Lincoln Labs、および Union Carbide から主要な人員を採用し、CP/CMS、S/360-67、および仮想メモリの実現可能性に注目を集めました。
- 1969 年 4 月: CP/CMS が 15 か所のサイトに設置されました。
- 1969 年 6 月: CP/CMS バージョン 2 がリリースされました。
- 1971 年 11 月: CP/CMS バージョン 3.1 がリリースされ、60 人の CMS ユーザーを -67 でサポートできるという素晴らしいパフォーマンスを実現しました。
- 1972 年初頭: CP/CMS バージョン 3.2 がリリースされました。これは新機能のないメンテナンス リリースです。CP-67 は 44 個のプロセッサで実行され、そのうち 4 分の 1 は IBM 内部にありました。
S/360-67 の時点では、ソフトウェアはコンピュータ ハードウェアの購入時に「バンドル」されていました。 「IBM のソフトウェアとサービスのアンバンドル」を参照してください。特に、IBM オペレーティング システムは IBM の顧客に追加料金なしで提供されていました。CP /CMS は、サポートされていないType-III ソフトウェアとしてソース コード形式で提供されるという点で異例でした。つまり、CP/CMS サイトはサポートされていないオペレーティング システムを実行していました。セルフ サポートとコミュニティ サポートの必要性により、オープン ソース運動の先駆けとなる強力な S/360-67 および CP/CMS ユーザー コミュニティが誕生しました。
1970 年の夏、 CP/CMS チームはCP/CMS のSystem/370バージョンの開発を開始しました。これがVM/370になります。 CP-370 は、S/360-67 ハードウェア上で S/370 の使用可能なシミュレーションを提供することで、S/370 プロジェクトにとって不可欠であることが証明されました。これは、CSC の以前のハードウェア シミュレーション戦略の再現です。このアプローチにより、S/370 ハードウェアが利用可能になる前に S/370 の開発とテストが可能になりました。プロトタイプの S/370 の不足により、特に MVS プロジェクトに重大な遅延が発生していました。この注目すべき技術的偉業により、MVS 開発は一変し、CP-370 開発者は賞を受賞し、プロジェクトを中止しようとする積極的な取り組みにもかかわらず、CP プロジェクトは消滅から救われたと考えられます。
1972 年 8 月、IBM の「System/370 Advanced Function」発表により、CP/CMS は終了しました。これには、新しい S/370-158 および -168、すべての S/370 のアドレス再配置ハードウェア、および 4 つの新しいオペレーティング システム (DOS/VS (仮想ストレージ付き DOS)、OS/VS1 (仮想ストレージ付き OS/MFT)、OS/VS2 (仮想ストレージ付き OS/MVT。SVS および MVS に発展)、および VM/370 (再実装された CP/CMS)) が含まれていました。このときまでに、VM および CP/CMS 開発チームは、ドキュメント作成者を含めて 110 名にまで膨れ上がっていました。VM/370 は、IBM タイプ III ライブラリの一部ではなくなり、本物の IBM システムになりました。ただし、ソース コードの配布はいくつかのリリースにわたって継続されました。詳細については、CP/CMS をフリー ソフトウェアとして参照してください。
1968–86?: 副大統領/CSS
1968 年、コネチカット州にある Computer Software Systems という小さなコンサルティング会社の社長が、 CP/CMS を実行するためにIBM System/360-67をリースし、そのコンピュータ時間を再販するという大胆なアイデアを思いつきました。IBM は通常、2 人の新興企業に月額 50,000 ~ 100,000 ドルのシステムをリースすることはないため、大胆なアイデアでした。3 人目と 4 人目の従業員は、CTSSの作者の 1 人である Dick Orensteinと、CP-67 の主要設計者である CSC の Dick Bayles でした。CP/CMS 業界からのその他の重要な採用者には、Harold Feinleib、Mike Field、Robert Jesurum (Bob Jay) がいました。
1968 年 11 月下旬までに、CSS は IBM を説得して注文を受け入れさせ (これは決して簡単なことではありませんでした)、初期資金を確保し、最初の S/360-67 を納品しました。1968 年 12 月から販売を開始しました。
CSS はすぐに、利用可能な仮想マシンの分単位をすべて公表価格で販売しても、マシンのリース料を払うのに十分な収益をほとんど得られないことに気付きました。その後、急速な開発プログラムが展開され、CP/CMS のパフォーマンスが再販で利益が出るレベルまで向上しました。これがCP/CMS ソース コードの分岐の始まりとなり、約 15 年間にわたって独立して進化しました。このオペレーティング システムはすぐにVP/CSSに改名され、会社は株式を公開してNational CSSに改名されました。
VP/CSS は、その親である CP/CMS やその兄弟である VM/370 と多くの共通点がありましたが、多くの重要な点でそれらとは異なっていました。ビジネス上の理由から、システムは利益を上げて運用する必要がありました。また、ユーザーが不満を感じたら、電話を切るだけでいつでも支払いを停止できました。これらの要因により、パフォーマンス、使いやすさ、および顧客サポートに影響する要素が優先されました。VP/CSS はすぐに、同等の VM システムよりも 2 ~ 3 倍多くの対話型ユーザーを日常的にサポートしていることで知られるようになりました。
NCSS の初期の強化には、ページ マイグレーション、ディスパッチ、ファイル システム、デバイス サポート、診断 (DIAG) 命令を介してアクセスされる効率的な高速パスハイパーバイザ機能などの領域が含まれていました。その後の機能には、パケット交換ネットワーク、FILEDEF レベル (パイプ) のプロセス間/マシン間通信、データベース統合が含まれていました。同様の機能はVM実装にも登場しました。最終的に、NCSS 開発チームは IBM のチームに匹敵する規模になり、さまざまな機能を実装しました。VP/CSS プラットフォームは、少なくとも 80 年代半ばまで使用され続けました。NCSS は1979 年にDun & Bradstreetに買収され、DBCS (Dun & Bradstreet Computer Services) に名前が変更され、NOMAD製品に重点が置かれるようになり、 VMやその他のプラットフォームを採用するようにビジネス戦略が変更されました。その過程で、CP/CMS の最後の非 VM フォークである VP/CSS のサポートと開発が中止されました。
1964?–72?: IDC の CP/CMS の使用
Interactive Data Corporation (IDC) はNational CSSと同様の計画に従い、 CP/CMS プラットフォームに基づくタイムシェアリングサービスを販売しました。当時、IDC は金融サービスに重点を置いていました。Varian の報告によると、IDC は CP/CMS を実行する「いくつかの」S/360-67 システムと IBM の「最初の再配置 S/370」の 1 つを持っていました。これはおそらく、最初の DAT ボックスを備えた 1971 年の S/370-145 を指していると思われますが、1972 年に「System/370 Advanced Function」発表で発表されたシステム、つまり S/370-158 と -168 を指している可能性があります。[10]
[IDC と CP/CMS のタイムシェアリングの歴史に関する詳細と引用が求められています。]
歴史的記録
以下の注記は、主に Pugh と Varian [参考文献を参照] からの短い引用であり、CP/CMS の開発状況を示しています。著者の視点が解釈に影響を与えるため、ここでは言い換えではなく直接引用しています。
- 初期のタイムシェアリングとCTSS: Christopher Stracheyは1959年2月に「タイムシェアリング」の特許を申請した。 [11] [12]彼はその年の6月にパリで開催された第1回UNESCO情報処理会議で「大型高速コンピュータにおけるタイムシェアリング」という論文を発表し、その概念をJCR Lickliderに伝えた。[13] [14] [15] CTSSは「タイムシェアリングのやり方を世界に教えた」重要なシステムだった。1961年にMITでIBM 709上で初めて実演され、1964年から1974年まで実稼働で使用された。プログラマーはMarjorie Merwin-Daggett、Robert Daley、Robert Creasy 、Jessica Hellwig、Richard Orenstein (後にNational CSSの共同設立者)、Lyndalee Kornで、全員がFernando Corbató教授の下で働いていた。 MIT の開発者は、CTSS 処理を容易にするためにハードウェアを変更する際に IBM に依頼し、多大な支援を受けました。[16] [17] Creasy は、CTSS が CP/CMS に与えた重要な影響について次のように述べています。「CTSS は、CP/CMS システム設計に最も大きな影響を与えました。… [CTSS は] 通常のバッチ プログラムが使用できるマシンのサブセットを提供し、通常のシステムと同様に変更せずに実行しました。タイムシェアリング スーパーバイザは、知らないうちにマシンを盗んで復元しました。この手法は、CP/CMS で最大限に活用されました。ユーザー インターフェイス、端末制御、ディスク ファイル システム、他のコンピューターへの接続など、他の多くの CTSS 設計要素とシステム機能は、運用プロトタイプとして機能しました。… ソフトウェアの進化的成長には互換性が必要であることは、CTSS によって実証されました。ハードウェアについては、IBM System/360 ファミリーによって実証されました。」[18]
- タイムシェアリングにおけるジョン・マッカーシー( LISPで有名)の役割:「この頃(1961 年 4 月)、ジョン・マッカーシーは、特別夜間講演(タイムシェアリングの将来的重要性を強調)を行い、最終的には、電話システムが公共事業であるのと同じように、コンピューティングが公共事業として組織化されるかもしれないという推測で締めくくりました。この洞察力に富んだ予測は、インターネットの役割を予見するものと見ることができます。同様の意見は、後にアラン・ケイらによって力強く表明されました。IBM のリーダーシップは、コンピューティングについて非常に異なる見解を持っていました。[19]
- IBM と MIT: IBM の社長 TJ Watson は、MIT とニューイングランドの他の学校での使用のために IBM 704 を「非常に賢明に」MIT に提供し、非常に緊密な関係が始まりました。IBM は MIT 連絡事務所を設立し、MIT 計算センターに設置して熟練した技術者を配置しました。Watson は、「1955 年に MIT に行き、コンピューター科学者のトレーニングを開始するよう促しました。… [非常に積極的な大学割引プログラムで]… [その結果] 5 年以内に、市場が急成長することを可能にするまったく新しい世代のコンピューター科学者が誕生しました」と回想しています。Varian は、次のような興味深い脚注を付け加えています。「(企業経営陣からの明確な指示なしに) IBM のケンブリッジ支社は、Watson が MIT に最初に与えた助成金を、IBM がより強力なコンピューターを製造するたびに MIT のシステムをアップグレードする許可と解釈することに決めたようです。」[ 20] [21]
- プロジェクト MAC と MULTICS: MIT のプロジェクト MAC は、CTSS に続く新しいタイムシェアリング システムを構築するため、1963 年に開始されました。IBM は、アドレス変換機能を備えた改良型 S/360 (「Blaauw Box」) を提供する入札を行いましたが、これはほぼ同時期にベル研究所にも入札されました。MIT とベル研究所はどちらも別のベンダーを選択しました。これは「IBM にとって重要な結果をもたらしました。それ以降、IBM プロセッサが最先端の学術的コンピュータ サイエンス研究に選ばれることはめったにありませんでした」。MULTICS と UNIX (およびさまざまな他のミニコンピュータ プラットフォーム) が、事実上の研究システムになりました。[22]
- MIT の S/360 への貢献: MIT と密接な関係を持つ IBM の担当者は「タイムシェアリングの強力な支持者」となり、System/360 の設計者に CTSS ハードウェア強化の目的を含む MIT での作業について知らせ続けた。System/360 の設計者は MIT を訪問し、コルバト教授と会談した。しかし、IBM は「タイムシェアリングは何も生み出さないだろうし、世界に必要なのはより高速なバッチ処理だ」と確信していた。1964 年に System/360 がアドレス移転なしで発表されたとき、MIT やその他のタイムシェアリング支持者は裏切られたと感じた。[23]
- 仮想メモリとタイムシェアリング:「[1964 年] 6 月...[MIT は]、ハードウェア支援の動的アドレス変換 (DAT) がタイムシェアリングに不可欠であると強く主張しました」。タイムシェアリングとは、「複数のコンソールのユーザーがコンピューターの機能を共有できる、まだ実験段階の操作モードです...最も基本的な問題は...ユーザー プログラムにメモリ領域を動的に再割り当てすることです。」MIT はこの立場を曲げず、IBM に裏切られたと感じ、最終的に IBM から GE にMULTICSプラットフォームを譲りました。[24]
- ケンブリッジ科学センター (CSC): 1964 年にノーム・ラスムッセンによって、プロジェクト MAC と同じ建物 (60 年代半ばに「10 台または 15 台のタイムシェアリング システムがコーディング、テスト、またはアクセスされていた」場所) に設立された CSC は、MIT の研究者と密接な関係を築き、維持しました。「IBM と MIT との契約関係はすべて、新しい科学センターに引き継がれ、管理されました。」プロジェクト MAC を失った後、チームは予期せず何もすることがなくなりました。これがCP-40 が誕生した環境でした。[25]
- 1964年のIBMにおける2つの競合する戦略: IBMのエンジニアたちは、会社にとって正しい技術的方向性について意見が分かれていた。[26]
- 「大規模および小規模のビジネスおよび科学コンピュータのアーキテクチャと制御プログラムを統合する」(ブルックス/アムダールが推進。このグループは「評価されていない技術またはテクノロジー」が製品ライン全体の基礎となることを恐れて、動的アドレス変換を拒否した)対
- 「大学や研究所で計算能力が分配される方法」を変える(つまり、IBM と緊密に協力している MIT の研究者が推進するタイムシェアリング)。
- S/360 に関する意見の分かれた部分: CSC のスタッフは、科学界の強い懐疑論に直面しながらも、 System/360アーキテクチャの擁護者となった。Creasy は次のように述べている。「IBM System/360 のファミリー コンセプトは、コンピュータ開発における最も驚くべき転換点でしたが、誰もが熱狂的に歓迎したわけではありませんでした。私たち (CSC) は、科学と商業の命令セットを組み合わせた System/360 のアーキテクチャが、かなり長い間存続すると信じていました。[S/360 の下位互換性の約束により] プログラムの広範な再コーディングに伴うトラウマが [排除された] ことも、長寿命を意味していました。さらに、このマシン設計の寿命中に、多くのオペレーティング システムと多数のアプリケーション プログラムが作成されるだろうと推測しました。」[27]これらは正しい予測であることが証明されました。
- IBM の 1965 年の再編:タイムシェアリング開発を進めていた 2 つの IBM 製品部門、Advanced Systems Development Division (ASDD) と Data Systems Division (DSD) は「段階的に廃止され、そのリソースは新しい Systems Development Division (SDD) と新しい Systems Manufacturing Division (SMD) に割り当てられました。」 タイムシェアリングの取り組みを担っていた大規模な組織の解散は、政治的な力が働いていることを示唆しています。[28]
- 360/67 と TSS:ラスムセンは IBM がタイムシェアリングを無視した決定に裏切られたと感じ、「ケンブリッジ科学センターが System/360 用のタイムシェアリング システムを書く」ことを決意しました。Project MAC の失敗は IBM 内でようやく注目を集め、「タイムシェアリング システムの入札に勝つ」ためのリソースが利用可能になりました。新しいS/360-67の大まかな仕様が準備され、アドレス変換 (「DAT Box」経由。「DAT Box」は「Blaauw Box」とは異なり、セグメント テーブルとページ テーブルの両方をサポート) と新しいオペレーティング システム TSS が組み込まれました。システムの開発中、「6 つのサイトのグループが… 秘密保持契約を結んでいました」 (おそらくリンカーン研究所、ミシガン大学、カーネギー大学、ベル研究所、ゼネラル モーターズ、ユニオン カーバイド)。ミシガン大学と MIT のリンカーン研究所は最初の販売先のうちの 2 つであり、ハードウェア設計に役割を果たしました。 TSSは1965年8月に発表された。「エレガントで非常に野心的なシステム」であったが、「深刻な安定性とパフォーマンスの問題」を抱え、「若すぎる時期に巣から引き離された」。[29]
- CSC の財源:ラスムセンは創造的な会計を利用してCP-40 の作成に資金を提供しました。バリアン:「IBM が 7094 を MIT 計算センターに提供したとき、同センターは夜勤でそのマシンを自社で使用しました。そのため、科学センターは IBM と MIT の契約を継承していたため、ラスムセンは 1 日 8 時間の 7094 時間を「所有」していました。彼はその時間の一部を [MIT] 計算センターに、プログラマーが開発作業を行うために CTSS 時間と交換しました。彼は残りの [7094 時間] をポキプシーの IBM ハードウェア開発者に「販売」しました。彼らはSystem/360ハードウェア開発に不可欠な設計自動化プログラムを実行するために 7094 時間を切実に必要としていました。このようにして得た内部資金で、彼はモデル 40 の改造費用を支払いました... [そして] パートタイム従業員 (主に MIT の学生) と、システム開発のためにケンブリッジに来た IBM 社員の [臨時] 給与を支払いました... [予算外収入を使用して]...非常に目立たない。」ラスムセンは、CSCが改良された仮想記憶システムを待つ間、IBMがCSCに提供した別の臨時S/360-40の空き時間を販売した。MITでMITの資金がCP/CMSに流れたという認識があったとしたら、それはこれらの複雑な取引から生じたのかもしれない。もちろん、資金の問題に関係なく、IBM以外の研究者、特にMITとユニオンカーバイドの研究者が直接的または間接的に貢献したことは明らかである。これも著者の認識を曇らせただろう。[30]
- 反タイムシェアリングの決定:「1961 年と 1962 年の間、タイムシェアリング [の取り組みには] 販売および専門のエンジニアを通じて MIT 計算センターとの密接な連絡が必要でした。」MIT の批判と、最終的に MULTICS に GE が選ばれた後、IBM のタスク フォースは「有益な提案を行いましたが、タイムシェアリング モードの動作については [その追求] を正当化するほどの知識が不足していると報告し、360 設計者の作業を事実上承認しました。… 1967 年、業界観察者[31] は、米国で約 40 の汎用タイムシェアリング インストレーションを数えました。これは、1965 年の 10 から、1961 年の 1 つ (MIT のデモンストレーション) から増加しています。開発コストの一部は、最初の 12 のうち 6 つを後援した国防総省の研究機関によって相殺されました。」[32]
- CP/CMS の非公式リリース: CP-67/CMS は「製品開発組織外で製品およびマーケティング部門で開発されたため、非公式に発表されました。IBM Installation Newsletter 68-10、1968年 5 月 31 日、「New Type III Programs」、13 ~ 15 ページを参照してください。」この説明では、会社の政治、公的資金の使用の可能性、リンカーン研究所の役割などについては触れられていないことに注意してください。[33]
- 初期のタイムシェアリングと HP-35 の導入との関係: 1972 年に強力な携帯型計算機が利用可能になる前、「タイムシェアリングの最初の 10 年間、端末の用途の 1 つは、計算尺では不可能な小数点以下の桁数まで計算する必要のある小さな計算を要求することでした。」これが、タイムシェアリングが科学および学術ユーザーにとって非常に重要だった理由の 1 つです。[34]
- 仮想メモリと IBM のリスクに対する恐れ:「System/360 のトラウマの余波」とは、フレッド・ブルックスが述べたような大規模プロジェクトの苦難を指し、IBM の幹部は「会社が二度とそのような高リスクのプログラムに関与しないようにするための措置を講じた」。この腰を締める作業が最高潮に達したとき、IBM はタイムシェアリングと仮想メモリを脇に追いやり、主流の商用バッチ処理を採用した。皮肉なことに、1970 年から 1971 年にかけて、IBM 内の他の勢力は「少なくとも System/360 と同等のリスクを伴う技術目標を掲げたFuture System (FS) [プロジェクト] を立ち上げた。… 3 年半後、このプロジェクトは放棄された」。FS の主要人物であるジーン・アムダールがIBM を去った後も FS の目標と技術を追求し続けたことはよく知られている。[35]
- CP/CMS の目的と用途: Creasy は次のような洞察を提供しています。「CMS は、独自の開発と保守をサポートし、VM/370 の他のコンポーネントを保守するために開発されました。ほとんどの場合、将来の作業を見込んで、機能のサブセットが [実装する] ために選択されました。仮想マシン環境では多くのオペレーティング システムが繁栄すると予想されていました。新しいシステムのアイデアを試すのに、これ以上の場所があるでしょうか? 実際にはそうではありませんでした。その代わりに、新しいシステムの方が適した領域にまで使用範囲を広げるために、多くの機能が CMS に追加されました。」[36] 1 世代後、共同作業型のオープン ソースの世界で構築されたさまざまなプラットフォームに直面している今、Creasy が CP/CMS を開発インキュベーターとして期待したこと、そして、逃したと思われる機会に対する彼の失望は容易に理解できます。これは多くの研究システムの運命でしたが、CP-40 で開始されたコンセプトの 40 年以上の軌跡を共有するものはほとんどありません。
参照
- CP-40 –仮想マシンの概念を検証したIBMの研究システム
- VM – IBM の仮想マシン オペレーティング システム ファミリ。CP/CMS の再実装。
- 仮想化とハイパーバイザー– CP/CMS で開拓された概念
- IBM System/360-67 –主要な CP/CMS ハードウェア プラットフォーム
- VP/CSS – CP/CMS ソースコードのフォークとして始まったNational CSSの独自のオペレーティングシステム
- タイムシェアリング– CP/CMSの影響を強く受けた業界
- タイムシェアリングシステムの進化
注記
- ^ IBM の VM 支持者によって第三者によって繰り返されたこの中傷とは反対に、それは機能しました。
- ^ TSS/360 をまだ使用している顧客向けに、TSS/370 PRPQ のリリースが 3 回ありました。
参考文献
- 主な CP/CMS ソース
- RJ Creasy、「VM/370 タイムシェアリング システムの起源」、IBM Journal of Research & Development、第 25 巻、第 5 号 (1981 年 9 月)、pp. 483–90、PDF
― CP-40プロジェクト リーダーであり、 CTSS の著者でもある人物による、 CP/CMSとVM の歴史に関する見解 - EW Pugh、LR Johnson、John H. Palmer著『IBMの360および初期の370システム』、 MIT Press、ケンブリッジ、マサチューセッツ州およびロンドン、ISBN 0-262-16123-0
― この時期のIBMの製品について広範囲にわたる(819 ページ)解説。このような決定的な著作でCP/CMSについてあまり触れられていないのは、 - Melinda Varian、「VM と VM コミュニティ、過去、現在、そして未来」、SHARE 89 セッション 9059–61、1997 年。― CP/CMSとVM の歴史
に関する優れた情報源 - Bitsavers、/pdf/ibm/360/cp67 のインデックス
- 追加の CP/CMS ソース
- RJ Adair、RU Bayles、LW Comeau、RJ Creasy、「360/40 用の仮想マシン システム」、 IBM Corporation、ケンブリッジ サイエンティフィック センター レポート No. 320‐2007 (1966 年 5 月)
― 仮想マシンの概念の実装について説明した独創的な論文で、カスタマイズされた CSC S/360-40 とCP-40 の設計について説明されています。 - International Business Machines Corporation、CP-67/CMS、プログラム 360D-05.2.005、IBM プログラム情報部門 (1969 年 6 月)
― IBM のリファレンス マニュアル - RA Meyer と LH Seawright、「仮想マシン タイムシェアリング システム」、IBM Systems Journal、第 9 巻、第 3 号、199 ~ 218 ページ (1970 年 9 月)
― CP-67/CMS システムについて説明し、その機能とアプリケーションの概要を示します。 - RP Parmelee、TI Peterson、CC Tillman、および DJ Hatfield、「仮想ストレージと仮想マシンの概念」、IBM Systems Journal、第 11 巻、第 2 号 (1972 年 6 月)
- 背景 CP/CMS ソース
- FJ Corbató 他著『互換性のあるタイムシェアリングシステム、プログラマーズガイド』 MIT Press、1963 年
- FJ Corbató、M. Merwin-Daggett、RC Daley、「実験的なタイムシェアリングシステム」、Proc. Spring Joint Computer Conference (AFIPS) 21、pp. 335–44 (1962) — CTSS の説明
- FJ Corbató および VA Vyssotsky、「MULTICS システムの紹介と概要」、Proc. Fall Joint Computer Conference (AFIPS) 27、pp. 185–96 (1965)
- PJ Denning、「仮想メモリ」、コンピューティング調査第 2 巻、pp. 153–89 (1970)
- JB Dennis、「セグメンテーションとマルチプログラムコンピュータシステムの設計」、JACM第 12 巻、pp. 589–602 (1965) ― GE 645
向けのプロジェクト MAC の仮想メモリ要件 - CAR Hoare および RH Perrott 編著、Operating Systems Techniques、Academic Press、Inc.、ニューヨーク (1972)
- T. キルバーン、DBG エドワーズ、MJ ラニガン、FH サムナー、「ワンレベル ストレージ システム」、IRE Trans. Electron. Computers EC-11、pp. 223–35 (1962)
― マンチェスター/フェランティアトラス - RA ネルソン、「マッピング デバイスと M44 データ処理システム」、研究レポート RC 1303、IBMトーマス J. ワトソン研究センター(1964) ― IBM M44/44X
について - RP Parmelee、TI Peterson、CC Tillman、DJ Hatfield、「仮想ストレージと仮想マシンの概念」、IBM Systems Journal、第 11 巻、 99 ~ 130ページ(1972)
- 追加のオンライン CP/CMS リソース
- febcm.club.fr —情報技術のタイムライン、1964~1974
- www.multicians.org — Tom Van Vleck の短いエッセイ「IBM 360/67 と CP/CMS」
- www.cap-lore.com — Norman Hardy によるIBM 仮想マシンの短い歴史
- www.cap-lore.com — ノーマン・ハーディによる「Blaauw Box」の短い説明
背景情報
- Peter J. Denning、「パフォーマンス モデリング: 最高の実験的コンピュータ サイエンス」、Communications of the ACM、会長レター (1981 年 11 月) ― IBM M44/44X
に関連する次の論文を引用しています。
- L. Belady、「仮想ストレージ コンピュータの置換アルゴリズムの研究」、IBM Systems Journal Vol. 5、No. 2 (1966)、pp. 78-101。
- L. Belady および CJ Kuehner、「コンピュータ システムにおける動的空間共有」、Communications of ACM Vol. 12 No. 5 (1969 年 5 月)、pp. 282–88。
- L. Belady、RA Nelson、GS Shedler、「ページング マシンで実行される特定のプログラムの空間時間特性の異常」、Communications of ACM Vol. 12、No. 6 (1969 年 6 月)、pp. 349–53。
- LW Comeau、「CP-40、VM/370 の起源」、SEAS AM82 議事録(1982 年 9 月)
― Varian [上記] で引用された CP-40 の説明 - Harold Feinleib、「National CSS の技術史」、コンピュータ歴史博物館 (2005 年 3 月) 。PDF。
- W. O'Neill、「動的アドレス再配置ハードウェアを備えたタイムシェアリング マルチプログラミング システムの使用経験」、Proc. AFIPS Computer Conference 30 (Spring Joint Computer Conference、1967)、pp. 611–21
― [実験的な IBM M44/44X について説明し、メモリとページングに関連するパフォーマンス測定を報告し、マルチプログラミングとタイムシェアリングのパフォーマンスへの影響について論じています。] - Dick Orenstein、「最初から…私の視点から」、コンピュータ歴史博物館 (2005 年 1 月)。PDF ― National CSS
の初期の歴史 - D. Sayre、「仮想システムについて」、 IBM Thomas J. Watson 研究所 (1966 年 4 月 15 日)
― 実験的なページング システムである IBM M44/44X を使用したマルチプログラミングについて説明した、初期の仮想マシンに関する論文。
引用
- ^ Creasy、前掲書、p. 485 — CTSSの日付
- ^ cf. Ritchie、「Unix タイムシェアリング システムの進化」、米国議会図書館のWeb アーカイブに 2010 年 5 月 6 日にアーカイブ、AT&T Bell Laboratories Technical Journal、Vol. 63 No. 6 Part 2、1984 年 10 月、pp. 1577-93
- ^ Comeau、前掲書、p. 40 — アトラスは「機能しなかった」
- ^ Varian、前掲書、p. 10、注 26 — 実験的なIBM M44/44Xページング システムは、7044 を完全に仮想化していない仮想マシンを使用していました。「仮想マシン システムに十分近いため、「十分に近い」とはカウントされないことが示されました」
- ^ Varian、前掲書、p. 18 — CP-40 は CP-67 として再実装されました
- ^ Varian、前掲書、pp. 19-20 — 策略
- ^ Varian、前掲書、pp. 20-21 – CP/CMS に関するコラボレーション
- ^ Creasy、前掲書、p. 470 — 実験としての CP/CMS
- ^ Varian、前掲書、17ページ — TSSは「若すぎる時期に巣から引き離された」
- ^ Varian、前掲書、pp. 24、注76 – IDCシステム(ディック・ベイルズを引用)
- ^ 「コンピュータの先駆者 - クリストファー・ストラチー」。history.computer.org 。2020年1月23日閲覧。
ストラチーがタイムシェアリングという概念で提案したのは、プログラマーとマシンの直接的な接触を維持しながら、マルチプログラミングの経済性を実現する仕組みだった。
- ^ 「コンピュータ - タイムシェアリングとミニコンピュータ」。ブリタニカ百科事典。2020年1月23日閲覧。
1959年、イギリスのクリストファー・ストレイチーとアメリカのジョン・マッカーシーがそれぞれタイムシェアリングと呼ばれるものを説明しました。
- ^ C. Strachey、「大規模高速コンピュータにおけるタイムシェアリング」、国際情報処理会議議事録、論文 B.2.19、ユネスコ、ニューヨーク、1959 年 6 月 [Varian、前掲書、 3 ページより引用]。
- ^ ギリーズ、ジェームズ M.; ギリーズ、ジェームズ; ギリーズ、ジェームズ; カイユ、ロバート (2000)。ウェブの誕生: ワールド ワイド ウェブの物語。オックスフォード大学出版局。p. 13。ISBN 978-0-19-286207-5。
- ^ 「タイムシェアリング理論の回想」。jmc.stanford.edu 。 2020年1月23日閲覧。
1960年には、「タイムシェアリング」というフレーズが流行していました。しかし、ジョン・マッカーシーのCTSSのようなオブジェクトという意味ではなく、私の意味で一般的に使用されていました。
- ^ ヴァリアン、前掲書、 3~4ページ
- ^ FJ Corbató、MM Daggett、RC Daley、RJ Creasy、JD Hellwig、RH Orenstein、および LK Korn、「The compatible Time-Sharing System: A Programmer's Guide」、 The MIT Press、ケンブリッジ、MA、1963 年 [Varian、 op. cit.、p. 3に引用]。
- ^ Creasy、前掲書、pp. 485–87 — CTSSの影響。
- ^ ピューら、前掲書。前掲書、355–56ページ。
- ^ Varian、前掲書、 4ページ。
- ^ TJ ワトソン・ジュニア著『父と息子と仲間たち:IBM での私の人生とその先』バンタム・ブックス、ニューヨーク、1990 年、244~245 ページ [引用元:バリアン、前掲書、 4 ページ]
- ^ ヴァリアン、前掲書、 7ページ
- ^ ヴァリアン、前掲書、 6ページ
- ^ Pugh et al.、前掲書、p. 169
- ^ ヴァリアン、前掲書、 7、9ページ
- ^ ピューら、前掲書。前掲書、 360–61ページ
- ^ Creasy、前掲書、p. 486 — S/360 の CSC の見解
- ^ ピューら、前掲書。前掲書、360–61ページ。
- ^ ヴァリアン、前掲書、 8、17ページ
- ^ Varian、前掲書、 14~5ページ。
- ^ JJ Glauthier、「コンピュータタイムシェアリング、その起源と発展」、Computers and Automation、 1967 年 10 月、23 ~ 27 ページ。
- ^ ピューら、前掲書。前掲書、595–97ページ。
- ^ Pugh et al., 前掲書、 741-42ページ(第6章の注219)
- ^ Pugh et al.、前掲書、p. 598
- ^ Pugh et al.、前掲書、 633ページ
- ^ Creasy、前掲書、p. 489 — OSインキュベーター構築への期待の裏切り
