メインフレームのMVS3.8jをLinuxMint 22.3で学習する方法
1.概要
ubuntu 20.04で構築したMVS3.8j環境のバックアップを活用して、LinuxMint 22.3で動作を試験をしました。利用したのはIBMのメインフレームのオペレーティングシステムのMVS3.8jで、参考資料に沿ってSYSGENしたものです。これをHerculesでSystem/370のエミュレーションを実施して、i3-7100上で動作確認をしました。その内容を記載します。
2.詳細
参考資料を参照すると、2024年5月に更新されているようです。私は、Installation Stepsを実行して環境のGeneration(Build)をubuntu 20.04で実施して、バックアップを取得していました。この環境を復元して、i3-7100で動作確認をして、問題なく動作しました。
i3-7100はx86_64なので、System/370命令セットを理解できません。そこで、Herculesを利用してSystem/370をエミュレーションできる環境を準備して、i3-7100をSystem/370のハードウェアのように見せます。その環境でMVS3.8jを動かします。
MVS3.8jで提供される機能は、シングルCPUのサポート、物理メモリ24MB、ディスクはIBMの3350や3380などのモデルが用意されます。JES2、NET(VTAM)、TSOが起動し、3270端末エミュレータを利用してフルスクリーンエディタのRPFで操作できます。仮想メモリは24MBで物理メモリと同じ設定になっていました。
現在のPCを利用している方には、CPUが1個、メモリが24MB、IBM3350ディスクが300MBと知ると何としょぼい環境と感じると思います。しかし、この規模は1980年頃の大型コンピュータで計算室に鎮座した大規模なシステムと知ると驚かれます。
1984年にIBM PC/ATが登場し、MS-DOS(同時はIBM DOS)が1MBのメモリを利用するOSとして登場しました。その後、Intel CPUの発展、Memoryの大容量化、ディスク容量増大と小型化、SSDの利用、VGAによる高速グラフィック処理、TCP/IP利用、Ethernet利用、Internet利用と進み、桁違いの環境を個人で利用できるようになっています。
MVS3.8jの開発言語も現在の環境と異なり、COBOL,FORTRAN,RPGです。私はCOBOLのプログラムを記述して、コンパイル&リンク後、実際に走らせてみました。コンパイル&リンクは数秒で完了。私には驚異的な性能で実行されたと感じました。i3-7100は3.9GHzです。単純に1clockで1命令を実行できると想定すると、3900 MIPSとなります。HerculesでSystem/370のエミュレーションを考慮し、COBOLのコンパイルが数秒で実行できたので、私の感覚では数10MIPS程度の性能が出ている気はします。
LinuxMint 22.3環境なので、MVS3.8jのCPUやMemoryの追加設定をConfig修正できないかを調べました。mvs.cnfを調べるとMAINSIZEは8で、メモリ容量は8MBの設定なので設定変更にチャレンジしました。しかし、既定値設定で24MBに設定されていることがHerculesのconsoleを調べてわかり、変更することはできませんでした。CPU個数の変更はMultiProcessor定義変更によるBuildが必要で簡単ではないこともネットで調べて知りました。
この環境で何か特別な開発ができるわけではありません。しかし、当時の最先端環境を私達のPC上で再現し、コンピュータの歴史や技術の発展を肌で勉強するには、非常に価値がある環境だと感じています。
実は、この「一つの時代を築いたIBMの独自技術」の歴史を振り返る中で、現代の日本の自動車技術にも通じる「他社が真似できない強さ」について、ふと考えさせられることがありました。それについては後半の追加セクションで少し触れたいと思います。
3.所見
MVS3.8jでもTurnkey MVSはBuild済み環境を提供しています。Update 5が、2026-02-18にリリースされてます。MVSとは何だろうと感じている方には手軽に試すことができます。しかし、MVSを起動してTSOにlogon後、エディタを利用してCOBOLプログラムを記述して実行することは容易なことではありません。現在のプログラム言語(Pythonなど)と比較すると、手順は多く、実施できることは限られます。
MVSはz/OSと名前を変え、IBM System zで稼働します。参考資料を参照するとPCとは異なる次元のシステムで重要なシステムの基盤として利用されています。このベースを学習する価値はあります。MVS3.8jは2024年5月に更新されているので、もう一度、最初からBuildをやってみたいと思っています。
4.追加
(1) Hercules consoleの起動時の表示
HHCCP003I CPU0000 architecture mode S/370
HHCPN001I Control panel thread started: tid=71D40D639B80, pid=2218
HHCAO001I Hercules Automatic Operator thread started;
tid=71D3F7DFD6C0, pri=0, pid=2218
ipl 150
IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.8 .VS2
HHC1C001A Enter input for console device 0011
/(0011) r 00,clpa
IEA940I THE FOLLOWING PAGE DATA SETS ARE IN USE
PLPA ... SYS1.PAGELPA
COMMON . SYS1.PAGECSA
LOCAL .. SYS1.PAGEL00
IEA357I ERRORS IN IEAPAK00 LIST
IEA357I IGC0J05B INVALID - MODULE IGNORED
IEA357I IGG08101 INVALID - MODULE IGNORED
IEA357I IGG08102 INVALID - MODULE IGNORED
IEA357I IGG08103 INVALID - MODULE IGNORED
IEA357I IGG08104 INVALID - MODULE IGNORED
IEA357I IGC11110 INVALID - MODULE IGNORED
IEA357I IGC12110 INVALID - MODULE IGNORED
*00 IFB010D ENTER 'IPL REASON,SUBSYSTEM ID' OR 'U'
IEE360I SMF NOW RECORDING ON SYS1.MANX ON MVSRES TIME=02.25.05
AUTO COMMANDS IN COMMND00 BEING PROCESSED CN=00
IEF677I WARNING MESSAGE(S) FOR JOB JES2 ISSUED
*01 $HASP426 SPECIFY OPTIONS - HASP-II, VERSION JES2 4.1
/(0011) r 00,u
*IEA994A ALL SYS1.DUMP DATA SETS ARE FULL AND NO SVC DUMPS CAN BE TAKEN
IEE480I r COMMAND ABEND D23, TERMINATED
IGF992I MIH INIT COMPLETE, PRI=000300, SEC=000015
/(0011) r 01,format,noreq
IEE600I REPLY TO 01 IS;SUPPRESSED
*02 $HASP436 REPLY Y OR N TO CONFIRM CHECKPOINT RECORD CHANGE
Command ==>
(2) 【コラム】IBMの歴史から考える、トヨタのストロングハイブリッド方式
技術の「一人勝ち」とトヨタのハイブリッド
ここからは少し余談ですが、今回のMVS(IBM汎用機)の歴史を振り返る中で、現代の「トヨタのストロングハイブリッド方式」に通じるものを感じました。
圧倒的な燃費性能を誇るトヨタのハイブリッド車を見ていて、「他社が真似できないコア技術を持つ企業は、時代を超えて一人勝ちする」という法則を改めて強く感じています。かつて「IBMの汎用機(メインフレーム)とそのOS」が市場を席巻し、対抗メーカーを圧倒した歴史は、まさにその代表例です。
現代の自動車業界でも同じことが起きているかもしれません。トヨタはハイブリッド特許を無償公開したものの、システムが極めて複雑なため、他社が同じものを作ろうとしても製造コストや信頼性の面で採算が合わず、追随できていません。
メインフレームのMVSが現代でも「z/OS」として社会基盤を支え続けているように、トヨタの技術も他社が追いつけない絶対的な領域に達しているのかもしれません。
更新日
2026-08-07
コメント
コメントを投稿