Xorg は X11 ディスプレイサーバーです。GUI プログラムは GTK や Qt などのツールキットと、libX11 や libxcb などのクライアントライブラリを使用して、X11 リクエストを Xorg に送信します。サーバーは入力、出力、レンダリングを管理し、GLX や XRender などの拡張機能が高速化されたレンダリングをサポートします。
ディスプレイへの接続 #
DISPLAY の形式は [protocol/]host:display[.screen] です。通常のローカルディスプレイでは、:0 が /tmp/.X11-unix/X0 を選択します。TCP ディスプレイではポート 6000 + display を使用しますが、最近の Xorg では通常、TCP リスニングが無効になっています。接続が確立すると、クライアントとサーバーはセットアップデータ、リクエスト、応答、およびキー押下や expose 通知などの非同期イベントを交換します。SSH X11 フォワーディングは、プロトコルを維持したまま保護されたトランスポートを作成します。
認証 #
Unix ソケットを開けることは、認可されていることを意味しません。一般的な MIT-MAGIC-COOKIE-1 メカニズムでは、ディスプレイごとにランダムなトークンを Xauthority ファイルに保存します。通常は ~/.Xauthority、または XAUTHORITY が指定するファイルです。クライアントは DISPLAY に一致するエントリを選択し、セットアップハンドシェイクで Cookie を送信します。サーバーはトークンが一致しない場合、その接続を拒否します。DISPLAY は接続先を示し、XAUTHORITY は提示する認証情報を示します。xhost でサーバー側のアクセス制御を変更できますが、広範なルールは特定の Cookie を共有するよりも安全性が低くなります。
コンポーネント #
X.Org のソースプロジェクトには、X および Xorg サーバー実行ファイルをビルドする xorg/xserver と、xinit および startx をビルドする xorg/app/xinit が含まれます。通常、ディスプレイマネージャーがサーバーとセッションを起動します。startx は xinit をユーザー向けにラップする便利なラッパーです。正確な権限およびデバイスアクセスの構成は、ディストリビューションと、その logind またはシート管理との統合方法によって異なります。
コメント
GitHub で閲覧・コメントする(投稿にはログインが必要です)