Xウィンドウシステム
Xウィンドウシステムは、MITで開発された、移植可能なマルチユーザ用のグラフィカルウィンドウシステムです。「移植可能」とは、OpenVMS、およびLinuxの各種ホストなどの、さまざまなホストコンピュータ上で実行できるという意味です。「マルチユーザ」とは、多くのユーザが、ネットワークを介してホストに接続して、X アプリケーションに同時にアクセスできるという意味です。X ウィンドウシステムでは、個別のウィンドウを使用して、複数の X アプリケーションを同時に実行することができます(Microsoft Windowsと同様)。
Xアプリケーション(Xクライアント)は、GDE (GNOME Desktop Environment)、KDE (K Desktop Environment)、CDE (Common Desktop Environment)などのさまざまなホスト上の環境に対してグラフィカルユーザインタフェースを提供します。工学、科学、製造業用など、さまざまな用途の X アプリケーションが開発されています。
X ウィンドウシステムは、クライアント/サーバモデルに基づいて設計されています。
-
X「クライアント」は、ホストコンピュータ上で実行されるアプリケーションプログラムです。
-
X ディスプレイ「サーバ」は、X クライアントアプリケーションプログラム、ローカル表示装置、および入力装置(マウスまたはキーボード)との間に介在するソフトウェアです。入力装置からのすべての入力を追跡し、それらを関連する X クライアントアプリケーションに伝達します。
X サーバはまた、X クライアントからの出力要求に応答し、出力に応じて表示を更新します。Reflection Xでは、ディスプレイとXサーバは分離されています。
Xウィンドウシステムがこのように分割されているため、XクライアントとXディスプレイサーバを異なる種類のコンピュータに置くことができます。サーバをローカルコンピュータで実行している間、クライアントアプリケーションはLinuxホストに存在します。Reflection Xの場合、ローカルコンピュータはWindowsまたはLinuxコンピュータです。
X ディスプレイサーバはローカルコンピュータで実行されるため、X ウィンドウシステムに慣れていないユーザの場合、クライアントとサーバという用語を逆に解釈する可能性があります。ローカルコンピュータは、X ディスプレイサーバとして、ローカル表示装置、キーボード、およびマウスを、ほかのコンピュータ上で実行している X アプリケーション(X クライアント)から使用できるようにします。
要求、応答、イベント、およびエラー
X サーバと X クライアントアプリケーションは、以下の方法で通信を行います。
-
クライアントからサーバへの要求。
-
クライアントの要求に対する、サーバからクライアントへの応答。
-
イベントを受け取るように登録している X クライアントに届けられたイベント
ユーザ入力(マウスの移動や打鍵)があった時や、X ディスプレイサーバから X クライアントアプリケーションにほかの情報が送られた時に、イベントが発生します。有効なイベントを受け取ると、X クライアントアプリケーションはそれに応答して、出力に影響を与える何らかの動作を行うよう X サーバに要求する場合があります。
-
要求が失敗したり無効であった場合に X クライアントへ伝達されるエラー