テキストユーザインタフェース
テキストユーザインタフェース(英語: text user interface, TUI)は、テキスト(文字コード)をデータとしてそのまま画面などのユーザインタフェースとのやり取りに使用するためのコンピューター用語である。TUIと略されて使用されることもよくある。
コンピューター利用でのユーザー入出力のために、テキスト(文字コード)が表示装置(ディスプレイ)に送られ、ディスプレイ側に「ハード的に用意された文字情報で文字を表示する」のがテキストベースといわれる表示方法の基本的動作である。コンピューター側での計算も、ディスプレイまでの通信信号経路でも、文字コードだけなので計算データ量、通信データ量が必要最低限ですむ。このデータ表示方法は、線形でデータストリーム型の1次元的表示である。ユーザーが画面でみるときは、当初は一行だけだった。さらに複数行のディスプレイにより改行コードによって複数行にみえるようにもなった。しかし、データ自体に行の概念はない。これが後年GUI登場の後に対比でCUIと名付けられた。
グラフィカルユーザーインターフェース(GUI)が開発され、ディスプレイにドット情報で2次元的にオンオフや濃淡を表示する技術が登場した。文字も画像も関係なくディスプレイはすべてドット情報を受け取りそのまま表現する。このドットの数が800x600や1920x1080と表現される。
最後に、TUIが登場する。文字データでのやりとりはCUI同様、そこにグラフィカルユーザーインターフェース(GUI)の思想で、2次元的に画面を使うようにした。GUI同様のマウスなどの入力装置も利用できる。
CUI, TUIは、GUIが考案された後に名づけられたレトロニムである。CUIと呼ばれているものでも多くが厳密にはTUIとなっている。
ANSI互換端末でのTUI
[編集]ANSI規格 ANSI X3.64 は、エスケープシーケンスの標準を定義したもので、端末上でTUIを生成するのに使う。これをANSIエスケープコードという。全ての端末がこの規格に完全準拠しているわけではなく、非互換だが機能的には等価なエスケープシーケンスをサポートした端末が多数存在する。ここでの「端末」とは単体の独立したハードウェアとしての「ディスプレイ端末(ディスプレイターミナルDisplay Terminal)」である。このディスプレイ端末が文字コードを受け取り人間のわかる文字に変換する機能がある。のちにソフトウェアとして実装されるとこれはターミナルエミュレーターと呼ばれるようになっている。
MS-DOSおよびMicrosoft WindowsでのTUI
[編集]IBM PC やその互換機では、BIOSとMS-DOSシステムコールが画面に文字を出力する手段を提供しており、ANSI.SYSドライバでANSIエスケープシーケンスを処理できる。しかし、スクリーンバッファに直接データを書き込んだほうが高速で、しかもプログラムが単純化され、バグも作りこみにくくなるということが知られるようになった。このようなプログラミング技法の変化によって、MS-DOS 上で多数のTUIプログラムが生み出されるようになった。
多くの場合背景は青で、文字は白か黄色で表示していたが、色をカスタマイズできるようになっていたものも多い。その後、GUIに大きな影響を受け、プルダウンメニューやダイアログボックスが追加されていった。マウス入力にも対応するようになり(EGAやVGAアダプタは文字の形状をソフトウェアで変更可能であったため、グラフィックの解像度で識別可能だった)、さらに高機能化していった。
MS-DOS上でTUIを実現していた有名なソフトウェアとしては、初期の Microsoft Word、MS-DOS Shell、WordPerfect、Norton Commander、Borland Turbo C(conioライブラリを含む)、Lotus 1-2-3 などがある。これらの一部は1990年代初めに Microsoft Windows 3.x が登場してからも生き延びた。例えば、Microsoft C 6.0 コンパイラは Microsoft Windows 用のGUIプログラムを書くことができたが、それ自体のインタフェースはTUIだった。
初期の Windows には MS-DOS ソフトウェアを表示するためのコンソールが含まれていた。後のバージョンでは、コマンド行インタフェースやTUIのプログラムのためにWin32コンソールが追加された。コンソールは通常ウィンドウモードで起動されるが、全画面テキストモードに切り替えることもできる(Alt+Enter)。
Unix系システムでのTUI
[編集]Unix系オペレーティングシステムでは、TUI構築に端末制御ライブラリである curses か、ほぼ互換な ncurses を使うことが多い。
BSDで開発された curses により、TUIのための移植性が高く安定したAPIが生まれた。様々な端末で同じAPIでTUIを実現できるため、画面全体を使ったTUIプログラムが多数開発されるようになった。例えば、vi などのテキストエディタ、pine や Mutt などの電子メールクライアント、SMIT などのシステム管理ツール、lynx などのウェブブラウザである。w3mや初期の pine や vi では curses は使っておらず、より低機能な termcap ライブラリを使い、curses 相当の機能はアプリケーション内部で実現している。
Linuxが広く使われるようになると、MS-DOSユーザーがUnix系プラットフォームに移行するようになり、MS-DOS に影響されたTUIが作られるようになった。例えば、MS-DOS上の通信プログラム Telix をベースとしたUnix系向けの minicom がある。また、移植されたものもあり、例えば TwinというTUIベースのデスクトップ環境がある。
関連項目
[編集]- 端末
- キャラクタユーザインターフェース
- コンソールアプリケーション - TUIで操作できるアプリケーション
- ncurses
- ローグライクゲーム