次のページ 前のページ 目次へ

5. 端末動作についての概要 (Linux)

端末の動作に関する詳細もご覧ください。

5.1 デバイス名称

各端末はホストコンピュータ (PC であることも多い) のシリアルポートに接 続されます。ポート名は ttyS0, ttyS1, ttyS2 等です。これらは /dev (デバ イス) のスペシャルファイルです。/dev/ttyS0 は DOS や Windows の COM1 に相当します。ttyS1 は COM2 です。より詳しい情報や cua などの関連する ``デバイス'' に関しては 端末スペシャルファイ ルをご覧ください。

5.2 ログイン / ログアウト

ホストコンピュータが立ち上がると、getty プログラムを実行します。getty プログラムはユーザをログインさせるために ``login'' プログラムを実行し ます。 Getty (in /etc/inittab) をご覧ください。``login:'' プロンプトが画面に表われると、端末のユーザはログインし (パスワードを入 力した後)、コンピュータにアクセスすることができます。端末をシャットダ ウンするときは、通常はログアウトして、端末の電源を切ります。ログインを 制限するには、 ログインの制限 をご覧くだ さい (端末にログインする root ユーザへの許可を含む)。

5.3 半 / 全二重

誰かが端末でタイプしているのを見ると、タイプした文字が同時に画面表示さ れているように見えます。単純な人は、タイプした文字がコンピュータに送ら れて、そのコピーがコンピュータに送られていると考えるかもしれません (半 二重のように、次節を参照)。通常何が起っているかというと、キーボードか らタイプした文字がホストコンピュータだけに直接送られて、ホストコンピュ ータは受信した文字を端末にエコーバックしているのです (全二重と呼びま す)。いくつかのケース (パスワードや簡易エディタのコマンド) では、タイ プした文字はエコーバックしません。

全二重とは一方向通信リンクが 2 本 (2 重に) あることを意味します。端末 では全二重が標準です。半二重とは二重の半分のことで、一方向通信リンクが 一本しかないことを意味します。このリンクは両方向の通信で共有されなけれ ばならず、一度に一方向だけが使用されます。この場合、コンピュータはタイ プした文字をエコーすること (と、送ること) ができないので、端末はタイプ した文字を画面に直接表示します。いくつかの端末には、めったに使用されな い半二重操作モードもあります。

5.4 端末のメモリ

CRT 上の画像は、ブラウン管の表面に電子ビームを照射して絶えず映像を繰り 返し描き続けていないと即座に消えてしまいます。画面に表示するためにテキ ストを端末に送ると、画像イメージは端末のメモリ素子に記憶され、イメージ を維持するために電子ビームが画面を繰り返しスキャン (たとえば、毎秒 60 回) します。詳しくは 端末メモリの詳細をご覧ください。

5.5 端末へのコマンド

端末はコンピュータのコントロール下にあります。コンピュータは画面表示す るためにテキストを端末に送るばかりではなく、実行される端末コマンドをも 送ります。これは 制御コード (バイト) と エスケープシーケンスのことです。 例えば、CR (キャリッジリターン) 制御コードはカーソルを画面の左端に移動 します。あるエスケープシーケンス (最初のバイトが ``エスケープ'' 制御コ ードである数バイト) はエスケープシーケンスに含まれるパラメータで指定し た画面上の位置へカーソルを移動します。

初期の端末ではそのようなコマンドは少しだ けでしたが、最近の端末では 100 を越えます。ある範囲で、明るさ、光沢、 下線、ブリンク、反転などの表示上の外観を変更できます。端末のスピーカか らは、キーが押されたときに ``クリック音'' を鳴らしたり、誤りが発生した らビープ音を鳴らしたりします。ファンクションキーには特別な意味をもたせ ることができます。複数のフォントだって有り得ます。表示のスクロールアッ プ、ダウンもできるでしょう。画面の指定した部分を消したりもできます。端 末が扱えきれないほど速くデータが送られてきたときに、データの流れを止め るために様々なタイプのフロー制御が使われます。高度な端末のマニュアルか インターネットのリンク エスケープシーケン スリストから、より多くの情報を得ることができるでしょう。

5.6 Terminfo で解決した標準化の不足点

