IBMメインフレーム用オペレーティングシステムの歴史

IBMメインフレーム用オペレーティングシステムの歴史は、世界最大のメインフレーム機メーカーとして長期に渡り君臨したIBMの歴史であり、オペレーティングシステムの歴史の中でも特に注目に値する。

IBMが初期にメインフレーム用としてユーザーに提供していたオペレーティングシステム(OS)は、CP-67以降から実装された仮想マシン以外はそれほど革新的といえるものではなかった。しかし実績のある確かなテクノロジーを優先する同社の姿勢は評判を呼び、コンピュータの購入希望者はIBMのシステムであれば間違いないと納得しやすかった。IBMのメインフレーム用OSであるz/OSz/VMz/VSEz/TPFは、1960年代に開発されたOSの後継バージョンで、大幅に改良されている。

当記事ではIBM提供のOS以外にも、IBM以外が提供したIBMメインフレームで著名なOSについても記載する。

System/360以前 編集

当初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台以上のディスクドライブを持つ場合はこの数を減らすことができた)。カード方式のジョブ制御言語、FORTRANCOBOLコンパイラアセンブラソートプログラムなどの様々なユーティリティなどが付属した[5][6]

1958年にミシガン大学はコンピュータシステムにGM-NAA I/Oを採用し、学生が書いた小さなジョブを大量に処理するのに適したUMESを開発した。UMESは1967年にMTSタイムシェアリングシステムへ置き換わるまで使われた[7]

BESYS 編集

ベル研究所はBESYS (別名BELLMON)を開発して1960年代中頃まで使用した。 ベル研究所はこれを無料・無保証で他社にも公開した[8][3]

FORTRANモニターシステム 編集

IBSYSが登場する前にIBMはIBM 70970907094の各機種用に、FORTRANのプログラムをコンパイルするための単機能OSとしてテープベースのOSであるFMSを開発した。FMSとFORTRANコンパイラは同じテープの中に格納されていた[9][10]

初期のタイムシェアリングシステムと仮想マシンシステム 編集

MITフェルナンドコルバトは、メインフレームのIBM 704IBM 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を開発するのに必要なツールを開発するのに使われ、FORTRANCOBOLコンパイラソートなどのユーティリティ及びこれら全てをビルドするのに必要だったアセンブラなどのツールがあり、これらのツールは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を悪い例として全体的に引用している。

DOS/360 編集

System/360シリーズの中でもハイエンド向けのOSとしてOS/360が推奨された一方で、DOS/360はローエンド向けの非力なマシンに適した平凡なOSだった。これには一連のユーティリティプログラム、マクロアセンブラFORTRANCOBOLコンパイラなどが含まれていた。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 編集

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 編集

ユーザーはMFTをインストールする際に、メモリを最大で4本のパーティションに固定長で区切ることができ、複数のアプリケーションを同時に実行できるように設定できた[35]。MFTバージョンII (MFT-II)は最大で52本まで上限を緩和した。

MVT 編集

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にほぼ置き換えられた。

TPモニタ 編集

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で動作するトランザクションモニタのIMSCICSであっても、数百便のフライトの予約を数千の旅行代理店から受け付けるのに十分な処理速度がなかったことから、IBMはACPやその後継版を開発した。

最後のパブリックドメイン版であり無料版のACPはACP 9.2で、1本のミニリールテープで配布され、48インチ幅の棚一列がいっぱいに埋まるほどの数十冊のマニュアルが付属し、IBM 3340のディスクドライブに展開でき、ACPシステムの全機能が完璧に動作する形で提供された。

ACPはマスターカード®などの銀行発行カードや、金融機関向けのアプリケーションを主なユーザーとして想定していたが、航空業界用の予約システムにも利用でき、当時としてはACPは多目的な汎用OSだった。

プログラムの開発や、オンライン経由で並行してファイルをメンテナンスしたりするのに使える、VS1という(必要であればVS2も可能な)バーチャルOSをゲストとして利用できるハイパーバイザーモジュール(CHYR)が後期のACPに統合され、まさに汎用的なOSだった。

一部では本番環境もハイパーバイザーモードのVS2で運用され、IMS DBも搭載されることがあった。

System/360 Model 20 編集

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 Model 44 編集

