Resource ID (XID)
Xサーバ内のすべてのウィンドウ、ピクスマップ、フォント、カーソルを識別する29ビットの番号。クライアント自身が選ぶので、応答を待たずにウィンドウを作れる。
クライアントがXサーバ内に持つもの、つまりウィンドウ、ピクスマップ、グラフィックスコンテキスト、フォント、カーソル、カラーマップは、すべてリソースIDで指される。プロトコル上は32ビットのフィールドで、上位3ビットは常にゼロだ。変わっているのは、誰がそれを割り当てるかである。接続の確立時にクライアントはresource_id_baseとresource_id_maskを受け取り、以後はマスクの範囲内で自分で数え上げてIDを割り当てる。そのためXCreateWindowは、リクエスト自体がまだ出力バッファにある間にIDを即座に返せる。次の呼び出しは、サーバがまだそのウィンドウを見てもいないうちに使える。1980年代のネットワークでは、作るオブジェクトごとに往復1回を節約できた。代償は、クライアントあたりのIDが有限(通常221個)であることで、X.Orgに同時接続クライアント256という上限が長くあったのもそのためだ。IDが尽きたときは、XlibがX11R6のXC-MISC拡張を通じてサーバに空き範囲を尋ねる。
IDはデバッグのあらゆる場面に現れる。xwininfoは「Window id: 0x3400005」と表示し、上位ビットを見ればどのクライアントのものか分かる。xprop -id、xkill -id、xdotoolはこれを引数に取り、xrestopはどのクライアントがリソースを溜め込んでいるかを示す。BadWindow、BadDrawable、BadPixmapのエラーは、IDがサーバの期待したものを指していないことを、BadIDChoiceはクライアントが選んだIDがすでに使われていることを意味する。リソースは接続が閉じると消えるが、クライアントがRetainPermanentを指定していれば別で、xsetrootが終了しても背景画像が残るのはそのおかげだ。