IBMメインフレーム用オペレーティングシステムの歴史 は、世界最大のメインフレーム 機メーカーとして長期に渡り君臨したIBM の歴史であり、オペレーティングシステムの歴史 の中でも特に注目に値する。
IBMが初期にメインフレーム 用としてユーザーに提供していたオペレーティングシステム (OS)は、CP-67以降から実装された仮想マシン 以外はそれほど革新的といえるものではなかった。しかし実績のある確かなテクノロジーを優先する同社の姿勢は評判を呼び、コンピュータの購入希望者はIBMのシステムであれば間違いないと納得しやすかった。IBMのメインフレーム用OSであるz/OS 、z/VM 、 z/VSE 、z/TPF は、1960年代に開発されたOSの後継バージョン で、大幅に改良されている。
当記事ではIBM提供のOS以外にも、IBM以外が提供したIBMメインフレームで著名なOSについても記載する。
当初IBMはOSを開発していなかった。ゼネラルモーターズ は自社が所有するIBM機のために、1955年にGeneral Motors OSを開発し、1956年にGM-NAA I/O を開発、また1962年には同業他社のバロウズコーポレーション がMCPを、ゼネラルエレクトリック がGECOS をユーザー向けに開発した[ 1] [ 2] 。
IBM機用の最初のOSは、1950年代半ばの相場で200万ドルもする非常に高価なマシンを前にして、計算もさせずにジョブを手入力する時間がもったいないと思い、ジョブのキューを管理する仕組みが欲しいと考えたユーザーが開発したものだった[ 3] 。
下記のOSは一部のモデルでのみ動作し、科学技術計算や工学計算にのみ適していた。IBMの別のモデルを持つユーザーや、別のアプリケーションでは、OSなしでなんとかしなければならなかった。しかしIBMの小型機の1つであるIBM 650 には、後にOS/360 の一部となるある機能があった。もし処理がハード障害を意味する「ランダム処理エラー」で中断された場合、オペレーターが自動でジョブを最初からやり直すのではなく、直近のチェックポイントから自動的に復旧することができた[ 4] 。
ゼネラルモーターズのGM-NAA I/OがIBSYSになるまで[ 編集 ]
ゼネラルモーターズ の研究開発部門は、1955年に開発したGM Operating Systemをプロトタイプに、1956年に社内で使っていたIBM 701 用にGM-NAA I/O を開発し、その後701の後継機に対応するようアップデートした。1960年にIBMユーザー互助会SHAREがこれを引き継ぎ、アップデート版のSHARE OS を開発した[ 3] 。
最終的にIBMがこのプロジェクトを引き継ぎ、拡張したバージョンをIBSYS と名付け、IBM 7090 用やIBM 7094 用として提供した。IBSYSは8台のテープドライブ が必要だった(システムが1台以上のディスクドライブを持つ場合はこの数を減らすことができた)。カード 方式のジョブ制御言語、FORTRAN とCOBOL のコンパイラ 、 アセンブラ 、ソート プログラムなどの様々なユーティリティなどが付属した[ 5] [ 6] 。
1958年にミシガン大学はコンピュータシステムにGM-NAA I/Oを採用し、学生が書いた小さなジョブを大量に処理するのに適したUMESを開発した。UMESは1967年にMTSタイムシェアリングシステムへ置き換わるまで使われた[ 7] 。
ベル研究所はBESYS (別名BELLMON)を開発して1960年代中頃まで使用した。 ベル研究所はこれを無料・無保証で他社にも公開した[ 8] [ 3] 。
IBSYSが登場する前にIBMはIBM 709 、7090 、7094 の各機種用に、FORTRAN のプログラムをコンパイル するための単機能OSとしてテープベースのOSであるFMSを開発した。FMSとFORTRANコンパイラは同じテープの中に格納されていた[ 9] [ 10] 。
初期のタイムシェアリングシステムと仮想マシンシステム[ 編集 ]
MIT のフェルナンドコルバト は、メインフレームのIBM 704 とIBM 7090 を使い、CTSS などの初期の実験的なタイムシェアリング システムを1957年から1960年代初頭に開発した。これらのシステムはジョン・マッカーシー から提案されたアイデアに基づいていた[ 11] 。IBMは自社の複数の研究所で1960年代にタイムシェアリングシステムの実験をしており、市販のメインフレームをベースにハードウェアとマイクロコード を修正して仮想メモリ をサポートし、1960年代初頭にIBM M44/44X、1964年から1967年にCP-40、1967年から1972年にCP-67を開発した。CP-67に至っては1968年から1972年までの間に無保証で複数の大手顧客にリリースしていた。CP-40とCP-67にはSystem/360 CPU シリーズに改造が必要だったが、M44/44Xは内部構造が大きく異なる最初期のCPUであるIBM 7044 で動作した[ 12] [ 13] [ 14] 。
これらのプロトタイプはIBMが1964年に発売したSystem/360 シリーズには間に合わなかったものの、IBMはこれを足掛かりにして1972年に発売したSystem/370 で仮想メモリと仮想マシンに対応した[ 12] 。
M44/44Xの仮想マシンは限定的な物であり、スラッシング により仮想メモリシステムの速度が大幅に低下する可能性があった。スラッシングとは、物理メモリとディスクの間で仮想メモリページをシャッフルするのに多くの時間が割かれてしまい、システムが非常に遅くなる状態のことである。
IBMはCP-40とCP-67の開発を通じてどのようにスラッシング問題に対処すればよいのかを学習した。新たな仮想メモリと仮想マシンのテクノロジーは非常に高速かつ信頼性があり、メインとなる市場での負荷の高い商用システムでの使用に耐えるものだった。自動化された仮想メモリは優秀なプログラマが開発したオーバーレイ 方式のプログラムと同様のパフォーマンスをコンスタントに叩きだせるとしてデビッド・セイヤーは会社に採用を迫った[ 15] 。
コンピュータソフトウェアシステムという名前のコンサルティング会社は1968年にリリース版のCP-67を用いて商用タイムシェアリングサービスを提供した。同社の技術チームはMITの卒業生であるディック・オレンシュタインとハロルド・ファインリーブの2人を新卒で採用していた(前述のCTSSを参照)。会社の規模拡大に伴い社名をナショナルCSSに改め、サポートを求める有料ユーザーが増えるようにシステムに大幅な改良を加えてOSの名前をVP/CSSに変えた。1980年代初頭にIBMがVM/370(詳細は後述)を投入して市場を奪われるまで、VS/CSSはナショナルCSSの主力商品だった[ 16] [ 17] 。
これらの他にも1960年代後半には複数の大学が3つのS/360用タイムシェアリングOSを開発していた。
ミシガンターミナルシステム (MTS)はミシガン 大学主導のコンソーシアムが1967年に開発したOS。S/360-67以降の仮想メモリ機能を持つ全てのIBMメインフレーム機に対応していた。MTSは1999年まで運用された[ 18] 。
モントリオール のマギル大学 は1969年にMUSIC (McGill University System for Interactive Computing)の開発を開始した。MUSICはアップグレードを繰り返し、最終版までにテキスト検索、ウェブサーバ、メールサーバ、ソフトウェア開発ツールなどに対応した。IBMはMUSICを同社のメインフレーム機で動作する主に教育機関向けの安価な選択肢として位置付け、1985年にIBMの公式な製品ラインナップ(MUSIC/SP、Multi-User System for Interactive Computing / System Product)として加えた。公式な最終バージョンは1999年にリリースされた[ 19] 。
ORVYLとWYLBUR はスタンフォード大学 が1967-68年にIBM S/360-67向けに開発したOS[ 20] [ 21] 。これらによりIBM S/360で初めてタイムシェアリング機能が使えるようになった。
System/360 オペレーティングシステム[ 編集 ]
1960年代初頭までIBMのローエンドシステムとハイエンドシステムには互換性がなく、プログラムを別のシステムに移植するのは難しく、各システムはディスクドライブなどの周辺機器 も異なっていることが多かった[ 22] 。このためIBMではハードとソフトの設計、開発、製造のコストが高騰し、顧客からのアップグレードの要望に応えきれなくなり、そのために売り上げが頭打ちになった。同社が1964年に発売したSystem/360 は全てのマシンで共通の周辺機器を使用でき、プログラムもほぼ共有できることが売りとなった[ 23] 。
元々IBMはバッチ処理 に特化したOSであるOS/360だけをSystem/360に提供するつもりだった。後によりシンプルなバッチ処理専用OSであるDOS/360 を開発しており、これを開発した理由には主に以下の2つがあった。
System/360のモデルのうち、メモリが少ない小型モデルにはOS/360は大きすぎた[ 24] 。
OS/360の開発が予想以上に遅れており、System/360のハードウェアの売り上げが落ちて市場が崩壊することを防ぐため、隙間を埋めるラインナップの1つとしてDOS/360を提供した。別のラインナップとしてはBOS/360(小型機用のBasic Operating System)とTOS/360(テープドライブだけしか装備していない機種用のTape Operating System)があった[ 23] 。
System/360のOSはこれまでにIBMが開発したOSの中でも特に複雑で、それには以下のような理由があった[ 25] 。
マルチタスク のサポート。ディスクの読み込みなどのI/O 処理が完了するのを現在のアプリケーションがブロック処理で待っている間に別の動作中のアプリケーションへ切り替える。マルチタスクに対応しなければこのクラスのCPU が持つ高い処理能力のほとんどを遅いI/O操作に対する待ち時間で浪費してしまう。従ってシステムを司る心臓部としてOSを位置づけ、アプリケーションに対する正当な要求に全て応じつつ、もしアプリケーションがクラッシュしたり永久ループなどの誤動作が生じた場合は、同時に動作している別のアプリケーションに影響を与えないよう対処することが求められた。
様々なクラスのマシンをサポート。メモリ搭載量が16KBの下位モデルから1MBの上位モデルに対応し、秒間1000命令から50万命令までの命令処理速度に対応した。
様々なアプリケーションの要求に応える。例えばあるアプリケーションではファイルを先頭から最後まで読むだけでよいが、別のアプリケーションでは巨大なファイルの特定のレコードに高速にランダムアクセスする必要があり、また別のアプリケーションでは処理時間のほとんどを計算に費やしておりディスクをほとんど読み書きしなかった。
こうした厳しい要求によりOS/360や他のSystem/360用ソフトウェアの開発は当時としては前人未到の大規模プロジェクトとなり、間もなくIBMは問題に直面し、膨大な時間と費用をかけて大量のバグ に対処しなければならなくなった[ 25] 。PCがなくクロスコンパイラやエミュレーターもない当時の開発環境では、System/360のOSを実機上で開発してテストしなければならず、問題は大きくなる一方で、IBMはBasic Programming Support / 360 (BPS/360)を先に開発しなければならなくなった[ 26] 。BPSはDOS/360やOS/360を開発するのに必要なツールを開発するのに使われ、FORTRAN とCOBOL のコンパイラ やソート などのユーティリティ 及びこれら全てをビルドするのに必要だったアセンブラ などのツールがあり、これらのツールはDOS/360やOS/360にも含まれた[ 27] 。
IBMの競合他社はOS/360とSystem/360の開発が遅れたことを利用し、IBM市場の最大の弱点をシステムと捉え、各社ともOSを発表した。IBMはSystem/360のセールスが失敗するのを防ぐため4つの間に合わせのOSを繋ぎでリリースした[ 23] 。
Basic Operating System / 360 (BOS/360)[ 26] - ディスクドライブまたはテープドライブから起動し、テープドライブと数種類のディスクドライブをサポートする。このシステムはベータテストのユーザーに提供されたもので、DOS/360の初期バージョンと考えることもできる。
TOS/360 - テープドライブを装備し、ディスクドライブを装備していないIBM 1401 シリーズのコンピュータを持つユーザーへのアップグレードパスとして提供するべく開発された。
DOS/360 - BOS/360やTOS/360に向けたアプリケーションを開発していたIBMのスモールビジネスコンピュータ部門の開発者がビルドしたもので、その後広く普及して主力のOSとなったz/VSE の祖先。
Operating System/360 (OS/360)で、マルチタスクをサポートしないPrimary Control Program (PCP)の構成で固定されたもの[ 28] 。
IBMはS/360-67の発表と同時に、360/67の新しい仮想メモリ機能を活用したタイムシェアリング OSのTSS/360も発表した。TSS/360のリリースは遅れ、初期バージョンは遅くて不安定だった。当時既にIBMのケンブリッジ科学センターがCP-67を別途開発しており、タイムシェアリング機能としてIBMが一部の大口顧客向けに無保証ながら提供しているほどに上手く動作していた[ 29] 。CP-67はVM/370にアップグレードし、最終的にはz/VM となった。IBMはTSS/360を導入したユーザーにアップグレードパスのTSS/370 PRPQを3度リリースした後にこれを放棄した。
System/360 OSを開発する際に得られた教訓からソフトウェア工学 を学問的に整備しようとする機運が高まり、ソフトウェア開発やプロジェクトマネジメント を科学的に取り扱うようになった。System/360のプロジェクト全体を監督し、後にOS/360の特定パートの責任者となったシニアプロジェクトマネージャーのフレデリック・ブルックス は、プロジェクト中に遭遇した問題や学んだ教訓をもとにベストセラーとなった人月の神話 を執筆した[ 30] 。その教訓とは主に次の2つである。
問題が発生しているプロジェクトに追加のリソース(主にスタッフ)を追加投入すると、コミュニケーションが困難になり、急に生産性が落ちて逆効果になることがある。これは書籍のタイトルでもある「人月の神話」症候群である。
成功したシステムの後継版は、元のシステムを使った人からの要望を全て取り込もうとして肥大化し、問題が生じやすい。ブルックスはこれを「セカンドシステム効果」と呼び、OS/360を悪い例として全体的に引用している。
System/360シリーズの中でもハイエンド向けのOSとしてOS/360が推奨された一方で、DOS/360 はローエンド向けの非力なマシンに適した平凡なOSだった。これには一連のユーティリティプログラム 、マクロアセンブラ 、FORTRAN やCOBOL のコンパイラ などが含まれていた。RPG [ 31] [ 32] がサポートされたのは後年で、最終的にはPL/I のサブセットが追加された。また様々なファイルの構造をサポートし、そのアクセスを制御するインターフェイスが提供された。
レコード全体を一度に読み込むのに最適なシーケンシャルデータセット。
各レコードの特定のセクションをキーに検索できるインデックス付きファイルのISAM 。
アクセスしたいデータのディスク上の物理位置をアプリケーションが自分で指定しなければならないダイレクトアクセスファイルのBDAM。 BDAMのプログラミングは難しく、ユーザーの多くはその使用を望まないが、ディスク上のデータへのアクセスが最も早く、多くのソフトウェア企業は主にADABAS 、IDMS、IBM製のDL/I などのデータベースマネージメントシステム を用いた。
シーケンシャルファイルとISAMファイルは固定長又は可変長のレコードを格納でき、いずれの組み合わせにおいても複数のディスクボリュームにまたがってデータを格納できる。
DOS/360はまたデータ通信機能としてBTAMも提供しており、今日の基準で見れば大変に使い辛いものだった。しかしBTAMはあらゆる種類の端末と通信でき、通信プロトコルが全く標準化されていなかった当時としては非常に画期的だった。
しかしDOS/360は、System/360機のより大型なモデルで使われたOS/360 と比べて制約が大きかった。
最初のバージョンは同時に1つのプログラムしか実行できなかった。後のバージョンでは最大で3つのプログラムを同時に実行できたが、各プログラムのメモリ空間のサイズはDOS/360をインストールする際に各ユーザーがあらかじめ区切った3本のパーティションのサイズに固定された。
ジョブの制御に使用するスクリプト言語のJCL はローエンド機での処理が軽くなるように設計されており、プログラマが読み書きするのは難しかった。
パンチカード やプリンタの処理を効率化するためのスプーラ サブシステムがなかった。1960年代後半に独立系ソフトウェア会社がGRASPと呼ばれるスプーラを販売した。
DOS/360にはリロケータブルバイナリローダ がなく、ユーザーは使用するパーティションごとに各プログラムのアドレスを絶対アドレスで指定するリンク情報 を手動で編集しなけばならなかった。
実行プログラムを格納するコアイメージライブラリは、プログラムを削除したり更新したりした場合に、古いプログラムが格納されていたスペースが解放されなかった。コアイメージライブラリがいっぱいになるとユーティリティプログラムで圧縮しなければならず、これにより開発作業が半日潰れることがあった。
アプリケーションプログラミングのインターフェース がOS/360と異なっていた。COBOL などの高水準言語 で記述されたDOS/360用のプログラムは、OS/360で使用するには若干の修正が必要で、アセンブラ で記述かれたプログラムは大幅な変更を強いられた。
DOS/360のユーザーはすぐにOS/360へアップグレードするだろうとIBMは考えていたが、制約があったにもかかわらず、DOS/360は世界で最も広く使われるOSになった。それには次のような理由があった。
System/360機は非常によく売れた。
販売された360システムの90%以上がローエンドのModel 20、30、40だった。
これらの安価なモデルが装備していたコアメモリ はほとんどの場合においてOS/360の実行に必要な容量には到底足りなかった[ 33] 。
DOS/360は中規模の企業が購入できるSystem/360機で不都合なく動作しており、またこのクラスのユーザーたちが過去に持っていたマシンが備えていたどのOSよりもまだマシだった。この結果、その子孫であるz/VSE は2005年になっても依然として広く使われている[ 24] 。
OS/360 は様々なレベルの機能をサポートしており、共通のAPIで、より多くのコードが共通化された。PCPは同時に1つのプログラムだけしか実行できない廉価版で、MFT (一定個数のタスクを実行できるマルチプログラミング 版)とMVT (タスクを無制限に実行できるマルチプログラミング 版)は、後継機が発売されてから5年が経過した1970年代後半頃まで使用された[ 34] 。PCP、MFT、MVTの3つに分割した理由は明らかではなく、MVTが中間クラスのモデルで使用するにはメモリを喰い過ぎたのか、あるいはIBMがマルチプログラミング版をMFTとして至急リリースしなければならなかったかなどの理由が考えられる。
PCP、MFT、MVTの3つはメモリの管理方法が異なっているが、機能的には非常に似ている(下記参照)。
共通化されたアプリケーションプログラミングインターフェイス (API)。アプリケーションプログラムのバイナリは再コンパイル することなくPCP、MFT、MVTで実行できる。
DOS/360よりも柔軟で使いやすい同じJCL 。
DOS/360と同じファイルの読み書き方式(シーケンシャル、インデックス、ダイレクト)に対応。データ通信のBTAMにも対応している。
新しいパーティション分けされたファイル構造とアクセスインターフェイスであるBPAMに対応。主にプログラムライブラリの管理に用いられた。パーティションはスペースを解放するために圧縮する必要が相変わらずあったが、PCP、MFT、MVTではパーティションの数に制限がなく、プロジェクトごとに1本以上のパーティションを割り当てることができるため、DOS/360のコアイメージライブラリとは異なり作業が止まって開発作業に支障が出ることがほとんどなかった。
ファイルを階層として管理できるようにするファイル名のシステム。PROJECT.USER.FILENAME などの命名が可能だった。
スプーラ 機能 (DOS/360にはない)。
アプリケーションがジョブの中でサブタスクを生成できるマルチタスク に対応。
OSが256KB未満のシステムにインストールすることは当時の経験から推奨されず[ 27] 、これは1960年代にはどこでもよくある制約だった。
ユーザーはMFTを インストールする際に、メモリを最大で4本のパーティションに固定長で区切ることができ、複数のアプリケーションを同時に実行できるように設定できた[ 35] 。MFTバージョンII (MFT-II)は最大で52本まで上限を緩和した。
MVTはMFTよりもはるかに巨大かつ複雑であり、そのためSystem/360のハイエンド機で用いられた。OSは全ての未使用メモリを単一のプールとして扱い、そこから連続した領域を並列動作するアプリケーションの数に応じて必要なだけ無制限に割り当てることができた。この方式はMFTよりもはるかに柔軟で、仕組み的にメモリを効率よく利用できたが、断片化しやすい問題があった。この問題が顕在化すると、全体としてはプログラムを実行するのに十分な空き容量があるにもかかわらず、各領域が分断されてしまい必要なサイズの連続した空き領域がないという状態に陥った[ 28] 。
1971年にMVTで使えるタイムシェアリングオプション (TSO)機能が追加された。バッチジョブ実行機能、ジョブの完了通知機能、レポートが印刷されるのを待たなくても結果を閲覧できる機能などを持つエディタが含まれていたほか、System/360で使われる一部のプログラミング言語で使用できるデバッガ が含まれていたことから、 TSOはプログラムの開発に広く使われるようになった。TSOはTCAM (Telecommunications Access Method)で端末と通信でき、これまで使われていたQTAM (Queued Telecommunications Access Method)と置き換わった。IBMはデータ通信のスタンダードになることを見越してTCAMと名付けたが、結局TCAMはほぼTSO上でしか使われず、1970年代後半にVTAM にほぼ置き換えられた。
System/360のハードウェアとOSは実行に何時間もかかる可能性がある極端なバッチ ジョブを処理できるように設計されている。そのため各件の処理時間が30秒から数分程度の処理を1日に数千件こなすトランザクション処理 には適していなかった。IBMは1968年にトランザクションを処理するためにIMS をリリースし、1969年にはIBMグループの従業員がとある顧客のために開発した、よりシンプルなトランザクション処理システムであるCICS をリリースした。IMSはOS/360とその後継OSでしか利用できなかったが、CICSはDOS/360とその後継OSでも利用できた[ 36] [ 37] 。この種の製品は長年に渡り「TP(テレプロセッシング)モニタ」と呼ばれていた。厳密に言えば、TPモニタはOSの構成要素ではなく、アプリケーションを管理するためのアプリケーションに過ぎなかった。1970年代と1980年代には複数のサードパーティ (Taskmaster、Shadow、Intercommなど)がTPモニタをリリースしてCICSと競合したが、IBMは継続的にCICSを改善してゆき、ほとんどの顧客がIBMの純正品を使うようになった[ 38] [ 39] 。
航空業界は1950年代に急成長していたが、数千件の予約をカードファイルを使って手作業で裁く手間による物理的な制約があったため伸び悩んでいた。IBMは1957年にコンピュータ予約システムを開発する契約をアメリカン航空 と結び、後にこのシステムをSABRE と名付けた。1960年にテスト版の稼働を開始し、1964年に全ての予約業務を引き受けるようになり、このプロジェクトでは最初から一貫してIBM 7090 メインフレームが用いられた。IBMは1960年代初期には他の航空会社とも同様のプロジェクトを開始し、すぐにSystem/360 用の共通予約システムであるPARSを開発することを決めた。
SABREや初期バージョンのPARSにはアプリケーションとOSの区別がなかったが、IBMは1968年にアプリケーション部分のPARSとOS部分のACPに分割した。その後ACPはACP/TPFに改名され、また航空業界以外の業界向けに大量のオンライントランザクションを裁けるOSとしてTPF (Transaction Processing Facility)の名前で提供した。最新バージョンはz/TPF という名前になっている。
IBMの汎用OS(DOS/360やOS/360 )は1960年代中盤までバッチ 処理に特化しており、大量の短いトランザクションを高速に捌くことができず、汎用OSで動作するトランザクションモニタのIMS やCICS であっても、数百便のフライトの予約を数千の旅行代理店から受け付けるのに十分な処理速度がなかったことから、IBMはACPやその後継版を開発した。
最後のパブリックドメイン版であり無料版のACPはACP 9.2で、1本のミニリールテープで配布され、48インチ幅の棚一列がいっぱいに埋まるほどの数十冊のマニュアルが付属し、IBM 3340のディスクドライブに展開でき、ACPシステムの全機能が完璧に動作する形で提供された。
ACPはマスターカード® などの銀行発行カードや、金融機関向けのアプリケーションを主なユーザーとして想定していたが、航空業界用の予約システムにも利用でき、当時としてはACPは多目的な汎用OSだった。
プログラムの開発や、オンライン経由で並行してファイルをメンテナンスしたりするのに使える、VS1という(必要であればVS2も可能な)バーチャルOSをゲストとして利用できるハイパーバイザーモジュール(CHYR)が後期のACPに統合され、まさに汎用的なOSだった。
一部では本番環境もハイパーバイザーモードのVS2で運用され、IMS DBも搭載されることがあった。
Model 20 はSystem/360の周辺機器の一部を利用できたことから、そのシリーズの1モデルに分類されたが、これは16ビット 機であり、他のSystem/360シリーズのマシンとはプログラムの完全な互換性がなかった。ドイツにあるIBMの複数の研究所が360/20の複数の構成に対応するよう調整した3つのOS(ディスクを搭載して最小メモリ容量が12KBのDPS、ディスクがなくテープを搭載して最小メモリ構成が8KBのTPS、パンチカード機で最小メモリ構成が4KBのCPS)を開発した[ 40] 。IBMは小規模事業者向けにSystem/3 シリーズを後に発売し、360/20とはアーキテクチャが異なっていたことから、IBMのメインフレーム機とは周辺機器が異なる360/20の後継機は開発されなかった。
System/360の周辺機器を使える別アーキテクチャのプロセッサ。360/44は地質学や気象学などのデータ分析に用いられる浮動小数点 計算機能を搭載しており、科学技術計算に適した設計だった。内部のアーキテクチャが他機種と異なり、特定の用途に特化した設計であったことから、360/44にはPS/44という専用のOSが提供された[ 41] 。Model 44にはSystem/360が持つ命令の一部がなかったが、命令をエミューレーションする機能があり、OS/360を実行することが可能だった。360/44とPS/44の直接的な後継機は作られなかった。
1970年に発表されたSystem/370 は機能的にはSystem/360と同じだったが、System/360の同価格帯のモデル構成と比較して4倍の処理速度があった[ 42] 。1972年にIBMが発表したSystem/370 Advanced Functionsは仮想メモリ の対応が目玉機能で、既に販売したSystem/370に後付けで追加することが可能だった。故にIBMは仮想メモリに対応した強化版OSの販売にも力を入れた[ 43] [ 44] 。
新OSのほとんどは旧OSと区別するため名前の最後に/VSを付けていた。VSはバーチャルストレージ(仮想ストレージ)の略で、メモリという言葉にはコンピュータがデータを忘れて紛失してしまうような印象を与える恐れがあったことから、IBMは意図的にバーチャルメモリ(仮想メモリ)という用語を避けていた。
IBMが販売するの今日のメインフレームが搭載するOSの全て(z/TPF を除く)はこの時発表されたSystem/370 Advanced Functionsの子孫であり、z/TPFはIBMが当初航空会社向けに航空機の予約を大量に捌くべく開発したACPの子孫である。
DOS/VSはDOS/360の後継OSであり、仮想メモリを含む同様の機能強化があった。仮想メモリの他にもDOS/VSには下記のような機能の強化があった。
メモリパーティションの数を3本から5本に増強。その後すぐに7本まで増強された。
リローケーション・ローダー。各プログラムを別のパーティションにロードして実行する際にリンク情報を編集する必要がこれによりなくなった。
スプーラ コンポーネントの改良版であるPOWER/VS。
DOS/VSは後に大幅なアップグレードを実施した。DOS/VSEとVSE/SPが1980年代に、VSE/ESAが1991年に、z/VSE が2005年にリリースされた[ 45] [ 46] 。
OS/VS1はMFT の後継OSであり、仮想メモリを含む同様の機能強化があった[ 28] 。IBMは1983年までOS/VS1のマイナーチェンジを続け、1984年にサポートの終了を宣言した。IBMがSystem/370用に開発したOSの中で現代的な最新機能を持つ後継OSがないのはOS/VS1とTSS/370だけである[ 47] 。
Special Real Time Operating System (SRTOS, 特殊用途用リアルタイムOS)であるProgramming RPQ Z06751は、リアルタイム処理 に対応するよう拡張されたOS/VS1の亜種である。電力会社の電力管理や石油精製プラントなどの業界をターゲットにしていた[ 48] 。
OS/VS2リリース1(SVS)は仮想メモリ機能を搭載したMVT の代替OSで、数多くの機能強化があったが、全体的なアーキテクチャは維持された。しかしIBMが1974年にOS/VS2リリース2として発表したOSは、元のOS/VS2 SVSと上位互換性を保ったまま内部が大幅に書き換えられた。システムで最も顕著な拡張は複数の仮想メモリ空間に対応したことだった。これまでは複数のアプリケーションが1つの仮想メモリ空間を共有するのが常識だったが、新OSの仮想メモリ機能ではアプリケーションごとに別々のメモリ空間が割り当てられた[ 28] 。この新システムはユーザーの間ですぐにMVS (マルチ仮想ストレージ)と呼ばれるようになり、元のOS/VS2はSVS (シングル仮想ストレージ)と呼ばれるようになった。IBMはこの用語を逆輸入して自社の後継OSにMVS/~の名前を付けるようになった[ 49] 。
MVSに搭載された主な新機能には他にも次のようなものがあった。メインのカタログを必ずVSAM カタログとして扱う。対称型マルチプロセッシング のサポート(2つ以上のCPUが同じメモリとOSのコピーを共有する)。優先度の高いジョブのパフォーマンスを低下させることなくユーザーがプロセスを追加でロードできるシステムリソースマネージャ(後のバージョンでワークロードマネージャに改名)。
IBMはMVSを数回アップグレードした。MVS/SE、MVS/SP バージョン1、MVS/XA を1981年に、MVS/ESA を1985年に、OS/390 を1991年に、z/OS を2001年にリリースしている[ 50] 。
VM/370は会話型モニターシステム (CMS)というシングルユーザー用のシステムに仮想マシン 機能を組み合わせたもので、CMSのコピーを各ユーザーの仮想マシン上で実行できるタイムシェアリング 機能がこれにより提供された。CP/CMSはこの構成の直系の子孫である[ 51] 。仮想マシン機能によりソフトウェアの開発者は仮想マシンの1つで開発作業を継続しながら別の仮想マシンを使ってテストすることができるようになり、CMSタイムシェアリングシステムはプログラムの開発に広く使われた[ 52] 。
VM/370はその後アップグレードが繰り返された。VM/SEPP (Systems Extensions Program Product)、VM/BSEPP (Basic Systems Extensions Program Product)、VM/SP (System Product)、VM/SP HPO (High Performance Option)、VM/XA MA (Extended Architecture Migration Aid)、 VM/XA SF (Extended Architecture System Facility)、VM/XA SP (Extended Architecture System Product)、VM/ESA (Enterprise Systems Architecture)、z/VM がリリースされた。またIBMはVMやその後継OS向けに、OSだけしか使えない特権命令をゲストOSに代わって実行するハイパーバイザー のエミュレーション 処理を高速化する、マイクロコード アシスト機能もオプションで提供した。CPハイパーバイザーをさらに高速化する[ 53] Start Interpretive Execution(SIE)命令を追加した[ 54] こともIBMが370/Extended Architectureに加えた機能強化だった。
^ “Timeline of Computer History: 1956: Software ”. Computer History Museum. 2007年9月4日閲覧。
^ “OS History - MCP ”. www.oshistory.net . 2009年2月21日時点のオリジナル よりアーカイブ。2020年6月17日閲覧。
^ a b c “A Brief History of Linux ”. 2017年11月7日時点のオリジナル よりアーカイブ。2017年11月4日閲覧。
^ “IBM 650 ”. IBM Archives (2003年1月23日). 2017年11月6日閲覧。
^ “7090/94 IBSYS Operating System ”. www.frobenius.com . 2017年11月6日閲覧。
^ Gray, George (March 1999). EXEC II . 1 . https://wiki.cc.gatech.edu/folklore/index.php/EXEC_II .
^ “A Career Interview with Bernie Galler”. IEEE Annals of the History of Computing 23 (1): 22–33. (Jan–Mar 2001). doi :10.1109/85.910847 .
^ Vyssotsky, V.; Pierce, E. (Jan 1985). Putting Unix in Perspective . 1 .
^ Conrad Weisert (2007年3月25日). “Reminiscences of Fortran ”. Information Disciplines, Inc. . 2017年11月6日閲覧。
^ FORTRAN Anecdotes . 6 . (January–March 1984). pp. 59–64. doi :10.1109/MAHC.1984.10010 . http://millosh.wordpress.com/2007/09/07/the-worlds-first-computer-operating-system-implemented-at-general-motors-research-labs-in-warren-michigan-in-1955/ .
^ John McCarthy. “Reminiscences on the History of Time Sharing ”. 2020年6月17日閲覧。 – describes the origins of timesharing
^ a b R. J. Creasy (September 1981). “The origin of the VM/370 time-sharing system”. IBM Journal of Research & Development 25 (5): 483–490. doi :10.1147/rd.255.0483 .
^ Peter J. Denning (November 1981). “Performance Modeling: Experimental Computer Science at its Best” . Communications of the ACM 24 (11). doi :10.1145/358790.358791 . http://denninginstitute.com/pjd/PUBS/ecs.pdf .
^ Melinda Varian, VM and the VM community, past present, and future, SHARE 89 Sessions 9059-9061, 1977; available online at www.princeton.edu/~melinda – outstanding source for CP/CMS and VM history
^ Denning, Peter (1997). “Before Memory was Virtual” . In the Beginning: Recollections of Software Pioneers . http://citeseer.ist.psu.edu/denning97before.html .
^ Luanne Johnson (2004年12月23日). “Company Details - National CSS ”. Computer History Museum . 2007年1月30日閲覧。
^ Feinleib, Harold (March 2005). A technical history of National CSS . Computer History Museum . http://www.computerhistory.org/corphist/documents/doc-42ae226a5a4a1.pdf
^ MTS History by Dan Boulet for Everything2.com
^ “MUSIC/SP Operating System - Introduction ”. webpages.mcgill.ca . 2017年11月6日閲覧。
^ ORVYL/370 Timesharing System Functional Description , Stanford University, 1978
^ WYLBUR Reference Manual , Stanford University, 1984
^ “Mainframe family tree and chronology ”. IBM Archives (2003年1月23日). 2017年11月6日閲覧。
^ a b c Chuck Boyer, The 360 Revolution
^ a b Johnston, Jerry (April 1, 2005). “VSE: A Look at the Past 40 Years” . z/Journal (Thomas Communications) (April/May 2005). ISSN 1551-8191 . OCLC 56140149 . http://www.zjournal.com/index.cfm?section=article&aid=293 .
^ a b Andrew S. Tanenbaum (2001). Modern Operating Systems (2 ed.). Prentice Hall . ISBN 978-8120320635 . https://archive.org/details/modernoperatings00tane
^ a b IBM Corporation (1965). IBM System/360 Basic Programming Support and IBM Basic Operating System/360 Programming Systems Summary . C24-3420-0. http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/bos_bps/C24-3420-0_BPS_BOS_Programming_Systems_Summary_Aug65.pdf
^ a b Ray Saunders. “MVS... And Before OS/360 ? ”. 2007年12月20日時点のオリジナル よりアーカイブ。2020年6月18日閲覧。
^ a b c d Auslander, M. A.; Jaffe, J. F.. “Functional structure of IBM virtual storage operating systems Part I: Influences of dynamic address translation on operating system technology” . IBM Systems Journal (IBM) 12 (4): pp. 368-381. doi :10.1147/sj.124.0368 . https://www.semanticscholar.org/paper/Functional-Structure-of-IBM-Virtual-Storage-Part-I%3A-Auslander-Jaffe/e55607c24c76a81d12421428e378f1d0d8e6242d
^ “The IBM 360/67 and CP/CMS ”. www.multicians.org . 2017年11月6日閲覧。
^ Brooks, F.P. (1995) [1975]. The Mythical Man-Month: Essays on Software Engineering . Addison-Wesley Professional. ISBN 978-0-201-83595-3 . https://archive.org/details/mythicalmonth00broo
^ Catalog of Copyright Entries. Third Series: 1971: January-June . (1973). https://books.google.com/books?id=IDQhAQAAIAAJ&pg=PA690&lpg=PA690#v=onepage&q&f=false
^ IBM System/360 and System/370 Bibliography . IBM. (March 1971). GA22-6822. http://www.bitsavers.org/pdf/ibm/360/bibliography/GA22-6822-16_System_360_System_370_Bibliography_Jul71.pdf
^ “IBM S/360 Functional Characteristics manuals (各モデル) ”. Bitsavers . 2020年6月18日閲覧。
^ “The midseventies SHARE survey ”. 2008年5月12日時点のオリジナル よりアーカイブ。2020年6月18日閲覧。
^ IBM System/360 Operating System Multiprogramming With a Fixed Number of Tasks (MFT) Concepts and Considerations . First Edition. IBM. (October 1966). GC27-6926-0. http://www.bitsavers.org/pdf/ibm/360/os/R13_Sep67/C27-6926-0_MFT_Concepts_Sep67.pdf
^ K. R. Blackman (1998). “Technical Note -- IMS celebrates thirty years as an IBM product” . IBM Journal of Research & Development 37 (4). http://www.research.ibm.com/journal/sj/374/blackman.html .
^ “IBM CICS – z Systems ”. www-306.ibm.com . 2017年11月6日閲覧。
^ “Linking Applications to Adabas ”. 2008年5月22日時点のオリジナル よりアーカイブ。2008年7月8日閲覧。 – lists the major 1970s-1980s TP monitors
^ Hugo, I. (November 15, 1989). Metier the model, but few followed - UK software industry . http://findarticles.com/p/articles/mi_m0SMG/is_n14_v9/ai_7951050 2008年7月8日閲覧。 .
^ “History of IBM Deutschland Entwicklung GmbH - 1960s ”. 2007年5月4日時点のオリジナル よりアーカイブ。2020年6月20日閲覧。
^ “Computer History: IBM 360/370/3090/390 Model Numbers ”. www.beagle-ears.com . 2017年11月6日閲覧。
^ “System/370 Announcement ”. IBM (1970年6月30日). 2020年6月20日閲覧。
^ “DPD chronology (1970–1974) ”. IBM. 2020年6月20日閲覧。 DPD = Data Processing Division, which was responsible for IBM's medium and large systems.
^ Pugh, E.W., Johnson, L.R. and Palmer, J.H. (1991). IBM's 360 and Early 370 Systems . MIT Press. ISBN 978-0-262-16123-7 . https://archive.org/details/ibms360early370s0000pugh
^ “IBM: z/VSE Operating System - History - 1980s ”. www-03.ibm.com (2008年9月15日). 2017年11月6日閲覧。
^ “IBM: z/VSE Operating System - History - 1990s ”. www-03.ibm.com (2008年9月15日). 2017年11月6日閲覧。
^ Non-IBM S/370 operating systems such as MTS also have no successors
^ IBM Corporation (January 1976). IBM System/370 Special Real Time Operating System Programming RPQ Z06751 Description and Operation Manual . http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/370/SRTOS/SH20-1773-0_Special_Real_Time_Operating_System_Description_and_Operation_Manual_Jan76.pdf
^ “3033 Technical press release ”. IBM Archives (1977年3月25日). 2017年11月6日閲覧。
^ “MVS Operating System ”. Operating System documentation project . 2017年11月6日閲覧。
^ Creasy, R. J. (1981). “The Origin of the VM/370 Time-Sharing System” . IBM Journal of Research and Development 25 (5): 483–490. doi :10.1147/rd.255.0483 . http://domino.watson.ibm.com/tchjr/journalindex.nsf/0/d6b9939ef2f3540b85256bfa0067f4d6 .
^ Seawright, L. H.; MacKinnon, R. A. (1979). “VM/370—A study of multiplicity and usefulness” . IBM Journal of Research and Development 18 (1): 4–17. doi :10.1147/sj.181.0004 . http://domino.watson.ibm.com/tchjr/journalindex.nsf/0/d6b9939ef2f3540b85256bfa0067f4d6 .
^ Osisek, D.L., Jackson, K.M., and Gum, P.H. (March 1991). “ESA/390 interpretive-execution architecture, foundation for VM/ESA - technical”. IBM Systems Journal 30 (1): 34–51. doi :10.1147/sj.301.0034 .
^ 370/Extended Architecture/Interpretive Execution . IBM. SA22-7095
専用機
汎用機
H/W OS
OS/360系 DOS/360系 VM系
CP40/CMS - VM/370 - VM/XA - VM/ESA - z/VM
TPF系 UNIX/Linux系
M/W
関連項目
太字 は販売中、"-"は後継関係