米国で作られた端末すべてが、アルファベット用に同じ ASCII コードを採用 していながら (EBCDIC を使用した IBM を除く)、残念なことに全てが同じエ スケープシーケンスを使いませんでした。このことは ANSI (と ISO) 規格が 制定された後も起こりました。これらの規格があまりすぐれたものではなかっ たからです。その上、新しい端末にある能力が古い端末にはたいていありませ ん。このことは問題を引き起こします。例えば、コンピュータが指定したサイ ズで 2 つのウィンドウに画面を分けるよう端末に指示する場合、それができ る能力が端末にあるかどうかわからないのです。

これらの問題を克服するために ``termcap'' (意味 ``端末の能力'') と呼ぶ データベースが作られました。termcap はのちに ``terminfo'' に取って代わられまし た。このデータベースはコンピュータ上のあるファイルに記録されていて、端 末の各モデルに対応するセクション (時々はファイル全体) があります。各モ デル用 (VT100 等の) に使用可能なエスケープシーケンスのリストを含む能力 リストが用意されています。例えば、blink=\E5m はブリンクの開始を意味し、 端末に Escape 5 m が送られることでしょう。詳しくは Termcap と Terminfo (詳細)をご覧ください。アプリケーションプログラムはある C ライブラリの 関数をコールすることで、このデータベースを活用することができます。その ようなプログラムの大きなセット (200 を越える) は ``ncurses'' と呼び、 man ページの ``ncurses'' に載っています。

5.7 インターフェース

環境変数 TERM は、使用している端末のタイプを Linux が識別するためのも のです。幾つかのアプリケーションプログラムが端末データベースから能力を 探しだすのに使うので、TERM が正しく設定される必要があります。しかしそ こには、コンピュータが端末の能力について知る以上の正確なインターフェー スがあります。

コンピュータから端末へバイトを流すには、端末から送られるのと同じボーレ ート (bit / 秒) でバイトを受信するように端末を設定しなければなりません。 もし端末が 19,200 ボーで受信するよう設定されていて、コンピュータが 960 0 ボーで文字を送ったら、文字化けを起こすでしょう (あるいは何も表示され ません)。端末の ``セットアップ'' メニューで端末のボーレート (他の多く の機能と同様に) を選択します。ほとんどの端末は ``セットアップ'' メニュ ーに多くのオプションがあります ( 端末セットアップ (設定) 詳細をご覧く ださい)。コンピュータのシリアルポートにもオプションがあり、このオプシ ョンは互換性のある方法でセットアップされなければなりません ( コンピュータセットアップ (設定) 詳細を ご覧ください)。

5.8 エミュレーション

今日のほとんどの端末には 1 つ以上のエミュレーション (``独自機能'' ない しは ``互換モード'') が用意されています。DEC (Digital Equipment Corpor ation (現 Compaq) が以前作っていた端末のモデル番号は VT で始まります (VT100 等)。VT100 以外の他の多くの端末は VT100 をエミュレートします。 Wyse は主要な端末製造メーカですが、ほとんどの端末は VT100 や VT220 の ような DEC の各種端末をエミュレートできます。ですから、たとえば VT320 端末を使う場合には、``本来'' のパーソナリティである VT320 そのものとし て使用するか、 VT320 をエミュレートできる他の端末 (VT100 や VT220 な ど) として使用するかの選択肢があります。``本来'' のパーソナリティは他 のものと同等か、普通は機能が豊富なので、特に理由がなければ ``本来'' の パーソナリティを使用するのがいいでしょう。

最も一般的なタイプのエミュレーションは、VT100 端末 (または、それに類す るもの)であるかのように PC を使うことです。PC のメモリにロードされるプ ログラムがこれを可能にします。Linux では (X-Windows を使ってなくても)、 PC モニタ (コンソールと呼ぶ) として端末タイプ ``Linux'' (VT100 に 似ています) をエミュレートします。 端末エミュレーションをご覧ください。

5.9 コンソール

PC でモニタは通常はコンソールになります。端末タイプ ``Linux'' をエミュ レートし、仮想端末としてログインします。 コ ンソール : /dev/tty? をご覧ください。ブートやシャットダウンの進行状 況をカーネルから受けとります。 通常はコンソールへのメッセージが端末に出力するようにできます。こうする には手でカーネルにパッチを当てなければなりません。カーネル2.2 以上を使 用すれば ``make config'' オプションで指定できます。 端末をコンソールにするをご覧ください。


次のページ 前のページ 目次へ