Co to jest `/ tmp / .X11-unix /`?

31

Zadałem Google to samo pytanie i nie podobały mi się uzyskane wyniki.

Co to jest /tmp/.X11-unix/?

ThorSummoner
źródło
2
Wow, chciałem cię zapytać, co ci się w nich nie podoba ... ale to są całkiem okropne wyniki.
derobert 16.04.15
Czy korzystasz z Xvnc?
toksefa
2
@ py4on Nie sądzę, pytam ze względu na moje zainteresowanie uruchamianiem aplikacji graficznych w kontenerze dokera, o czym wspomniano o przekazywaniu tego gniazda x11 do kontenera. stackoverflow.com/a/25334301/1695680
ThorSummoner
Straszny? Naprawdę? W mojej części świata drugim wynikiem wyszukiwania jest unix.stackexchange.com/questions/57138 poza tą samą witryną WWW.
JdeBP
3
@JdeBP rzeczywiście, ale tytuł fragmentu nie daje powodu, aby go kliknąć - wygląda na to, że rozwiązano jakiś przypadkowy problem. Oczywiście teraz pojawia się to pytanie, więc Google jest naprawiony.
derobert 16.04.2015

Odpowiedzi:

21

Na moim dość up-to-date Arch laptopa, /tmp/.X11-unix/to katalog z jednego wpisu: X0, A gniazdo Unix domeny .

Serwer X11 (zwykle Xorgte dni) komunikuje się z klientami takimi jak xtermFirefox, itp. Za pośrednictwem pewnego rodzaju niezawodnego strumienia bajtów. Gniazdo domeny uniksowej jest prawdopodobnie nieco bezpieczniejsze niż gniazdo TCP otwarte na świat i prawdopodobnie nieco szybsze, ponieważ jądro robi to wszystko i nie musi polegać na karcie Ethernet lub bezprzewodowej.

Mój serwer X11 pokazuje się jako:

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

„-Nolisten tcp” uniemożliwia otwarcie portu TCP 6000 dla komunikacji.

Polecenie lsof -Umoże ci powiedzieć, jakie procesy wykorzystują, które gniazda domeny Uniksa. Widzę Xorgjako połączony z /tmp/.X11-unix/X0.

Bruce Ediger
źródło
1
Właśnie miałem zamieścić link do innej odpowiedzi! unix.stackexchange.com/a/20380/109083
toksefa
2
Nie wybijaj, ale wątpię, czy lokalne gniazdo unix ma jakąkolwiek przewagę wydajności nad lokalnym gniazdem TCP (które nie korzysta z interfejsu sprzętowego, a także jest w 100% jądrem).
złotowłosa
@goldilocks - ciekawe stwierdzenie.
Bruce Ediger
1
@goldilocks: patrz stackoverflow.com/questions/14973942/…
Maks.
1
@Max Stoję poprawiony! Chociaż nie jest to z powodów cytowanych przez Bruce'a, ale z powodu narzutu na stos TCP w jądrze.
złotowłosa
11

Serwer X ma kilka sposobów komunikacji z klientami X (aplikacjami). Najczęściej stosowanym, przynajmniej na tym samym komputerze, jest gniazdo w domenie uniksowej.

Gniazdo domeny uniksowej przypomina bardziej znane gniazda TCP, z tym wyjątkiem, że zamiast łączyć się z adresem i portem, łączysz się ze ścieżką . Do połączenia używasz rzeczywistego pliku (pliku gniazda).

Serwer X umieszcza gniazdo w /tmp/.X11-unix:

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

Uwaga sprzed uprawnieniami, co oznacza, że ​​jest to gniazdo. Jeśli masz uruchomionych wiele serwerów X, będziesz mieć tam więcej niż jeden plik.

Przynajmniej na stronach Linuksa więcej szczegółów na temat gniazd (ogólnie) można znaleźć w man 7 socket. Szczegóły dotyczące gniazd w domenie uniksowej są dostępne man 7 unix. Pamiętaj, że te strony są przeznaczone dla programistów.

derobert
źródło
1

/tmp/.X11-unix/X{n} to miejsca, w których serwer X umieszcza nasłuchujące gniazda AF_DOMAIN. W pobliżu tego samego miejsca znajdują się /tmp/.X{n}-lock będące blokadami. Jak omówiono w https://bugzilla.redhat.com/show_bug.cgi?id=503181, ten schemat nie jest dobry FHS.

把 友情 留 在 无 盐
źródło