System/360の周辺機器を使える別アーキテクチャのプロセッサ。360/44は地質学や気象学などのデータ分析に用いられる浮動小数点計算機能を搭載しており、科学技術計算に適した設計だった。内部のアーキテクチャが他機種と異なり、特定の用途に特化した設計であったことから、360/44にはPS/44という専用のOSが提供された[41]。Model 44にはSystem/360が持つ命令の一部がなかったが、命令をエミューレーションする機能があり、OS/360を実行することが可能だった。360/44とPS/44の直接的な後継機は作られなかった。

System/370と仮想メモリOS 編集

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/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 編集

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とMVS 編集

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 編集

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に加えた機能強化だった。

脚注 編集

  1. ^ Timeline of Computer History: 1956: Software”. Computer History Museum. 2007年9月4日閲覧。
  2. ^ OS History - MCP”. www.oshistory.net. 2009年2月21日時点のオリジナルよりアーカイブ。2020年6月17日閲覧。
  3. ^ a b c A Brief History of Linux”. 2017年11月7日時点のオリジナルよりアーカイブ。2017年11月4日閲覧。
  4. ^ IBM 650”. IBM Archives (2003年1月23日). 2017年11月6日閲覧。
  5. ^ 7090/94 IBSYS Operating System”. www.frobenius.com. 2017年11月6日閲覧。
  6. ^ Gray, George (March 1999). EXEC II. 1. https://wiki.cc.gatech.edu/folklore/index.php/EXEC_II. 
  7. ^ “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. 
  8. ^ Vyssotsky, V.; Pierce, E. (Jan 1985). Putting Unix in Perspective. 1. 
  9. ^ Conrad Weisert (2007年3月25日). “Reminiscences of Fortran”. Information Disciplines, Inc.. 2017年11月6日閲覧。
  10. ^ 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/. 
  11. ^ John McCarthy. “Reminiscences on the History of Time Sharing”. 2020年6月17日閲覧。 – describes the origins of timesharing
  12. ^ 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. 
  13. ^ 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. 

  14. ^ 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
  15. ^ Denning, Peter (1997). “Before Memory was Virtual”. In the Beginning: Recollections of Software Pioneers. http://citeseer.ist.psu.edu/denning97before.html. 
  16. ^ Luanne Johnson (2004年12月23日). “Company Details - National CSS”. Computer History Museum. 2007年1月30日閲覧。
  17. ^ Feinleib, Harold (March 2005). A technical history of National CSS. Computer History Museum. http://www.computerhistory.org/corphist/documents/doc-42ae226a5a4a1.pdf 
  18. ^ MTS History by Dan Boulet for Everything2.com
  19. ^ MUSIC/SP Operating System - Introduction”. webpages.mcgill.ca. 2017年11月6日閲覧。
  20. ^ ORVYL/370 Timesharing System Functional Description, Stanford University, 1978
  21. ^ WYLBUR Reference Manual, Stanford University, 1984
  22. ^ Mainframe family tree and chronology”. IBM Archives (2003年1月23日). 2017年11月6日閲覧。
  23. ^ a b c Chuck Boyer, The 360 Revolution
  24. ^ 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. 
  25. ^ a b Andrew S. Tanenbaum (2001). Modern Operating Systems (2 ed.). Prentice Hall. ISBN 978-8120320635. https://archive.org/details/modernoperatings00tane 
  26. ^ 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 
  27. ^ a b Ray Saunders. “MVS... And Before OS/360 ?”. 2007年12月20日時点のオリジナルよりアーカイブ。2020年6月18日閲覧。
  28. ^ 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 
  29. ^ The IBM 360/67 and CP/CMS”. www.multicians.org. 2017年11月6日閲覧。
  30. ^ 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 
  31. ^ 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 
  32. ^ 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 
  33. ^ IBM S/360 Functional Characteristics manuals (各モデル)”. Bitsavers. 2020年6月18日閲覧。
  34. ^ The midseventies SHARE survey”. 2008年5月12日時点のオリジナルよりアーカイブ。2020年6月18日閲覧。
  35. ^ 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 
  36. ^ 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. 
  37. ^ IBM CICS – z Systems”. www-306.ibm.com. 2017年11月6日閲覧。
  38. ^ Linking Applications to Adabas”. 2008年5月22日時点のオリジナルよりアーカイブ。2008年7月8日閲覧。 – lists the major 1970s-1980s TP monitors
  39. ^ 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日閲覧。. 
  40. ^ History of IBM Deutschland Entwicklung GmbH - 1960s”. 2007年5月4日時点のオリジナルよりアーカイブ。2020年6月20日閲覧。
  41. ^ Computer History: IBM 360/370/3090/390 Model Numbers”. www.beagle-ears.com. 2017年11月6日閲覧。
  42. ^ System/370 Announcement”. IBM (1970年6月30日). 2020年6月20日閲覧。
  43. ^ DPD chronology (1970–1974)”. IBM. 2020年6月20日閲覧。 DPD = Data Processing Division, which was responsible for IBM's medium and large systems.
  44. ^ 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 
  45. ^ IBM: z/VSE Operating System - History - 1980s”. www-03.ibm.com (2008年9月15日). 2017年11月6日閲覧。
  46. ^ IBM: z/VSE Operating System - History - 1990s”. www-03.ibm.com (2008年9月15日). 2017年11月6日閲覧。
  47. ^ Non-IBM S/370 operating systems such as MTS also have no successors
  48. ^ 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 
  49. ^ 3033 Technical press release”. IBM Archives (1977年3月25日). 2017年11月6日閲覧。
  50. ^ MVS Operating System”. Operating System documentation project. 2017年11月6日閲覧。
  51. ^ 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. 
  52. ^ 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. 
  53. ^ 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. 
  54. ^ 370/Extended Architecture/Interpretive Execution. IBM. SA22-7095 

