端末

**端末**（たんまつ、 **ターミナル**）とは、
*（通信用語）回線やネットワークの末端に接続され、他の機器と通信を行う機器。通信を中継・集約・分配する機器と対比して用いられている用語・概念。
*（コンピュータ用語）利用者が直接操作する装置。コンピュータ類に接続し、もっぱら情報の入力や表示などに使う装置のこと。

## 概説
「端末」あるいは「ターミナル」（）という用語・表現は、通信用語とコンピュータ用語がある。

通信用語は、通信の中継機器、集約機器、分配機器などとの対比で用いられている用語・用法で、コンピュータ用語は他のコンピュータ（大型コンピュータ、ホストコンピュータ、あるいはサーバなど）に接続し、もっぱら情報の入力や表示などをする機器のことである。

## 通信用語としての端末
通信用語の「ターミナル」という用語は、時代とともに変化してきた。

;電信時代

電信時代のターミナル（端末）は、電信回線の終端に接続された機器であり、手動のキー操作によって電信信号を送信するために使用されていた。**[[電鍵]]**や電信機とも呼ばれた。

;アナログ電話回線などの端末

アナログ電話回線の端末は、**[[電話機]]**や**[[ファクシミリ]]**などである。


File:Public payphone in New Yourk City.jpg|通信用語の端末の例。公衆電話。
File:Philips magic2memo Fax machine.jpg|通信用語の端末の例。ファクシミリ装置。


1962年にアメリカのAT&Tから、商業的に利用可能になった最初のモデム、Bell 103 modemがリリースされた。このモデムも通信用語でいう「端末」ということになった。

1990年代でも、アナログ回線にパーソナルコンピュータを接続したり、あるいはパームコンピュータやフィーチャーフォンなど小型のコンピュータの機能を備えた端末を接続してデータのやりとりをしていた。

## コンピュータ用語としての端末
### コンピュータの端末の歴史
thumb|160px|テレタイプ端末は端末装置としても利用可能
初期の端末は、本来は電信に使われた機器である ASR-33（右写真）のような電気機械式のテレタイプ端末 (TTY) であった。

IBMは汎用コンピュータのSystem/360を1964年に発表、この入出力用装置としては、当初はパンチカード装置やTTYが用意されていた。

 
1970年にDECが:en:DECwriterというプリンタで印字する専用端末を登場させた。DECはプリンタ方式の端末のシリーズとしてDECwriter II（1974年- ）、DECwriter III（1978年- ）、DECwriter IV（1982年-）のリリースを続けた。IBMも1974年にSystem/360用にドットマトリクス・プリンター方式の端末IBM 3767をリリースした。プリンタ方式の端末はテレタイプ端末よりは良くなり、コンピュータに長時間バッチ処理をさせて、オペレータが不在の状態でも計算結果の文字出力を大量に残しておきたい用途で使うのには向いていた。だが、プリンタの印字速度でコンピュータとのやりとりの速度が制限されてしまうという欠点はあり、対話的にコンピュータを使う場合は紙に文字記録を残す必要性は低いので、ビデオ表示方式のものが普及してゆくことになった

一方、1962年にはIBMがビデオ表示方式（CRT、ブラウン管表示方式）の端末のIBM 2260も発表していた。当時、アナログ方式の走査線が走るブラウン管の画面上に、デジタル方式のコンピュータの出力文字を表示させるということだけでも、技術的にはかなりハードルの高い挑戦であった。このころのビデオ表示端末は、多数のトランジスタやダイオードなどの電子部品を搭載した基板で作った論理回路を使っている（当時、ICは一般的でなかった）。

このころの端末はモノクロ方式である。

1971年にはIBMがIBM 2260の後継機にあたるIBM 3270を発表。

;DECの端末
DECは 1975年にVT52 を、1978年には**[[VT100]]**を発表した。これらは当時は「インテリジェント端末」と呼ばれ、今でもソフトウェアでエミュレートされて使われて続けている。これらが「インテリジェント」と呼ばれたのは、エスケープシーケンスを解釈してカーソルの位置や表示の制御を行ったためである。他にはWyse の様々な機種（Wyse 60 はベストセラーとなった）、Tektronix 4014 などがある。

