端末エミュレータ
端末エミュレータ(たんまつエミュレータ、terminal emulator)とは、端末のエミュレーションを行うソフトウェアで、専用端末の代わりに使えるソフトウェアである。英語をそのままカタカナにしてターミナルエミュレータとも表記する。ターミナルソフト(terminal software)やターミナルアプリケーション(terminal applicationともいう。
グラフィカルユーザインタフェース (GUI) 環境内でコマンドライン・インタフェースを提供する画面は端末ウィンドウやターミナルウィンドウ(terminal window)などと呼ぶ。「エミュレータ」や「ウィンドウ」を略して単に「ターミナル」と呼ぶことも増えている
端末エミュレータは、専用端末(物理的に存在する専用の端末)をエミュレートしてその機能を実現するソフトウェアであり、パーソナルコンピュータ (PC) やUnixワークステーションなどを専用端末の代わりとして使うことができるようにするソフトウェアである。基本的にはDEC VT100のエミュレーションをするソフトウェアをさすことが多く、通常はキャラクタベースのビデオ端末をエミュレートするが、グラフィック端末(xtermがTektronix 4014をエミュレートする)やプリンタのエミュレーションを行うものもある。
用途としては、通信経由でホストマシンに接続して使う用途もあれば、現にユーザが操作している眼の前のマシンのインタフェースとして利用し設定変更、ファイル操作、ソフトのインストール、ソフトウェア開発などのために使う用途もある。ソフトウェアの開発者がソースコードをコンパイルする場合も、その結果得られたオブジェクトコードを実行させる場合もターミナル画面でコマンドを入力する。昔、大型コンピュータのファイル操作をしたりそのソフトウェアの開発する場合も、たとえ通信経由でなくても、たとえば大型コンピュータが設置してあるコンピュータ・ルーム(計算機室)内で行う場合でも、結局、専用端末を操作したように、現代のソフトウェア開発者たちも、自分のパーソナルコンピュータでファイル操作やソフトウェア開発を行う時にはターミナル画面を開いてさまざまな操作を行っている。
端末エミュレータを動作させるコンピュータがウィンドウシステムを搭載している場合、これを利用して一つのコンピュータ上で複数の端末エミュレータを同時に稼働させることができることが多い。これは殆どの専用端末では実現できない機能である。
実際の端末における、画面制御やキーボード制御、プリンタ制御など、入出力処理には統一された規格が存在しない。現在、端末エミュレータを使用する接続先はUnixが多いため、Unixで事実上の標準となっているDEC社のVT100やその上位機種のエミュレータが多い。VT100の端末エミュレータやその機能を「VT100互換」と呼称する。
接続先がメインフレームであれば、IBM 3270、富士通、日立製作所の端末を、接続先がIBM AS/400であればIBM 5250を、エミュレートすることになる。それぞれのメーカーから純正のエミュレータが発売されているが、サードパーティ製もある。メインフレームの端末の多くは、RS-232のような単純なシリアルインターフェースではなく、インテリジェントなものだったが、その後、シリアル接続やイーサネット接続も可能となっている。
多くの端末はキャラクタしか扱えないが、グラフィックを扱うことができるグラフィック端末もある。例えばxtermがエミュレートするTektronix 4014がその一例で、キャラクタとグラフィックのどちらも扱うことができる。日本では、ヤマハのYIS(YGT-100)もよく知られている。また、コンピュータグラフィックスの黎明期には、多くのメインフレームにオプションとして専用のグラフィック端末が用意されていた。
TCP/IPを介した端末エミュレータの接続にはSSH、Telnet、rlogin等の機能を用いる。rloginとTelnetは、パスワードなども含めて、すべての通信内容を平文(暗号化されていない状態)で送受信する。極めて限定された用途であれば、それが必ずしも悪いわけではないが、インターネットを介した接続ではあまりに危険な行為である。したがって、近年は、SSHによる接続が一般的である。
2015年ごろまで、Windows用のSSHクライアントは公式に提供されていなかったため、端末エミュレータはSSHクライアントを統合したものが多かった。現在ではが提供されており、PowerShellやコマンドプロンプトなどのコマンドラインツールから利用することができる。
POSIXに準拠したものと、そうでないものに分類することもできる。
== 例 ==
POSIX系、UNIX系のマシンで動くもの。最近メジャーなUbuntuやシングルボードコンピュータのRaspberry Piで動くターミナルもここに属す。
X Window System上で動作するもの
xterm(Xの標準的な端末エミュレータ。VT102を拡張した仕様とTektronix 4014)
kterm(xtermを日本語対応としたもの。kはkanjiの意)
rxvt(xtermからTektroエミュレーションなど、機能を削って軽量化)
LXTerminal(LXDE)
Xfce Terminal(Xfce)
dtterm  (CDE)
GNOME 端末 (GNOME) (※)
Konsole (KDE)
※LinuxのメジャーなディストリビューションのUbuntuで動作するものは「GNOME 端末」である。
macOS上で動作するもの(注.macOSは、macOS Xあたり以降はUNIX系である)
JTerminal.app
Microsoft Windowsマシンで動作するもの
PowerShell(Windows 7以降に標準搭載のキャラクタユーザインタフェース)
コマンドプロンプト(汎用telnetソフトとして使用可能)
ハイパーターミナル(Hilgraeve Inc.の製品)
パーソナル・コミュニケーションズ (IBM製3270/5250端末のエミュレータ。略称PCOMM)
WSMGR (富士通製F6680, 3270, 5250エミュレータ)
Kシリーズ端末エミュレータ(FMGシリーズ、PRIMERGY 6000など)
CommuniNet Version3(日立製作所製端末のエミュレータ)
FALCON(クライアントPC導入型 3270, 5250, 6680, 560 端末エミュレータ)
FALCON for .NET(サーバー導入型 3270, 5250, 6680, 560 端末エミュレータ)
FALCON for iPad(iPad導入型 3270, 5250 端末エミュレータ)
キヤノンソフト情報システム(キヤノンソフトウェアの子会社。旧蝶理情報システム)
TCPLink スタンダード
DirectLink HIS対応版
DirectLink DLC対応版
DirectLink HNALAN対応版
Reflection for UNIX and OpenVMS(VTエミュレータ)
Reflection for IBM 2007(3270, 5250エミュレータ)
RUMBA for Citrix and Terminal Server(3270, 5250, VT, WYSE 50/60, HP/MPEエミュレータ)
RUMBA Mainframe(3270エミュレータ)
RUMBA AS/400(5250エミュレータ)
RUMBA UNIX-HP(VT, HP3000 MPEエミュレータ)
EXTES(F6680, 3270, 5250, 560, Kシリーズ 端末エミュレータ)
EXTES Xuras(F6680, 3270, 5250, 560, Kシリーズ Webエミュレータ)
MS-DOS上で動作するもの
MS-Kermit(VT102エミュレーションとカーミットプロトコルによるファイル転送)
hterm (AXやDOS/VでないIBM-PCでも日本語の使用を実現した。)
Cygwin・MSYS・MSYS2などのターミナルエミュレータ -- Windows環境下でPOSIXに準じたコマンドをおおむねエミュレートさせるためにサードパーティが開発したもの
Windows 11のWSL (Windows Subsystem for Linux)のLinux上のターミナル画面 -- マイクロソフトがPOSIXに準拠した環境を提供するために、苦肉の策で提供しているもの。WindowsのサブシステムとしてLinuxを動作させておりPOSIXに準拠したコマンドがほぼ動く。
Classic Mac OS上で動作するもの
NCSA Telnet(Telnetとftp)
BetterTelnet(NCSA Telnetを改良したもの)
MacSSH(BetterTelnetをSSH対応としたもの)