X Window System コアプロトコル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/19 17:13 UTC 版)
その他
他にもXコアプロトコルには要求やイベントが存在する。まず、ウィンドウ間の親子関係に関する要求がある。クライアントは、ウィンドウの親の変更要求が可能である。また、ウィンドウの親子関係に関する情報を要求することもできる。他にセレクションに関する要求があるが、これは主に他のプロトコルで扱われる。入力フォーカスやカーソル形状についての要求もある。クライアントは、特定のリソース(ウィンドウ、ピクスマップなど)の所有者を終了させる要求もでき、サーバはそのコネクションを終了させる。また、クライアントはサーバにNOP要求を送信することもできる。
拡張
X Window System コアプロトコルは、拡張性を考慮して設計された。Xコアプロトコルには、利用可能な拡張や、拡張の要求/応答/イベント/エラーパケットをどう作ればよいかを問い合わせる機構を備えている。
特に、特定の拡張に対応したデータについて利用可能な拡張の一覧を要求できる。拡張のパケットは、Xコアプロトコルのパケットとよく似ている。Xコアプロトコルでは、要求/応答/イベント/エラーパケット内にそのパケットのタイプを示す整数が含まれている。例えば、新たなウィンドウの生成要求は 1 である。この整数の一部範囲が拡張用に予約されている。
認可
クライアントがサーバとのコネクションを確立しようとした時、サーバのとりうる応答としては、受理するか、拒否するか、認証を要求するかのいずれかである。認証要求には、使用する認証手法の名称が含まれる。Xコアプロトコルでは認証プロセスは規定されておらず、使っている認証の種類に依存する。さもなくば、サーバは単に受理パケットか拒否パケットを送るだけである。
通常のクライアントとサーバのやり取りで認証に関わる要求は「ホストによるアクセス制御; host-based access method」だけである。クライアントは、この認証手法を有効にする要求ができ、接続を認可されているホスト(クライアント)の一覧を読んだり変更したりできる。一般のアプリケーションはこれらの要求を使うことはない。これらを使うプログラムとして xhost
があり、ユーザやシェルスクリプトがアクセス可能ホスト一覧を読み書きできるようにする。ホストによるアクセス制御は、安全ではないと言われている。
Xlib その他のクライアント・ライブラリ
多くのクライアントプログラムは、Xlibというクライアントライブラリを通してXサーバと通信する。クライアントは一般に Xaw、Motif、GTK、Qt といったライブラリを使うが、これらもXサーバとの通信には Xlib を使っている。Xlib を使うことで、以下のようになる。
- Xlib を使うと、クライアントは応答とイベントの観点で同期的に動作可能となる。
- Xlib では要求をサーバに即座に送信せず、output buffer というキューに蓄積する。その内容が実際に送信されるのは、以下のタイミングである。
XFlash
などのライブラリ関数を使って明示的に送信を要求したとき。- Xサーバからの応答を待つ必要のあるライブラリ関数を呼び出したとき(例えば、
XGetWindowAttributes
)。 - イベントキューにイベントがあるか問い合わせたとき(例えば、
XNextEvent
呼び出し)で、かつブロックするような呼び出しをしたとき(例えば、XNextEvent
はキューが空だとブロックする)。
Xtのような上位ライブラリ(さらに上位として Xaw や Motif がある)では、イベントに対応したコールバック関数を使うことができる。つまり、上位ライブラリがイベントキューを常時監視し、必要に応じて適切なコールバック関数を呼び出す。また、ウィンドウの再描画が必要となるようなイベントは Xt 内部で処理される。
XCB などの下位レベルのライブラリはプロトコルへの非同期アクセスを提供し、レイテンシ隠蔽効果が大きい。
|
- ^ Robert W. Scheifler and James Gettys: X Window System: Core and extension protocols, X version 11, releases 6 and 6.1, Digital Press 1996, ISBN 1-55558-148-X
- ^ RFC 1013
- ^ Grant Edwards. An Introduction to X11 User Interfaces
- ^ Jim Gettys. Open Source Desktop Technology Road Map
- ^ comp.fonts FAQ: X11 Info
- ^ X Logical Font Description Conventions
- ^ Matthieu Herrb and Matthias Hopf. New Evolutions in the X Window System.
- ^ Ghostview: Interface with ghostscript
- ^ David Rosenthal. Inter-Client Communication Conventions Manual. MIT X Consortium Standard, 1989
- ^ a b Freedesktop window manager specification
- X Window System コアプロトコルのページへのリンク