TN3270(1)

名称
tn3270 - IBM の VM/CMS にフルスクリーンの端末としてログインする

書式
tn3270 [-d] [-n filename] [-t commandname] [sysname [port]]

解説
tn3270 によって UNIX マシンから IBM マシンへ、フルスクリーンの 全二重の接続が可能になります。 tn3270 は IBM 3270 端末からリモートマシンに ログインしたように見せかけます。もちろん、ログインする別のマシンにあなたは アカウントを持っていなければなりません。 tn3270 はユーザに対し多くの点で Yale ASCII Terminal Communication System II に似たように見せます。 tn3270 は実際にはある状況において Arpanet の TELNET ユーザインタフェース (telnet(1) を見よ) を解釈して生の 3270 コントロールストリームを生成する ためのものです。

tn3270 のオプションは以下のものがあります:

-d  ソケットレベルのトレースを行う (スーパユーザ専用)。

-nfilename
    ネットワークのトレースデータの出力 (コマンドの ``toggle netdata'' と ``toggle options''による。 telnet(1) を見よ) を保存するファイルを指定します。 デフォルトは標準出力です。

-tcommandname
    リモートの IBM マシンから受けた IBM 4994 スタイルの透過モードのデータを処理する UNIX コマンドを指定します。

sysname
    リモートシステムの名前です。もしリモートマシンの名前が指定されなかった場合は コマンドを受け付けるためのプロンプトが出ます (下記参照)。

port
    リモートシステム上の接続ポートです。通常 tn3270 はリモートマシン上の標準的な TELNET ポート (ポート番号 23) に接続を試みます。

tn3270 は最初にリモートシステムに接続する時は 3270 モードでネゴシエーションを 行います。このネゴシエーション部では、エミュレートするリモートシステムが 3270 のどのモデルなのかを見分けることも行われます。どのような場合でも、 tn3270 は 3278 の端末をエミュレートします。特定のどのモデルかを決定するために、 tn3270 は実際の端末 (環境変数 TERM で定義したもの。 termcap(5) 参照) の行と列の数を見ます。端末 (もしくは、マルチウィンドウシステムの場合は tn3270 が走っているウィンドウ) は少なくとも 80 列と 24 行以上の大きさがなければなりま せん。さもないと tn3270 はエミュレーションモードになりません。もしその端末が 80 x 24 以上の大きさを持っていれば、以下の表にしたがってエミュレーション を行います。

最小サイズ エミュレートする
(行*列) 端末
-------------- ------------
27*132 3278 model 5
43*80 3278 model 4
32*80 3278 model 3
24*80 3278 model 2.

3270 端末のエミュレーションは UNIX プロセス内で行われます。この エミュレーションではホストからの 3270 スタイルのコマンドをユーザの 端末画面を制御するための適切なシーケンスにマッピングします。 tn3270 はこれを行うために curses(3) と /usr/share/misc/termcap ファイルを利用します。3270 キーボードの特殊なキー (プログラムファンクションキーなど) のエミュレーションも、 ASCII キーボードからのキーストロークのシーケンスを適切な 3270 制御文字列へ マッピングすることで実現しています。 このマッピングは端末依存であり、定義ファイルである /usr/share/misc/map3270 (map3270(5) 参照) かもしくは環境変数 MAP3270 (必要であれば MAP3270A, MAP3270B なども。 mset(1) 参照) で定義されます。 ASCII キーボードの特殊なファンクションキーはどれでも いつでも利用可能です。ユーザの端末用のエントリがない場合は、 tn3270 は端末タイプ unknown を探します。もしこのエントリが見つからない場合は、 デフォルトのキーマッピングを用います (map3270(5) 参照)。

各キーボードマッピングシーケンスでの最初の文字は ASCII escape ((ESC) )、コントロールキャラクタ、もしくは ASCII delete ((DEL) ) のいずれかです。もしユーザが解釈不能なキーシーケンスをタイプした場合は、 tn3270 は ASCII bell ((BEL) )、もしくはビジュアルベルがユーザの temcap エントリ内に 定義されているならばこれをユーザの端末に送り、 IBM のホストマシンには何も送りません。

もし tn3270 がリモートホストシステムの名前を指定せずに起動された場合、 tn3270 はプロンプト “tn3270> ” を出してローカルコマンドモードに入ります。 このモードでは tn3270 は telnet(1) のすべてのコマンドを受け付け、さらに 一つのコマンドが追加されます:

transcom
    IBM 4994 スタイルの透過モード処理のための UNIX コマンドを指定します。

tn3270 はホストに接続した後でも特殊なエスケープシーケンスをタイプすることで コマンドモードに入ることができます。 もし tn3270 がリモートホストとの間で 3270 モードのネゴシエーションに入ることに 成功すれば、このエスケープシーケンスはユーザのターミナルタイプ用の map3270 エントリ (map3270(5) 参照) で定義されたものになります (通常はコントロール-C)。 定義されていなければ単一キャラクタの ‘^]’ (コントロール右角括弧) が初期設定となります。

コマンドモードの時にはどのようなホストログインセッションも生きていますが 一時的にサスペンドされます。そのホストログインセッションはコマンドプロンプト に対して空行を返す (RETURN キーを押す) ことで復帰できます。 セッションは、外のホストからログオフするか、ローカルコマンドモードで ``quit'' もしくは ``close'' とタイプすることで切断されます。

関連ファイル
/usr/share/misc/termcap
/usr/share/misc/map3270

環境変数
tn3270 は以下の環境変数をチェックします: TERM, MAP3270, MAP3270[A...] 。 これらに関する情報は mset(1) に記載されています。 tn3270 は、さらに SHELL, KEYBD および API3270 もチェックします。

関連項目
mset(1), telnet(1), curses(3), termcap(3), termcap(5), map3270(5), Yale ASCII Terminal Communication, System II Program Description/Operator's Manual, IBM SB30-1911.

歴史
tn3270 4.3BSD から現れました。

バグ
tn3270 は遅く、けた外れにシステム資源を使います。

全ての 3270 ファンクションをサポートしているわけでも、 全ての Yale 拡張をサポートしているわけでもありません。

エラー状態はベルを鳴らすだけではなくユーザの端末にメッセージを送る ようにするべきです。