;1970年代末- 1980年代の端末の状況
やがてこのようなビデオ表示方式（CRT方式）の端末全般が**[[ビデオ表示端末]]**（**VDT**）と総称されるようになった。VDTはコンピュータからの出力をTTYやプリンタ方式よりはるかに高速に表示できるという利点があり、コンピュータと対話するように利用することが可能であった。

1970年代末から1980年代初め、DEC、Wyse、Televideo、HP、IBM、Lear-Siegler、ヒース など様々な企業が端末を製造したが、これらの多くはコマンドシーケンスに互換性がなかった。当時の端末はメインフレームに接続され、単色であり、緑色かアンバー（琥珀色）のスクリーンのものが多かった。通常、コンピュータとの信号のやり取りはRS-232Cなどシリアルポートを使うことが一般的であった。IBMのシステムでは、同軸ケーブルで接続し、SNAプロトコルで信号のやりとりをするものもあった。

### テキスト端末
[thumb| ビデオ表示の[ASCII文字端末。写真はTelevideo社のModel925で、1982年ごろ製造されたもの。マイクロプロセッサを使用している。]]
**テキスト端末**とは、もっぱらテキスト（文字列）類の入力と出力だけを行う装置を指すための総称、分類用語である。文字・記号類はコンピュータ用語ではcharacter（キャラクタ）というので**キャラクタ端末**とも呼ばれる。決まった文字集合（キャラクタセット）しか表示できない。

上で説明したテレタイプ端末やVT100などはテキスト端末に分類される。

1970年代に登場した" ビデオ表示 " つまりブラウン管に出力する装置はビデオ表示端末 (VDT) と呼ばれたが、これもテキスト端末であり、文字・記号類しか表示できなかった。

1960年代や1970年代のテキスト端末は物理的な装置として存在しており、大型コンピュータなどの近くに設置されRS-232Cなどシリアルポートで接続されていた。

なお大型コンピュータの操作を行うための装置はもともとコンソールとも呼ばれていた（日本語訳では「操作卓」などとされていた）。

Stdstreams-notitle.svg|典型的な端末は、入力手段および出力とエラーの表示手段を提供する。


#### テキスト端末とタイムシェアリング

1950年代末から1960年代初頭にかけてタイムシェアリングが開発され、一台の大型コンピュータを複数のユーザが同時に使用、つまり一台の大型コンピュータに多数の端末が接続されるようになり、コンピュータネットワークが発展してゆくことになった。

#### テキスト端末のリモート接続
1960年代ではリモート端末でも使われたのはRS-232Cで接続する装置で、テレタイプ端末などキーボードと印字機能を持った装置が一番主流で、他のタイプも含めると、主に次の2種が使われた。
*Teletype Model 33: バラ打ち方式のテレタイプ端末で、データ通信のために改造されて使用された。
*ASR-33: 上のTeletype Model 33の改良版で、自動で紙テープに印字する機能を追加。

上述のようにDECが1975年にはVT52を、1978年には**[[VT100]]**をリリースし、リモート接続で なおかつビデオ表示方式で大型コンピュータに接続することもできるようになった。今日、PC上で動く「telnetクライアント」の多くは、1970年代末当時に最も典型的な端末となった DEC VT100 のエミュレーションを提供している。

1981年にはコロンビア大学で**[[カーミット (プロトコル)|kermit]]**というプロトコルが、やはり回線経由で端末を接続するために開発された。

### グラフィック端末
グラフィック端末は、テキストだけでなく画像を表示できる端末。グラフィック端末はさらに、ベクタースキャン端末とラスタースキャン端末に分類される。

ベクタースキャン端末は、ホストコンピュータの制御により、直接ブラウン管に直線などを描画する。通常の走査式のブラウン管と異なり、オシロスコープのような仕組みになっている。そのため線は連続的に描画されるが、描画された線が残っている時間と描画速度との兼ね合いで、同時に表示できる線の本数（あるいは長さの総計）は限られていた。ベクタースキャン端末はコンピュータ史では重要だが、現在では使われていない。

現代のグラフィック端末は全てラスタースキャン方式である。