参考文献 編集

関連項目 編集

IBMメインフレーム
シリーズ名 アーキテクチャ 主なモデル 主なOS 主な特徴
1952 701シリーズ - 701, 704, 709, 7090, 7040, 7094 - 科学技術計算用、真空管/トランジスタ
1953 702シリーズ - 702, 705, 7080 - 真空管/トランジスタ
1953 650シリーズ - 650, 7070, 7074, 7072 - 科学技術計算用、真空管/トランジスタ
1959 1401シリーズ - 1401, 1410, 1440, 7010, 1460 - 商用計算用、オールトランジスタ
1961 その他 - 305(RAMAC), 7030(Stretch) - ディスク装置(RAMAC)、マルチタスク(Stretch)
1964 System/360 S/360 20 - 195 OS/360, DOS/360, CP-67/CMS 汎用機アーキテクチャIC24ビットアドレッシング、仮想機械
1970 System/370 S/370 115 - 195 OS/VS(MVS), DOS/VS, VM/370 仮想記憶マルチプロセッサPPAR
1977 30x0, 4300, 9370 S/370, S/370-XA 303x/308x/3090, 43x1, 937x MVS/XA, DOS/VSE, VM/XA 31ビットアドレッシング・動的チャネルサブシステム(S/370-XA)
1990 ES/9000 S/390, ESA/390 9021, 9121, 9221 MVS/ESA, VSE/ESA, VM/ESA, AIX/ESA 64ビットデータ空間、拡張ストレージ(ES)、LPARESCONFICON
1994 S/390 ESA/390 9672/9674(G1 - G6), IBM Multiprise 2000/3000 OS/390, VSE/ESA, VM/ESA, Linux CMOS, 並列シスプレックス, UNIX互換環境(OS/390 USS)、Linuxサポート
2000 eServer zSeries z/Architecture z800/z900, z890/z990 z/OS, z/VSE, z/VM, Linux 64ビットアドレッシング、IFL、zAAP、zIIP、IPv6
2005 System z z/Architecture z9, z10 z/OS, z/VSE, z/VM, Linux IRD
2010 zEnterprise z/Architecture z114/z196, z12 z/OS, z/VSE, z/VM, Linux ブレード拡張(POWER, x86)
2015 z System z/Architecture z13, LinuxOne (z13)z/OS, z/VSE, z/VM, Linux
(LinuxOne) Linux, z/VM
2017 IBM Z z/Architecture z14, LinuxOne II (z14)z/OS, z/VSE, z/VM, Linux
(LinuxOne) Linux, z/VM
暗号化zHyperLink
2019 IBM Z z/Architecture z15, LinuxOne III (z15)z/OS, z/VSE, z/VM, Linux
(LinuxOne) Linux, z/VM
全方位型暗号化技術、Data Privacy Passports、OpenShift
2022 IBM Z z/Architecture z16 (z16)z/OS, z/VSE, z/VM, Linux IBM Telumプロセッサー、オンチップのAIアクセラレーター、耐量子暗号