テキスト
ユーザインタフェース(Text User Interface, TUI)は、コンピュータとユーザー間のインタラクションにおいて、テキスト(文字コード)を主要なデータ形式として用いるインターフェースです。TUIは、しばしばCUI(Character User Interface)と混同されますが、より進化した概念であり、GUI(Graphical User Interface)の要素を取り入れたものと言えます。ここでは、TUIの基本的な概念から、その歴史、技術的な側面、そして様々なOSでの実装例について詳しく解説します。
TUIの基本
TUIの基本は、コンピュータが画面に文字コードを表示し、ユーザーがキーボードなどを使ってテキストベースで操作を行う点にあります。初期のコンピュータでは、ディスプレイに文字情報を表示するために、ハードウェア的に用意された文字情報を使っていました。この方式では、計算データや通信データが文字コードのみで済むため、処理や通信の負荷が非常に低いという利点がありました。しかし、初期のTUIは一行表示が基本であり、複数行表示を実現するためには改行コードを利用する必要がありました。
CUIとの違い
CUI(Character User Interface)は、TUIの前身とも言える概念で、テキストベースのインターフェースを指します。CUIは、線形的なデータストリーム型の表示を基本としており、画面全体を二次元的に使用する概念はありませんでした。これに対し、TUIはGUIの登場後にCUIと対比される形で名付けられ、CUIのテキストベースの操作に加え、GUIのような二次元的な画面構成を取り入れるようになりました。
TUIの進化
GUIの登場は、コンピュータのユーザーインターフェースに大きな変革をもたらしました。GUIでは、ドット情報を基に二次元的な表示が可能になり、文字や画像に関係なく自由に画面を表現できるようになりました。このGUIの登場と並行して、TUIも進化を遂げました。TUIは、CUIの文字ベースの操作を継承しつつ、GUIの思想を取り入れ、二次元的な画面表示やマウスなどの入力デバイスをサポートするようになりました。
ANSI互換端末でのTUI
ANSI規格(ANSI X3.64)は、エスケープシーケンスの標準を定めたもので、TUIを生成するために使用されます。ANSIエスケープコードを利用することで、カーソルの移動、文字色の変更、画面のクリアなど、さまざまな操作がテキストベースで可能になります。ただし、すべての
端末がANSI規格に完全準拠しているわけではなく、機能的には同等だが非互換のエスケープシーケンスをサポートする
端末も存在します。ここでいう
端末とは、ハードウェアとしてのディスプレイ
端末を指し、文字コードを人間が理解できる文字に変換する機能を持っています。後にソフトウェアとして実装されると、これはターミナルエミュレーターと呼ばれるようになります。
IBM PCとその互換機では、BIOSや
MS-DOSのシステムコールが画面に文字を出力する手段を提供していました。ANSI.SYSドライバを利用することで、ANSIエスケープシーケンスの処理も可能でしたが、スクリーンバッファに直接データを書き込む方が高速で、プログラムも単純化されるため、多くのTUIプログラムが開発されました。初期の
MS-DOSでのTUIは、青い背景に白や黄色の文字で表示されることが多かったですが、色のカスタマイズが可能になったものも多く、プルダウンメニューや
ダイアログボックスが追加され、GUIの影響を受けて高機能化していきました。有名な
MS-DOS上のTUIソフトウェアとしては、Microsoft Word、
MS-DOS Shell、WordPerfect、Norton Commander、Borland Turbo C、
Lotus 1-2-3などがあります。初期のWindowsには
MS-DOSソフトウェアを表示するためのコンソールが含まれており、後のバージョンではコマンド行インタフェースやTUIプログラムのために
Win32コンソールが追加されました。
Unix系オペレーティングシステムでは、TUIの構築にcurses
ライブラリや、その互換であるncursesがよく使われます。cursesはBSDで開発され、TUIのための移植性が高く安定したAPIを提供します。これにより、さまざまな
端末で同じAPIを使ってTUIを実現できるようになり、画面全体を使ったTUIプログラムが多数開発されました。viなどの
テキストエディタ、pineや
Muttなどの
電子メールクライアント、SMITなどのシステム管理ツール、lynxなどのウェブブラウザがその例です。
Linuxが普及するにつれて、
MS-DOSユーザーが
Unix系プラットフォームに移行するようになり、
MS-DOSに影響を受けたTUIが作られるようになりました。例えば、
MS-DOSの通信プログラムTelixをベースとしたminicomや、TUIベースのデスクトップ環境Twinなどが挙げられます。
TUIのまとめ
TUIは、テキストベースのインターフェースでありながら、GUIの概念を取り入れ、二次元的な画面表示やマウス操作などを実現したものです。初期のコンピュータでは文字コードを基盤としたシンプルなインターフェースでしたが、技術の発展とともに進化を遂げてきました。現在でも、ターミナルアプリケーションや特定のシステム管理ツールなどで利用されており、コンピュータの歴史と深く関わっています。
関連項目
端末
キャラクタユーザインターフェース
コンソールアプリケーション
ncurses
*
ローグライクゲーム