Wikiwand AI

端末エミュレータ

端末として動作するソフトウェア From Wikipedia, the free encyclopedia

端末エミュレータ(たんまつエミュレータ、英: terminal emulator)とは、端末のエミュレーションを行うソフトウェアで、専用端末の代わりに使えるソフトウェアである。英語をそのままカタカナにしてターミナルエミュレータとも表記する。ターミナルソフト(英: terminal software)やターミナルアプリケーション(英: terminal applicationともいう。

xtermの画面。cdコマンドを入力してカレントディレクトリを「etc」に変更し、lsコマンドでファイル類を一覧表示させた状態。

グラフィカルユーザインタフェース (GUI) 環境内でコマンドライン・インタフェースを提供する画面は端末ウィンドウやターミナルウィンドウ(英: terminal window)などと呼ぶ。「エミュレータ」や「ウィンドウ」を略して単に「ターミナル」と呼ぶことも増えている[1][注 1][注 2]

概要

端末エミュレータは、専用端末(物理的に存在する専用の端末)をエミュレートしてその機能を実現するソフトウェアであり、パーソナルコンピュータ (PC) やUnixワークステーションなどを専用端末の代わりとして使うことができるようにするソフトウェアである。基本的にはDEC VT100のエミュレーションをするソフトウェアをさすことが多く、通常はキャラクタベースのビデオ端末をエミュレートするが、グラフィック端末(xtermがTektronix 4014をエミュレートする)やプリンタのエミュレーションを行うものもある。

用途としては、通信経由でホストマシンに接続して使う用途もあれば、現にユーザが操作している眼の前のマシンのインタフェースとして利用し設定変更、ファイル操作、ソフトのインストール、ソフトウェア開発などのために使う用途もある。[注 3]

端末エミュレータを動作させるコンピュータがウィンドウシステムを搭載している場合、これを利用して一つのコンピュータ上で複数の端末エミュレータを同時に稼働させることができることが多い。これは殆どの専用端末では実現できない機能である。

エミュレートする端末

実際の端末における、画面制御やキーボード制御、プリンタ制御など、入出力処理には統一された規格が存在しない。現在、端末エミュレータを使用する接続先はUnixが多いため、Unixで事実上の標準となっているDEC社のVT100やその上位機種のエミュレータが多い。VT100の端末エミュレータやその機能を「VT100互換」と呼称する。

接続先がメインフレームであれば、IBM 3270、富士通、日立製作所の端末を、接続先がIBM AS/400であればIBM 5250を、エミュレートすることになる。それぞれのメーカーから純正のエミュレータが発売されているが、サードパーティ製もある。メインフレームの端末の多くは、RS-232のような単純なシリアルインターフェースではなく、インテリジェントなものだったが、その後、シリアル接続やイーサネット接続も可能となっている。

多くの端末はキャラクタしか扱えないが、グラフィックを扱うことができるグラフィック端末もある。例えばxtermがエミュレートするTektronix 4014がその一例で、キャラクタとグラフィックのどちらも扱うことができる。日本では、ヤマハのYIS(YGT-100)もよく知られている。また、コンピュータグラフィックスの黎明期には、多くのメインフレームにオプションとして専用のグラフィック端末が用意されていた。

TCP/IP経由

TCP/IPを介した端末エミュレータの接続にはSSH、Telnet、rlogin等の機能を用いる。rloginとTelnetは、パスワードなども含めて、すべての通信内容を平文(暗号化されていない状態)で送受信する。極めて限定された用途であれば、それが必ずしも悪いわけではないが、インターネットを介した接続ではあまりに危険な行為である。したがって、近年は、SSHによる接続が一般的である。

2015年ごろまで、Windows用のSSHクライアントは公式に提供されていなかったため、端末エミュレータはSSHクライアントを統合したものが多かった。現在ではOpenSSH in Windowsが提供されており、PowerShellやコマンドプロンプトなどのコマンドラインツールから利用することができる。

種類

POSIXに準拠したものと、そうでないものに分類することもできる。

現行の例

端末エミュレータは端末の振る舞いのみをエミュレートする。端末実機のエミュレートには汎用エミュレータのMAMEが対応している。

また多くの統合開発環境には独自の埋め込み端末エミュレータが内蔵されている(Microsoft Visual Studioの開発者コマンドプロンプト[2]、VSCodeのターミナルなど)。

OS標準

Windows Terminalのマルチ画面

デスクトップ環境の標準

GNOME 端末。Bashが動いている状態。

LinuxやUnix系OSで使われるデスクトップ環境の標準端末エミュレータ。Wayland上などで動作する。

AI支援端末エミュレータ

  • Warp(英語版)
  • Intelligent Terminal[5] - Microsoft製。Windows Terminalのフォーク。
  • iTerm2(英語版) - macOS向け。AI支援機能にはiTerm2 AI Pluginが必要。

なお端末エミュレータレベルではなく端末マルチプレクサレベルでAI支援を追加することも可能となっている(端末マルチプレクサの tmux 上で実装された TmuxAI[6]など)。

その他

クロスプラットフォーム

  • Alacritty - BSD系、Linux、macOS、Windowsなどで動作するOpenGLを用いた端末エミュレータ。
  • PuTTY
  • kitty - macOS、Linux、FreeBSDなどで動作。

X Window System 上で動作するもの

これらはX.Org Server、Wayland上のXWayland、macOS上のXQuartz、Windows上のCygwin/XやXmingなどを通して動作する。

  • xterm(Xの標準的な端末エミュレータ。VT102を拡張した仕様とTektronix 4014) - Unicodeサポート付きで起動するuxtermもある[7]。
  • GNOME Terminator(英語版)

Windows環境で動作するもの

Wayland 上で動作するもの

  • Foot - BSD系、Linuxなどで動作するWaylandネイティブの軽量で高速な端末エミュレータ[9]。

過去の例

POSIX環境、UNIX環境で動作するもの

X Window System 上で動作するもの

  • kterm(xtermを日本語対応としたもの。kはkanjiの意)
  • rxvt(xtermからTektroエミュレーションなど、機能を削って軽量化)

MS-DOS環境で動作するもの

  • MS-Kermit(VT102エミュレーションとカーミットプロトコルによるファイル転送)
  • hterm (AXやDOS/VでないIBM-PCでも日本語の使用を実現した。)

Classic Mac OS上で動作するもの

  • NCSA Telnet(英語版)(Telnetとftp)
  • BetterTelnet(NCSA Telnetを改良したもの)
  • MacSSH(BetterTelnetをSSH対応としたもの)

出典

脚注

関連項目

Related Articles

Timelines

Top Qs

Fact Checks