X ウィンドウシステム

X ウィンドウシステムは、MIT で開発された、移植可能なマルチユーザ用のグラフィカルウィンドウシステムです。「移植可能」とは、OpenVMS、および Linux や UNIX の各種ホストなどの、さまざまなホストコンピュータ上で実行できるという意味です。「マルチユーザ」とは、多くのユーザが、ネットワークを介してホストに接続して、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 Advantage では、ディスプレイと X サーバは分離されています。

X ウィンドウシステムがこのように分割されているため、X クライアントと X ディスプレイサーバを異なるコンピュータに置くことができます。サーバをローカルコンピュータで実行している間、クライアントアプリケーションは UNIX ホストに存在します。Reflection X Advantage の場合、ローカルコンピュータは Windows または UNIX コンピュータです。

X ディスプレイサーバはローカルコンピュータで実行されるため、X ウィンドウシステムに慣れていないユーザの場合、クライアントとサーバという用語を逆に解釈する可能性があります。ローカルコンピュータは、X ディスプレイサーバとして、ローカル表示装置、キーボード、およびマウスを、ほかのコンピュータ上で実行している X アプリケーション (X クライアント) から使用できるようにします。

要求、応答、イベント、およびエラー

X サーバと X クライアントアプリケーションは、以下の方法で通信を行います。

  • クライアントからサーバへの要求。
  • クライアントの要求に対する、サーバからクライアントへの応答。
  • イベントを受け取るように登録しているクライアントに届けられるイベント。

    ユーザ入力 (マウスの移動やキーの押下) があった時や、ディスプレイサーバからクライアントアプリケーションにその他の情報が送られた時に、イベントが発生します。有効なイベントを受け取ると、X クライアントアプリケーションはそれに応答して、出力に影響を与える何らかの動作を行うよう X サーバに要求する場合があります。

  • 要求が失敗したり無効であった場合に X クライアントへ伝達されるエラー。