X.orgはchrootでソケットなしで動作しますか?

X.orgはchrootでソケットなしで動作しますか?

私はchroot設定を持っており、問題なくグラフィックアプリケーションを実行してきました。私が作った唯一の設定は設定されてDISPLAY=:0動作するだけでした。しかし、私は常にUnixドメインソケットがX11用だと思っていたので、これがなぜ機能するのか理解できません。ちょっと調べてみると、私の言葉が正しいことがわかりました。私のX.orgサーバーは-nolisten tcpこのフラグで始まり、Unixドメインソケットを持っていますが、/tmp/.X11-unixどういうわけか私のchrootはソケットなしでX11ディスプレイでグラフィカルアプリケーションを起動できます。私はソケットをchrootにハードリンクしたことがなく、実際には同じファイルシステムにはありません。/tmp/.X11-unixchrootは完全に空です。私のchrootが私のX11モニタでグラフィカルアプリケーションを起動することはどのように可能ですか?

ベストアンサー1

X サーバーは、UNIX ソケットと同じように動作し、パス名が NUL 文字で始まる点を除いて、UNIX ソケットと同様のパス名を持つ抽象ソケットもサポートします。 「抽象」に関する記事をご覧ください。Unix(7)マンページ。抽象ソケットは、すべてのファイルシステムの名前空間とchrootに効果的に存在します。これを使用するためにchrootや名前空間に接続する必要はありません。

おそらく、Xサーバーとクライアントの両方が抽象ソケットを使用して通信できますか?標準のXクライアントライブラリを使用するXクライアントは、自動的に抽象ソケットを使用しようとします。今後彼らはデフォルトのUNIXソケットを使用しようとしています。 libxcbで以下を参照してください_xcb_open_xcb_open_abstractsrc/xcb_util.c

おすすめ記事