Che cos'è `/ tmp / .X11-unix /`?


31

Ho fatto a Google la stessa domanda e non mi sono piaciuti i risultati che ho ottenuto.

Che cosa è /tmp/.X11-unix/?


2
Caspita, ti avrei chiesto cosa non ti piaceva di loro ... ma quelli sono dei risultati piuttosto terribili.
derobert,

Gestisci Xvnc?
Toxefa,

2
@ py4on Non la penso così, chiedo a causa del mio interesse nell'esecuzione di app grafiche all'interno di un contenitore docker, al quale ciò accenna a far svanire questo socket x11 nel contenitore. stackoverflow.com/a/25334301/1695680
ThorSummoner

Terribile? Veramente? Nella mia parte del mondo, il secondo risultato della ricerca è unix.stackexchange.com/questions/57138 su questo sito molto WWW.
JdeBP,

3
@JdeBP in effetti, ma il titolo di un estratto non ti dà motivo di fare clic su di esso - sembra risolvere un problema casuale. Naturalmente ora viene visualizzata questa domanda, quindi Google è stato risolto.
derobert,

Risposte:


21

Sul mio laptop Arch abbastanza aggiornato, /tmp/.X11-unix/c'è una directory con una voce: X0un socket di dominio Unix .

Il server X11 (di solito in Xorgquesti giorni) comunica con client come xterm, Firefox, ecc. Tramite una specie di flusso affidabile di byte. Un socket di dominio Unix è probabilmente un po 'più sicuro di un socket TCP aperto al mondo e probabilmente un po' più veloce, poiché il kernel fa tutto e non deve fare affidamento su una scheda Ethernet o wireless.

Il mio server X11 si presenta come:

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

"-Nolisten tcp" impedisce di aprire la porta TCP 6000 per le comunicazioni.

Il comando lsof -Upuò dirti quali processi stanno usando quali socket di dominio Unix. Vedo Xorgcome connesso a /tmp/.X11-unix/X0.


1
Stavo per collegarmi ad un'altra delle tue risposte! unix.stackexchange.com/a/20380/109083
toxefa

2
Non per nitpick ma dubito che un socket locale unix abbia dei vantaggi in termini di prestazioni rispetto a un socket TCP locale (che non utilizza un'interfaccia hardware ed è anche kernel al 100%).
Riccioli d'oro

@goldilocks - un'affermazione interessante.
Bruce Ediger,


1
@Max sto corretto! Anche se non è per i motivi citati da Bruce, ma a causa del sovraccarico per lo stack TCP del kernel.
Riccioli d'oro

11

Il server X ha diversi modi di comunicare con i client X (app). Il più comune da utilizzare, almeno sulla stessa macchina, è un socket di dominio Unix.

Un socket di dominio Unix è come i più noti TCP, tranne che invece di connettersi a un indirizzo e una porta, ci si connette a un percorso . Si utilizza un file effettivo (un file socket) per connettersi.

Il server X inserisce il suo socket /tmp/.X11-unix:

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

Nota sdavanti alle autorizzazioni, il che significa che è un socket. Se hai più server X in esecuzione, avrai più di un file lì.

Almeno con le manpage di Linux, puoi trovare maggiori dettagli sui socket (in generale) man 7 socket. Sono disponibili dettagli sui socket di dominio Unix man 7 unix. Si noti che queste pagine sono incentrate sul programmatore.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.