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


31

Googleに同じ質問をしたところ、得られた結果が気に入らなかった。

なに/tmp/.X11-unix/


2
うわー、私はあなたがそれらについて好きではないものをあなたに尋ねるつもりでした...しかし、それらはかなりひどい結果です。
デロベルト

Xvncを実行していますか?
トクセファ

2
@ py4onそうは思いませんが、このx11ソケットをコンテナに警告することに言及しているdockerコンテナ内でグラフィカルアプリを実行することに興味があるためです。stackoverflow.com/a/25334301/1695680
ThorSummoner

ひどい?本当に?私の世界では、2番目の検索結果はこのWWWサイトから離れたunix.stackexchange.com/questions/57138です。
JdeBP

3
@JdeBPは確かにですが、抜粋のタイトルにはクリックする理由はありません。ランダムな問題のトラブルシューティングのように見えます。もちろん、今ではこの質問が表示されるため、Googleは修正されています。
デロベルト

回答:


21

私のかなり最新のアーチのラップトップで、/tmp/.X11-unix/一つのエントリを持つディレクトリです: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ます。


1
別の答えにリンクしようとしていた!unix.stackexchange.com/a/20380/109083
toxefa

2
nitpickではありませんが、unixローカルソケットはローカル TCPソケット(ハードウェアインターフェイスを使用せず、100%カーネルでもある)よりもパフォーマンス上の利点があるとは思いません。
goldilocks

@goldilocks-興味深い主張。
ブルースエディガー


1
@Max修正済みです! けれどもそれはブルースが引用の理由ではありませんが、理由は、カーネルのTCPスタックのオーバーヘッドの。
goldilocks

11

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

Unixドメインソケットは、アドレスとポートに接続する代わりにpathに接続することを除いて、より馴染みのある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ます。これらのページはプログラマー向けです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.