"/tmp/.X11-unix/"とは何ですか?

"/tmp/.X11-unix/"とは何ですか?

Googleに同じ質問をしましたが、結果が気に入りませんでした。

何ですか/tmp/.X11-unix/

答え1

私の最新のArchノートブックには/tmp/.X11-unix/1つのエントリがあるディレクトリがありますX0Unixドメインソケット

X11サーバー(Xorg通常は現在)は、xterm一種の安定したバイトストリームを介してFirefoxなどのクライアントと通信します。 Unixドメインソケットは、おそらく世界中に公開されているTCPソケットよりも安全であり、カーネルがすべてを実行し、イーサネットやワイヤレスカードに頼る必要がないので、おそらく少し速いでしょう。

私のX11サーバーは次のとおりです。

bediger    294   293  0 Apr09 tty1     01:23:26 /usr/lib/xorg-server/Xorg -nolisten tcp :0 vt1 -auth /tmp/serverauth.aK3Lrv5hMV

「-nolisten tcp」は、通信のためにTCPポート6000を開くのを防ぎます。

このコマンドは、lsof -UどのプロセスがどのUnixドメインソケットを使用しているかを知らせることができます。Xorgに接続されていると思います/tmp/.X11-unix/X0

答え2

XサーバーがXクライアント(アプリケーション)と通信する方法はいくつかあります。 (少なくとも同じシステムでは)最も一般的に使用されるのはUnixドメインソケットです。

Unixドメインソケットは、アドレスとポートに接続する代わりに接続することを除いて、より使い慣れたTCPソケットに似ています。。物理ファイル(ソケットファイル)を使用して接続します。

Xサーバーはソケットを次の場所に置きます/tmp/.X11-unix

$ ls -l /tmp/.X11-unix/X0 
srwxrwxrwx 1 root root 0 Dec 18 18:03 /tmp/.X11-unix/X0

s前の権限を参照してください。これはソケットであることを意味します。複数のXサーバーが実行されている場合は、そこに複数のファイルがあります。

ソケット(通常)の詳細については、少なくともLinuxのマニュアルページにありますman 7 socket。 Unix ドメインソケットの詳細情報は にありますman 7 unix。このページはプログラマーを対象としています。

答え3

/tmp/.X11-unix/X{n} は、X サーバーが受信 AF_DOMAIN ソケットを配置する場所です。ロックと同じ場所の近くに /tmp/.X{n}-lock があります。で議論したようにhttps://bugzilla.redhat.com/show_bug.cgi?id=503181このソリューションはFHSには適していません。

関連情報