Wow, j'allais vous demander ce que vous n'aimiez pas chez eux ... mais ce sont des résultats assez terribles.
derobert
Exécutez-vous Xvnc?
toxefa
2
@ py4on Je ne pense pas, je le demande en raison de mon intérêt pour l'exécution d'applications graphiques à l'intérieur d'un conteneur docker, auquel cela mentionne de faire passer cette socket x11 au conteneur. stackoverflow.com/a/25334301/1695680
@JdeBP en effet, mais le titre d'un extrait ne vous donne aucune raison de cliquer dessus - ressemble à la résolution d'un problème aléatoire. Bien sûr, maintenant cette question apparaît, donc Google est corrigé.
derobert
Réponses:
21
Sur mon ordinateur portable Arch, assez à jour, se /tmp/.X11-unix/trouve un répertoire avec une entrée:X0 :, une socket de domaine Unix .
Le serveur X11 (généralement Xorg nos jours) communique avec des clients comme xtermFirefox, etc. via une sorte de flux d'octets fiable. Un socket de domaine Unix est probablement un peu plus sécurisé qu'un socket TCP ouvert au monde, et probablement un peu plus rapide, car le noyau fait tout, et n'a pas besoin de s'appuyer sur une carte Ethernet ou sans fil.
Pas pour tergiverser, mais je doute qu'un socket local unix présente des avantages en termes de performances par rapport à un socket TCP local (qui n'utilise pas d'interface matérielle et est également 100% noyau).
@Max je me corrige! Bien que ce ne soit pas pour les raisons citées par Bruce, mais à cause de la surcharge de la pile TCP du noyau.
goldilocks
11
Le serveur X a plusieurs façons de communiquer avec les clients X (applications). Le plus courant à utiliser, au moins sur la même machine, est un socket de domaine Unix.
Un socket de domaine Unix est comme les TCP plus familiers, sauf qu'au lieu de se connecter à une adresse et un port, vous vous connectez à un chemin . Vous utilisez un fichier réel (un fichier socket) pour vous connecter.
Le serveur X place son socket dans /tmp/.X11-unix:
$ ls -l /tmp/.X11-unix/X0
srwxrwxrwx 1 root root 0 Dec 18 18:03 /tmp/.X11-unix/X0
Notez le sdevant des autorisations, ce qui signifie que c'est un socket. Si vous avez plusieurs serveurs X en cours d'exécution, vous y trouverez plusieurs fichiers.
Au moins avec les pages de manuel Linux, plus de détails sur les sockets (en général) peuvent être trouvés dans man 7 socket. Les détails sur les sockets de domaine Unix sont disponibles man 7 unix. Notez que ces pages sont destinées aux programmeurs.
/tmp/.X11-unix/X{n} est l'endroit où le serveur X place les sockets AF_DOMAIN à l'écoute. Près du même endroit sont /tmp/.X{n}-lock étant des verrous. Comme indiqué dans https://bugzilla.redhat.com/show_bug.cgi?id=503181, ce schéma n'est pas bon pour le FHS.
Réponses:
Sur mon ordinateur portable Arch, assez à jour, se
/tmp/.X11-unix/
trouve un répertoire avec une entrée:X0
:, une socket de domaine Unix .Le serveur X11 (généralement
Xorg
nos jours) communique avec des clients commexterm
Firefox, etc. via une sorte de flux d'octets fiable. Un socket de domaine Unix est probablement un peu plus sécurisé qu'un socket TCP ouvert au monde, et probablement un peu plus rapide, car le noyau fait tout, et n'a pas besoin de s'appuyer sur une carte Ethernet ou sans fil.Mon serveur X11 apparaît comme:
Le "-nolisten tcp" l'empêche d'ouvrir le port TCP 6000 pour les communications.
La commande
lsof -U
peut vous dire quels processus utilisent quels sockets de domaine Unix. Je voisXorg
comme connecté à/tmp/.X11-unix/X0
.la source
Le serveur X a plusieurs façons de communiquer avec les clients X (applications). Le plus courant à utiliser, au moins sur la même machine, est un socket de domaine Unix.
Un socket de domaine Unix est comme les TCP plus familiers, sauf qu'au lieu de se connecter à une adresse et un port, vous vous connectez à un chemin . Vous utilisez un fichier réel (un fichier socket) pour vous connecter.
Le serveur X place son socket dans
/tmp/.X11-unix
:Notez le
s
devant des autorisations, ce qui signifie que c'est un socket. Si vous avez plusieurs serveurs X en cours d'exécution, vous y trouverez plusieurs fichiers.Au moins avec les pages de manuel Linux, plus de détails sur les sockets (en général) peuvent être trouvés dans
man 7 socket
. Les détails sur les sockets de domaine Unix sont disponiblesman 7 unix
. Notez que ces pages sont destinées aux programmeurs.la source
/tmp/.X11-unix/X{n} est l'endroit où le serveur X place les sockets AF_DOMAIN à l'écoute. Près du même endroit sont /tmp/.X{n}-lock étant des verrous. Comme indiqué dans https://bugzilla.redhat.com/show_bug.cgi?id=503181, ce schéma n'est pas bon pour le FHS.
la source