端末

端末（たんまつ、 ターミナル）とは、
概説.
「端末」あるいは「ターミナル」（）という用語・表現は、通信用語とコンピュータ用語があり、もともとは異なっていた。
ひとつは通信用語で、通信の中継機器、集約機器、分配機器などとの対比で用いられている用語・用法であり、回線や通信ネットワークの末端に接続され、他の機器と通信を行う主体となる機器のことである。
もうひとつはコンピュータ用語でコンピュータに接続された装置を指す言葉で、他のコンピュータ（大型コンピュータ、ホストコンピュータ、あるいはサーバなど）に接続し、もっぱら情報の入力や表示などをする機器のことである。接続方法は、コンピュータルーム（計算機室）室内の数十センチのケーブルでもよいし、アナログ通信回線やデジタル回線を用いた数百キロ離れた遠隔接続でもよい。ともかくコンピュータ本体とは別の、コンピュータに接続する入出力装置を端末と言っていた。
通信用語としての端末.
通信用語の「ターミナル」という用語は、時代とともに変化してきた。
電信時代のターミナル（端末）は、電信回線の終端に接続された機器であり、手動のキー操作によって電信信号を送信するために使用されていた。電鍵や電信機とも呼ばれ、通信回線の両端に設置されていた。
アナログ電話回線の端末というのは、電話機やファクシミリなどである。
1962年にアメリカのAT&Tから、商業的に利用可能になった最初のモデム、Bell 103 modemがリリースされた。このモデムも通信用語でいう「端末」ということになった。（話が少しややこしくなり始めた）
1990年代でも、アナログ回線にパーソナルコンピュータを接続したり、あるいはパームコンピュータやフィーチャーフォンなど小型のコンピュータの機能を備えた端末を接続してデータのやりとりをしていたので話は混乱しはじめていた。
コンピュータ用語としての端末.
コンピュータの端末の歴史.
前史から説明すると、1950年代や1960年代、端末が登場し広まる以前はコンピュータへの入力と出力はパンチカード方式（紙のカードに多数の穴を開けたもの、および、紙に穴をあける装置）で行っていた。
初期の端末は、本来は電信に使われた機器である ASR-33（右写真）のような電気機械式のテレタイプ端末 (TTY) であった。
IBMは汎用コンピュータのSystem/360の開発を（国家予算規模の）莫大なお金をかけて行い開発に成功し1964年にそれを発表し、このマシンが世界の標準機のような位置づけになっていったわけだが、これの入出力用装置としては、当初はパンチカード装置やTTYが用意されていた。
1970年にDECがというプリンタで印字する専用端末を登場させた。DECはプリンタ方式の端末のシリーズとしてDECwriter II（1974年- ）、DECwriter III（1978年- ）、DECwriter IV（1982年-）のリリースを続けた。IBMも1974年にSystem/360用にドットマトリクス・プリンター方式の端末IBM 3767をリリースした。プリンタ方式の端末はテレタイプ端末よりは良くなり、コンピュータに長時間バッチ処理をさせて、オペレータが不在の状態でも計算結果の文字出力を大量に残しておきたい用途で使うのには向いていた。だが、プリンタの印字速度でコンピュータとのやりとりの速度が制限されてしまうという欠点はあり、対話的にコンピュータを使う場合は紙に文字記録を残す必要性は低いので、ビデオ表示方式のもの（次に説明する）のほうも普及してゆくことになった
一方、1962年にはIBMがビデオ表示方式（CRT、ブラウン管表示方式）の端末のIBM 2260も発表していた。当時、アナログ方式の走査線が走るブラウン管の画面上に、デジタル方式のコンピュータの出力文字を表示させるということだけでも、技術的にはかなりハードルの高い挑戦であったが、IBMはそれを成し遂げたのだった。その制御には電子回路がそれなりの規模で必要であった。このころのビデオ表示端末は、多数のトランジスタやダイオードなどの電子部品を搭載した基板で作った論理回路を使っている（当時、ICですら一般的でなく、きわめて素朴なIC（集積回路）は一応は実験的に開発はされていたが基本的に市販されているものではなく、1970年代初頭では素朴な論理回路を搭載したIC（TTLのIC）ですら、まだ実験・試作の段階にとどまっていて、実用的に使えるものではなかったからである）。
IC（集積回路）の開発と一般化が推し進められた理由のひとつは、世の中で台数が増えつつあった端末に必要な電子回路を単純化し部品点数を減らすことであった。（当時、まだLSIすら存在しなかった。LSIは、まず素朴なICが一般化した後に、ようやく目標とされるようになった。）
このころの端末はモノクロ方式である。
1971年にはIBMがIBM 2260の後継機にあたるIBM 3270を発表。
DECは 1975年にVT52 を、1978年にはVT100を発表した。これらは当時は「インテリジェント端末」と呼ばれ、今でもソフトウェアでエミュレートされて使われて続けている。これらが「インテリジェント」と呼ばれたのは、エスケープシーケンスを解釈してカーソルの位置や表示の制御を行ったためである。他にはWyse の様々な機種（Wyse 60 はベストセラーとなった）、Tektronix 4014 などがある。
やがてこのようなビデオ表示方式（CRT方式）の端末全般がビデオ表示端末（VDT）と総称されるようになった。VDTはコンピュータからの出力をTTYやプリンタ方式よりはるかに高速に表示できるという利点があり、コンピュータと対話するように利用することが可能であった。
1970年代末から1980年代初め、DEC、Wyse、Televideo、HP、IBM、Lear-Siegler、ヒース など様々な企業が端末を製造したが、これらの多くはコマンドシーケンスに互換性がなかった。当時の端末はメインフレームに接続され、単色であり、緑色かアンバー色（琥珀色）のスクリーンのものが多かった。通常、コンピュータとの信号のやり取りはRS-232Cなどシリアルポートを使うことが一般的であった。IBMのシステムでは、同軸ケーブルで接続し、SNAプロトコルで信号のやりとりをするものもあった。
テキスト端末.
テキスト端末とは、もっぱらテキスト（文字列）類の入力と出力だけを行う装置を指すための総称、分類用語である。文字・記号類はコンピュータ用語ではcharacter（キャラクタ）というのでキャラクタ端末とも呼ばれる。決まった文字集合（キャラクタセット）しか表示できない。
上で説明したテレタイプ端末やVT100などはテキスト端末に分類される。
1970年代に登場した" ビデオ表示 " つまりブラウン管に出力する装置はビデオ表示端末 (VDT) と呼ばれたが、これも登場した1970年代などはあくまでこのテキスト端末であり、文字・記号類しか表示できなかった。
1960年代や1970年代のテキスト端末は物理的な装置として存在しており、大型コンピュータなどの近くに設置されRS-232Cなどシリアルポートで接続されていた。
なお大型コンピュータの操作を行うための装置はもともとコンソールとも呼ばれていた（日本語訳では「操作卓」などとされていた）。
テキスト端末とタイムシェアリング.
1950年代末から1960年代初頭にかけてタイムシェアリングが開発され、一台の大型コンピュータを複数のユーザが同時に使用することができるようになり、つまり一台の大型コンピュータに多数の端末が接続されるようになった。（そしてタイムシェアリングの活用に焦点をあてることでコンピュータネットワークが発展してゆくことになった。）
テキスト端末のリモート接続.
1960年代ではリモート端末でも使われたのはRS-232Cで接続する装置で、テレタイプ端末などキーボードと印字機能を持った装置が一番主流で、他のタイプも含めると、主に次の2種が使われた。
上述のように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 クライアントなどもな端末エミュレータである。
テキスト端末上のアプリケーション.
テキスト端末で動作するアプリケーションとしては、まずコマンドラインインタプリタあるいはシェルがある。これらはコマンドプロンプトを表示してユーザーにコマンド入力を促し、ユーザーがコマンドを入力する際には最後に "Enter" キーを押下する。シェルでは、そのコマンドの多くはそれぞれがアプリケーションである。
また、テキストエディタも重要なアプリケーションの種類である。ディスプレイ全体を使い、テキストを表示し、ユーザーがそれを編集できるようにしてある。ワープロソフトも元々はテキスト端末で利用可能だったが、WYSIWYG化と共にGUIが必須になっていった。
telnet や ssh は、遠隔のサービスと接続してローカルな端末から操作を可能にする。
プログラミングインタフェース.
最も単純な形態では、テキスト端末はファイルのようなものである。ファイルへの書き込みが表示され、ファイルからの読み込みがユーザー入力を読み取ることになる。Unix系オペレーティングシステムでは、テキスト端末に対応したキャラクタスペシャルファイルが存在する。
他に、特殊なエスケープシーケンスや制御文字があり、プログラムから使える codice_1 システムコールがある。ncurses などのライブラリから使うのが最も容易である。さらに ioctl システムコールを使って端末固有の操作が可能である。
技術.
アプリケーションから端末を使う最も簡単な方法は、単にテキスト文字列を逐次的に読み書きすることである。出力したテキストはスクロールしていくので、最近出力した部分（通常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サーバで用いられる。端末エミュレータ。
コンビニエンスストアにおかれている端末。MMSと略されることが多い。別名「マルチメディアキオスク」。
ビデオ表示端末（, VDT）はブラウン管や液晶などのビデオディスプレイを表示に用いる端末である。もともとはテレタイプ端末のような紙に印字する機構を備えた端末と対比するために用いられた用語であるが、その後、このVDTを用いて長時間作業することで引き起こされる身体・精神的諸症状を「VDT症候群」と呼ぶようになり、「VDT」は労働衛生管理の分野で用いられる用語、行政用語、裁判用語、企業内の労務管理の用語などとして使われるようになった。