メインフレーム大好きなオッサンの皆様、お疲れ様です&いつもお世話になっております。


メインフレームといえば 3270 エミュレータです。知らない人のために言っておくと「さんにーななまるえみゅれーた」と読みます。メインフレームと呼ばれる大型ホストコンピュータとのコミュニケーションに使われる表示端末 "IBM 3270" と、そのソフトウェアエミュレーターを指して使われます。

この 3270 エミュレータは、IBM が提供する(上記リンク先の)PCOMM(「ぴーこむ」以下省略)を始め、多くのソフトウェアが提供されました。そのいくつかはいわゆるオープンソースソフトウェアで、その代表的なものの1つが "x3270" だと思っています:
http://x3270.bgp.nu/

2017072701


x3270 はもともと Unix/Linux 向けの X Windows System 上で動作する 3270 エミュレータとして開発され、のちに CUI のターミナルや Windows/Mac OS でも動作するよう移植されました。現在でもソースコードやバイナリが提供されています。

この x3270(の CUI 向けアプリ)をラズパイのターミナル上で動くように導入するのが今回の目的です。さすがにラズパイ向けのバイナリは提供されていないので、ソースコードをダウンロードしてビルドします。といっても基本的にはターミナルを開いて以下の通りに実行するだけです:
$ cd /tmp
$ mkdir 3270
$ cd 3270
$ wget http://downloads.sourceforge.net/project/x3270/x3270/3.3.14ga11/suite3270-3.3.14ga11-src.tgz
$ tar xzvf suite3270-3.3.14ga11-src.tgz
$ cd c3270-3.3
$ ./configure && make
$ sudo make install

これで c3270 というコマンドが使えるようになったはずです:
$ c3270
c3270 v3.3.14ga11 Thu Jul 27 05:59:44 UTC 2017 pi

Copyright 1989-2013 by Paul Mattes, GTRC and others.
Type 'show copyright' for full copyright information.
Type 'help' for help information.

c3270>

"help" と入力すると全体ヘルプが、"help XXXX" で XXXX という項目のヘルプが表示されます。c3270 の終了(ターミナルに戻る)は "quit" です:
c3270> help
  help all           all commands
  help 3270          3270 commands
  help interactive   interactive (command-prompt) commands
  help      help for one 
  help options       command-line options
  help scripting     scripting commands
  help file-transfer file transfer options

c3270> quit
$

実際に接続先となるメインフレーム(ホストコンピュータ)のアカウントを所有している場合はサーバー名(IPアドレス)とポート番号(23)を指定して起動&接続します(ポート番号が 23 の場合は省略可能です):
$ c3270 192.XXX.XXX.XXX:23

接続に成功すると、以下のような z/OS 画面が表示されます:
2017072801



さて、そもそも「なんで今さら 3270 ??」と思う人もいると思いますが、実はいま学生を対象に IBM 主催のメインフレームコンテスト、その名も
 MASTER THE MAINFRAME CONTEST 2017
 IBM メインフレームコンテスト 2017

が開催されています:
https://www.ibm.com/it-infrastructure/jp-ja/masterthemainframe/

2017072802


このコンテストの参加者へはクラウド上の IBM メインフレーム(z13)環境にアクセスするアカウントが提供され、Windows や Mac、Linux といった各自の環境からメインフレームに接続して、与えられた課題をクリアしていく、というものです。(ある意味)今では貴重になったメインフレームの世界を体験しつつ、仮想化の基礎となったメインフレーム技術スキルを身に付けていくことを目的としています。

このコンテストに参加する上でのプログラミングスキルは特に必要ではありませんが、接続環境は自分で用意する必要があります。「Windows、Mac、Linux といった環境では物足りない!」というアピールをしたい変態ギークな皆様は是非ここで紹介したラズパイ環境からのアクセスに挑戦してみてください。

なお、ラズパイから(というよりも、ここで紹介した c3270 を使って)メインフレームホストにアクセスする場合の注意点があります。IBM がコンテスト用に用意したガイドでは Windows, Mac, Linux という3種類のいずれかの GUI (x3270)環境から利用することを前提としたガイドが提供されています。一方で、ここで紹介したような CUI(c3270)環境から利用する場合、一部のキーバインドが正しく動作しないことが分かっています。例えば z/OS の画面内で「1つ前に戻る」には F3 キーを押すようガイドされているのですが、c3270 では F3 が正しくバインドされていないため、期待通りの結果にはなりません。

c3270 で1つ前の画面に戻るには F3 ではなく、コマンドラインに "Exit" と入力します。これで F3 と同じコマンドが実行され、1つ前の画面に戻ることができます:
2017072804



たまにはこういうブログネタも。