### パーソナルコンピュータ登場後
1970年代後半にパーソナルコンピュータ（マイクロコンピュータ）が登場すると、その上で動くソフトウェア端末エミュレータ（ターミナルソフト）が使われるようになった。

OSにGUIが採用されるようになっても、コマンド行インタフェースやテキストユーザインタフェースのほうも生き残っている。テキスト端末は、ターミナルエミュレーションソフトとして生き残った。

また多くのプログラミング言語は標準入出力としてテキストの入出力をサポートしている。

ターミナルソフトを動作させればPC眼を端末として使うことができる。このため、専用端末機の市場はPCの端末ソフトとの競争にさらされるようになり、どんどん縮小していった。

LinuxやFreeBSDなどのUnix系オペレーティングシステムでは、
1つのコンピュータ上で複数のテキスト端末を提供する仮想コンソールが使われた。その後、端末エミュレータの使用が一般化した。

端末エミュレータは、GUIなOS上で動作するプログラムで、ウィンドウを開いてそのウィンドウをテキスト端末として利用できる。主な端末エミュレータとしては、Win32コンソールや xterm がある。Unix系オペレーティングシステムでは、擬似端末に接続される。モデムと共に使用することを前提とした特殊な端末エミュレータも存在する。例えば SSH クライアントなどもな端末エミュレータである。

#### テキスト端末上のアプリケーション
[thumb|200px|right|[xterm端末エミュレータ上で動作しているNanoテキストエディタ。]]
テキスト端末で動作するアプリケーションとしては、まずコマンドラインインタプリタあるいは**[[シェル]]**がある。これらはコマンドプロンプトを表示してユーザーにコマンド入力を促し、ユーザーがコマンドを入力する際には最後に *Enter* キーを押下する。シェルでは、そのコマンドの多くはそれぞれがアプリケーションである。

また、テキストエディタも重要なアプリケーションの種類である。ディスプレイ全体を使い、テキストを表示し、ユーザーがそれを編集できるようにしてある。ワープロソフトも元々はテキスト端末で利用可能だったが、WYSIWYG化と共にGUIが必須になっていった。

telnet や ssh は、遠隔のサービスと接続してローカルな端末から操作を可能にする。

#### プログラミングインタフェース
最も単純な形態では、テキスト端末はファイルのようなものである。ファイルへの書き込みが表示され、ファイルからの読み込みがユーザー入力を読み取ることになる。Unix系オペレーティングシステムでは、テキスト端末に対応したキャラクタスペシャルファイルが存在する。

他に、特殊なエスケープシーケンスや制御文字があり、プログラムから使える `termios` システムコールがある。ncurses などのライブラリから使うのが最も容易である。さらに ioctl システムコールを使って端末固有の操作が可能である。

入出力以外の機能としてUnix系オペレーティングシステムではジョブおよびセッション管理があり、POSIXにて仕様が決められている。具体的には端末とセッションの関連付け、端末とジョブ(POSIXではプロセスグループ)の関連付けおよび端末を入出力に使おうとしているジョブの調停などがある。例として「ユーザがログアウトなどにより端末をクローズしたら、その端末上で実行しているすべてのプロセスを終了させる」というような機能がある。

#### 技術
アプリケーションから端末を使う最も簡単な方法は、単にテキスト文字列を逐次的に読み書きすることである。出力したテキストはスクロールしていくので、最近出力した部分（通常24行）だけが見えている。UNIXでは通常入力テキストは Enter キーが押下されるまでバッファされるので、アプリケーションが読み取るテキストは文字列として完全な形になっている。このような使い方の場合、アプリケーションが端末について詳しく知る必要はない。

多くの対話型アプリケーションでは、これでは不十分である。典型的強化としては、「コマンド行編集」（readline などのライブラリを使う）がある。また、同時にコマンド履歴にアクセスできるようにする場合もある。これらは対話型コマンドラインインタプリタでよく使われる。

さらに対話的なものとして、フルスクリーン型のアプリケーションがある。この場合は、アプリケーションが全体の表示を完全に制御する。また、キー押下にも即座に反応する（Enter キー押下までバッファリングすることはない）。テキストエディタ、ファイルマネージャ、ウェブブラウザなどがこのモードを使う。さらに、テキスト表示の際の色や輝度も制御でき、アンダーラインをつけたり、点滅させたり、罫線素片などの特殊な文字を表示させたりすることも可能である。

