VM/370 Community Edition (CE)は、16Mのストレージを持つ単一のCPU上で動作可能な、クラシックなIBMメインフレームオペレーティングシステムの現代的で「マキシマリスト」なバージョンを提供します。Dockerコンテナを使用することで、ユーザーは物理的なヴィンテージハードウェアを必要とせずに、レガシーソフトウェアやコマンドラインツールをサポートするターミナル環境にアクセスできます。

cmsuserアカウントのVM/370 Community Editionログインプロンプトを表示するターミナル画面。
VM/370 Community Editionは、レガシーメインフレームシステムにアクセスするためのターミナル環境を提供します。rbanffy.github.io

この画像は、VM/370 Community Edition環境によって提供される初期のターミナルインターフェースを説明しています。

コンテナ化を介したメインフレームへのアクセス

VM/370 CEを実行するための最もアクセシブルな方法は、DockerまたはPodmanを介した方法です。特定のシェルコマンドを実行することで、ユーザーはメインフレームOSをホストし、3270ターミナルポートを公開するコンテナを起動できます。

このコンテナイメージはVM/370 Community Editionチームの成果に基づいており、オープンソースまたはパブリックドメインのソフトウェアのみを実行します。

「Linuxと比較するならば、VM/370 R6(CEのベースとなっているリリース)はLinusが自分の寝室で公開したLinux 1.0であり、VM/370 CEは最新のFedora(お好みのマキシマリストなディストリビューションを入れてください)に相当するでしょう。」

— Fun things to do with your VM/370 CE machine

画面指向のターミナルとのやり取り

自動的にスクロールする現代のターミナルエミュレータとは異なり、IBMメインフレームで使用される3270ターミナルは画面指向です。これらは初期のWebフォームと同様に機能し、メインフレームが全画面のデータを送信し、ユーザーが変更を送信するのを待機します。

画面はスクロールしないため、ユーザーはPA2キー(x3270エミュレータではAlt-2にマッピング)を使用してターミナルをクリアし、メインフレームから次のページのテキストを要求する必要があります。

レガシープログラミングとコンパイル

この環境では、BASICやFORTRANなどのヴィンテージな言語を実行できます。例えば、FORTRANプログラムをコンパイルすると、パンチカードと一緒に印刷するために伝統的に使用されていたフォーマット済みの出力である「リスティング」ファイルが生成されます。

VM/370環境でBASICプログラムの編集を表示するターミナル画面。
ユーザーはコンテナ化された環境内でBASICなどのヴィンテージなプログラミング言語と対話したり編集したりできます。rbanffy.github.io

この視覚資料は、プログラミングセクションで説明されているレガシーコードを実行および編集する能力を実証しています。

コンパイラによって生成されたフォーマット済みのFORTRANコードリスティングのスクリーンショット。
VM/370 CEでFORTRANプログラムをコンパイルすると、伝統的な「リスティング」ファイルが出力として生成されます。rbanffy.github.io

この画像は、システムがFORTRAN出力のために伝統的なリスティングファイルを生成するという主張を直接裏付けています。

システムはデータ定義を管理するために「FILEDEF」コマンドを使用します。これにより、ユーザーは特定のファイル番号(FORTRANのデフォルトであるファイル6など)からの出力をターミナルや他のデバイスにリダイレクトできます。

制限とトレードオフ

Community Editionは非常に多機能ですが、元のVM/370のアーキテクチャによって制約を受けており、環境は単一のCPUと16Mのストレージに制限されます。

システムは侵入が少なかった時代に設計されたものであるため、ユーザーはセキュリティに注意する必要があります。ソースでは、VM/370メインフレームを直接インターネットに公開しないことを推奨しています。