Что такое `/ tmp / .X11-unix /`?

31

Я задал Google тот же вопрос, и мне не понравились результаты, которые я получил.

Что такое /tmp/.X11-unix/?

ThorSummoner
источник
2
Вау, я собирался спросить тебя, что тебе не понравилось в них ... но это довольно ужасные результаты.
Дероберт
Вы запускаете Xvnc?
Toxefa
2
@ py4on Я так не думаю, я спрашиваю из-за моего интереса к запуску графических приложений в док-контейнере, в котором упоминается передача этого сокета x11 в контейнер. stackoverflow.com/a/25334301/1695680
ThorSummoner
Грозный? В самом деле? В моей части мира второй результат поиска - unix.stackexchange.com/questions/57138 с этого самого WWW-сайта.
JdeBP
3
@JdeBP действительно, но заголовок и выдержка не дают вам оснований щелкать по нему - похоже на устранение какой-то случайной проблемы. Конечно, теперь этот вопрос появляется, поэтому Google исправлен.
Дероберт

Ответы:

21

На мой довольно уточненный Arch ноутбук, /tmp/.X11-unix/это каталог с одной записью: X0, сокет Unix-домена .

Сервер X11 (обычно в Xorgнаши дни) общается с такими клиентами, как xtermFirefox и т. Д., Через некоторый надежный поток байтов. Сокет домена Unix, вероятно, немного более безопасен, чем открытый для всего мира сокет TCP, и, возможно, немного быстрее, поскольку ядро ​​все это делает, и ему не нужно полагаться на Ethernet или беспроводную карту.

Мой сервер 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
токсифа
2
Не слишком уж, но я сомневаюсь, что локальный сокет unix имеет какие-либо преимущества в производительности по сравнению с локальным сокетом TCP (который не использует аппаратный интерфейс, а также является 100% ядром).
Златовласка
@goldilocks - интересное утверждение.
Брюс Эдигер
1
@goldilocks: см. stackoverflow.com/questions/14973942/…
Макс
1
@ Макс я исправлюсь! Хотя это не по причинам, указанным Брюсом, а из-за накладных расходов для стека TCP ядра.
Златовласка
11

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-серверов, у вас будет более одного файла.

По крайней мере с man-страницами Linux, больше деталей о сокетах (в общем) можно найти в man 7 socket. Подробная информация о сокетах Unix-домена находится в man 7 unix. Обратите внимание, что эти страницы ориентированы на программистов.

derobert
источник
1

/tmp/.X11-unix/Xndomn} - это место, где X-сервер помещает прослушивающие сокеты AF_DOMAIN. Около того же места находятся /tmp/.Xatellncasts-lock, являющийся замками. Как обсуждается в https://bugzilla.redhat.com/show_bug.cgi?id=503181, эта схема не подходит для FHS.

把 友情 留 在 无 盐
источник