これらを実現するには、アプリケーションが通常のテキスト文字列だけでなく、制御文字やエスケープシーケンスを扱う必要がある。それによって、カーソルを特定の位置に移動させたり、特定位置の文字を消去したり、色を変えたり、特殊な文字を表示させたり、ファンクションキーに応答したりといったことが可能になる。

ここで問題になるのは、端末や端末エミュレータが各種存在することで、それぞれが自前のエスケープシーケンスを持っている。このため、特別なライブラリ（cursesなど）が作成され、端末データベース（Termcap や Terminfo）と共に作用して、端末の違いを吸収する役目を果たす。

### 端末の分類用語
（タイムシェアリングシステムの出現以降、対話処理を行うための端末として、よく用いられるものの例を示す。

;**ダム端末**（）
ダム端末という用語は、その文脈によって様々な意味で使われる。

RS-232で接続する端末についての文脈では、ダム端末とは解釈できる制御文字が（CR、LF などに）限られている端末を言う。ダム端末はエスケープシーケンスを解釈できないため、行の消去、画面の消去、カーソル位置制御といったことができない。つまり、テレタイプ端末と同程度のことしかできない。Unix系システムではこのようなダム端末が今でもサポートされており、環境変数 TERM を dumb と設定することでダム端末と認識する。「インテリジェント端末」は、この文脈ではダム端末でないテキスト端末を意味する。

より広い意味では、キーボードとビデオ表示装置やプリンターを備えた装置で、RS-232接続でホストシステムと通信し、ローカルにデータを処理したりプログラムを実行したりしないものを全てダム端末と呼ぶことがある。この意味では、パーソナルコンピュータも、ディスクレスワークステーションも、シンクライアントも、X端末もダム端末と言える。

また、モノクロのテキスト表示しかできない端末装置をダム端末と呼ぶこともある。さらに、キーボードから入力された文字を一文字ずつホストに送信する端末装置をダム端末と呼ぶこともある。

;インテリジェント端末
大型のコンピュータに対する処理だけでなく、それ自体でテキストデータ編集や印字など各種機能を処理できる端末。フロッピーディスクは当初この種の端末に内蔵する補助記憶装置として開発された。1980年代以降はパーソナルコンピュータなどで実現可能となった。

;専用端末
銀行のATM（現金自動預け払い機）、CD（現金自動支払い機）、販売店のPOS端末、レストランでウェイターが使用するハンディターミナルなども端末の一種である。

;仮想端末
1台のコンピュータで複数の端末としての機能を持たせるもの。また、端末と同様の機能を実現するソフトウェア。この場合、コンピュータ本体にビデオ表示機能を組み込んであるワークステーション、パーソナルコンピュータ (PC) やPCサーバで用いられる。端末エミュレータ。

;X端末

;マルチメディアステーション

コンビニエンスストアにおかれている端末。MMSと略されることが多い。別名「マルチメディアキオスク」。

;ビデオ表示端末

**ビデオ表示端末**（, VDT）はブラウン管や液晶などのビデオディスプレイを表示に用いる**端末**である。もともとはテレタイプ端末のような紙に印字する機構を備えた端末と対比するために用いられた用語であるが、その後、このVDTを用いて長時間作業することで引き起こされる身体・精神的諸症状を「VDT症候群」と呼ぶようになり、「VDT」は労働衛生管理の分野で用いられる用語、行政用語、裁判用語、企業内の労務管理の用語などとして使われるようになった。

## 関連項目
* コンソール
* シンクライアント
* 端末エミュレータ
* 端末サーバ
* リモートジョブエントリ (RJE)
; 個別の有名な端末（規格）
* HASP
* IBM 2780/3780
* IBM 3270
* IBM 5250
* HP 2640
* Tektronix 4014
* VT100
* Blit
* ミニテル

## 脚注
### 注釈

### 出典

## 外部リンク

* Text Terminal HOWTO
* Video Terminal Information by Richard S. Shuford