会話型モニターシステム(CMS、元々はケンブリッジモニターシステム)[ 1 ]は、シンプルな対話型シングルユーザーオペレーティングシステムです。CMSは元々 、1967年に実運用が開始されたIBMのCP/CMSオペレーティングシステムの一部として開発されました。CMSはIBMのVMファミリーの一部であり、IBMメインフレームコンピュータ上で動作します。VMは1972年に初めて発表され、現在でもz/VMとして使用されています。
CMSは、 VM制御プログラムによって作成されたプライベート仮想マシン上で「ゲスト」オペレーティングシステムとして動作します。制御プログラムとCMSが連携することで、マルチユーザー型のタイムシェアリングオペレーティングシステムが構築されます。
CMSは元々、IBMのCP/CMSオペレーティングシステムの一部として開発されました。当時、この略語は「Cambridge Monitor System」(または「Console Monitor System」)を意味していました。
1972年、IBMはSystem/370向けにCP/CMSを再実装したオペレーティングシステムVM/370を発表し、同時にSystem/370シリーズに仮想メモリハードウェアを追加することも発表した。CP /CMSとは異なり、VM/370はIBMによってサポートされた。VMは一連のバージョンアップを経て、現在でもz/VMとして使用されている。
様々なバージョンやリリースを経てきたCMSプラットフォームは、CP-40上で動作していた初代CMSの直系の子孫として、依然として非常に特徴的な存在であり続けました。今日のユーザーにとって馴染み深い多くの重要なユーザーインターフェース設計は、CP-40開発の一環として、1965年に既に決定されていました。例については、「CP-40上のCMS」を参照してください。
VMとCP/CMSはどちらもIBMにおいて波乱に満ちた歴史を辿った。VMはIBMの「戦略的」オペレーティングシステム(主にOSおよびDOSファミリー)の一つではなく、タイムシェアリングとバッチ処理の目標をめぐるIBM内部の政治的対立に悩まされた。この対立こそが、 CP/CMSが当初サポート対象外のシステムとしてリリースされた理由であり、VMがIBM社内で開発およびサポートのリソースをしばしば制限された理由でもある。CP/ CMSのセルフサポート時代に最初に設立され、VMのリリース後も活発に活動を続けていた非常に強力なユーザーコミュニティは、オペレーティングシステムに多大な貢献をし、IBMの「もう一つのオペレーティングシステム」を運用する上での困難を軽減した。
CMSは、 CP/CMSで確立されたVM/CMSアーキテクチャの不可欠な部分です。各CMSユーザーは、CMSがスタンドアロンのオペレーティングシステムとして動作する、基盤となる物理コンピュータのシミュレートされたコピーであるプライベート仮想マシンを制御できます。このアプローチは 長年にわたって一貫しており、以下の点に基づいています。
CMSが仮想マシン環境とどのように連携するかについての詳細は、VMおよびCP/CMSに関する記事を参照してください。
CMSは元々スタンドアロンのオペレーティングシステムとして開発され、ベアメタルマシン上でも動作可能でした(もちろん、そのような使い方をする人はいないでしょうが)。しかし、現在ではCMSはVM環境以外では動作しなくなっており、VM環境は様々な重要な機能に必要なハイパーバイザーインターフェースを提供しています。
CMSは、アプリケーションやバッチジョブの実行、データファイルの管理、アプリケーションの作成とデバッグ、クロスプラットフォーム開発、および他のシステムやユーザーとの通信を行うための環境をユーザーに提供します。
CMSは現在も開発段階にあり、広く利用されている。
ユーザーはユーザーIDとパスワードを入力してVMにログインし、自身の仮想マシンを起動します。これは「IPL CMS」コマンド(「IPL」は初期プログラムロードを意味し、IBMの従来からの起動用語)を実行することで行えますが、通常はユーザーのために自動的に実行されます。個人設定は、「PROFILE EXEC」という名前の標準シェルスクリプトファイルによって行われ、アクセスするディスクやライブラリなど、ユーザーが指定した環境設定が設定されます。
CMSは、テレタイプ式の紙端末、そして後に登場した「ガラス製テレタイプ」と呼ばれるダム端末の時代に始まりました。しかし、1970年代後半には、ほとんどのVMユーザーはフルスクリーン端末、特にIBMメインフレームで広く普及していたトランザクション処理端末であるIBM 3270を介して接続していました。3270はIBMの製品ラインにおいて戦略的な役割を担っており、当時の大規模データセンターにとって当然の選択でした。その後、他の多くのメーカーも3270プロトコルをエミュレートするバイシンク端末を提供するようになりました。
3270シリーズはローカルバッファストレージとある程度の処理能力を備え、通常は画面全体のデータを一度に処理していました。編集作業はローカルで行い、ENTERキーまたはプログラムファンクションキー(PFK)が押されると、一連のフィールド(またはページ全体)を一度に送信しました。
3270ファミリーは、「スマート」な制御ユニット、コンセントレータ、その他のネットワーク処理要素を組み込み、バイシンク同期通信プロトコルを介して専用回線で比較的高速にメインフレームと通信しました。(これらのメインフレーム指向の通信技術は、デバイスのアドレス指定、ルーティング、エラー訂正、マルチポイントやマルチドロップトポロジーなどの多様な構成のサポートなど、現代の通信ネットワークでは当然のこととされている機能の一部を提供しました。)
3270の方式は、当時主流だった低価格のダム端末とは異なっていた。ダム端末はポイントツーポイント方式で非同期接続だった。初期のCP/CMSやVMサイトの重要な顧客層であった商用タイムシェアリングユーザーは、通常の音声回線で300bpsまたは1200bpsのモデムを介して接続できるため、こうした端末に依存していた。3270専用の回線を設置することは、多くの場合、実用的でも経済的でも時間的にも困難だった。
3270のブロック指向のアプローチは、IBMのバッチ処理とパンチカード処理を重視したコンピューティングの考え方により合致しており、当時のIBMメインフレームにとって特に重要でした。同時代のミニコンピュータとは異なり、ほとんどのIBMメインフレームは文字単位の割り込みに対応していませんでした。ダム端末のサポートは、IBM 270x ( IBM 3705参照)やMemorex 1270などの端末制御装置に依存していました。これらの非同期端末コントローラは、RETURNキーが押されるまで、固定の最大長までの文字を1行ずつ組み立てていきました。文字数が多すぎるとエラーとなり、当時のユーザーにはお馴染みの状況でした。(ダイヤルアップ接続に必要な場合を除き、ほとんどのデータセンターにはこのような機器は設置されていませんでした。3270のアプローチが好まれました。)
3270のようなブロック指向端末の登場により、それまで主流だった行指向エディタとは対照的に、メインフレーム上で画面指向エディタを実装することが現実的になった。これは、当時のミニコンピュータやその他の文字指向システムが持っていた重要な利点であり、3270でそれが可能になったことは大いに歓迎された。
ページ指向のメインフレームトランザクション処理(特にCICS経由)に重点を置いた3270の世界と、文字指向のミニコンピュータとダイヤルアップタイムシェアリングに重点を置いた非同期端末の世界との間には、大きな隔たりが生じた。非同期端末ベンダーは、エスケープシーケンスを介してアクセスされる様々なスマート端末機能を搭載することで、徐々に製品を改良していった。しかし、これらのデバイスが3270ユーザーを奪い合うことはほとんどなく、IBMはメインフレームデータセンターのハードウェア購入決定において依然として優位を保っていた。
振り返ってみると、ブロック指向コンピューティングと文字指向コンピューティングの間には、哲学的に大きな相違があった。非同期端末コントローラと3270はどちらもメインフレームにブロック指向のインタラクションを提供した。つまり、端末入力をカードリーダーのように見せたのだ。IBMが好んだこのアプローチは、まったく異なるユーザーインターフェースパラダイムとプログラミング戦略の開発につながった。文字指向システムは異なる進化を遂げた。その違いは、主流のCICSのアトミックトランザクション方式とUNIXの対話型ストリーム指向方式を比較すると明らかである。VM/CMSは、これらの両極端の中間で進化を遂げた。CMSは、ステートレスなトランザクション指向インターフェースというCICSのアプローチを採用するのではなく、コマンド駆動型でステートフルな対話型環境を採用している。しかし、CMSは文字割り込みではなく、ページ単位または行単位のインタラクションに対応する。
CMSは、当時の基準(そしてもちろん、今日一般的に使われているようなグラフィカルユーザーインターフェース環境が広く普及する以前の時代)と比較して、効率性と使いやすさという点で非常に高い評価を得ていました。同じVMメインフレーム上で数百人(後には数千人)もの同時CMS対話型ユーザーがいることも珍しくなく、一般的な「些細な」機能の応答時間は1秒未満でした。VM/CMSは、同時対話型ユーザーのサポートという点で、MVSや他のIBMオペレーティングシステムを常に凌駕していました。
多くのCMSユーザーは、 COBOL、FORTRAN、PL/I、C/370、APL、そしてスクリプト言語REXXといった言語でプログラミングを行っていました。VM/CMSは、 MVSなどのIBMの他のオペレーティングシステム上で動作する本番システムの開発プラットフォームとしてもよく利用されていました。
他のCMSユーザーは、 FOCUS、NOMAD、SPSS、SASなどの市販ソフトウェアパッケージを使用していた。
かつて、CMSは電子メールやオフィス生産性のための主要な環境でもありました。重要な製品の一つに、IBMのPROFS(後にOfficeVisionに改名)がありました。
一般的に使用されているCMSツールとしては、エディタであるXEDITとプログラミング言語であるREXXが挙げられる。これらの製品はどちらも他のプラットフォームに移植されており、現在ではメインフレーム環境以外でも広く利用されている。