@JdeBP in der Tat, aber der Titel und ein Auszug geben Ihnen keinen Grund, darauf zu klicken - es sieht so aus, als ob Sie ein zufälliges Problem beheben. Natürlich taucht jetzt diese Frage auf, also ist Google behoben.
Derobert
Antworten:
21
Auf meinem ziemlich aktuellen Arch-Laptop /tmp/.X11-unix/befindet sich ein Verzeichnis mit einem Eintrag:, X0einem Unix-Domain-Socket .
Der X11-Server (heutzutage üblich Xorg) kommuniziert mit Clients wie xtermFirefox usw. über eine Art zuverlässigen Bytestrom. Ein Unix-Domain-Socket ist wahrscheinlich ein bisschen sicherer als ein weltoffener TCP-Socket und wahrscheinlich ein bisschen schneller als der Kernel und muss sich nicht auf eine Ethernet- oder WLAN-Karte verlassen.
Nicht zu picken, aber ich bezweifle, dass ein lokaler Unix-Socket irgendwelche Leistungsvorteile gegenüber einem lokalen TCP-Socket hat (der keine Hardwareschnittstelle verwendet und auch zu 100% aus Kernel besteht).
@Max ich stehe korrigiert! Obwohl es nicht für die von Bruce zitierten Gründen, sondern aufgrund des Aufwands für den TCP - Stack des Kernels.
Goldlöckchen
11
Der X-Server bietet verschiedene Möglichkeiten zur Kommunikation mit X-Clients (Apps). Am häufigsten wird zumindest auf demselben Computer ein Unix-Domain-Socket verwendet.
Ein Unix-Domain-Socket ist mit den bekannteren TCP-Sockets vergleichbar, mit dem Unterschied, dass Sie keine Verbindung zu einer Adresse und einem Port herstellen, sondern eine Verbindung zu einem Pfad herstellen . Sie verwenden eine aktuelle Datei (eine Socket-Datei), um eine Verbindung herzustellen.
Der X-Server steckt seinen Socket in /tmp/.X11-unix:
$ ls -l /tmp/.X11-unix/X0
srwxrwxrwx 1 root root 0 Dec 18 18:03 /tmp/.X11-unix/X0
Beachten Sie die svor den Berechtigungen, was bedeutet, es ist ein Socket. Wenn mehrere X-Server ausgeführt werden, ist mehr als eine Datei vorhanden.
Zumindest in den Linux-Hilfeseiten finden Sie weitere Informationen zu Sockets (im Allgemeinen) in man 7 socket. Details zu Unix-Domain-Sockets finden Sie in man 7 unix. Beachten Sie, dass diese Seiten programmiererorientiert sind.
/tmp/.X11-unix/X{n} sind die Positionen, an denen der X-Server die empfangsbereiten AF_DOMAIN-Sockets platziert. In der Nähe des gleichen Ortes befinden sich /tmp/.X{n}-lock being locks. Wie in https://bugzilla.redhat.com/show_bug.cgi?id=503181 beschrieben, ist dieses Schema nicht für FHS geeignet.
Antworten:
Auf meinem ziemlich aktuellen Arch-Laptop
/tmp/.X11-unix/
befindet sich ein Verzeichnis mit einem Eintrag:,X0
einem Unix-Domain-Socket .Der X11-Server (heutzutage üblich
Xorg
) kommuniziert mit Clients wiexterm
Firefox usw. über eine Art zuverlässigen Bytestrom. Ein Unix-Domain-Socket ist wahrscheinlich ein bisschen sicherer als ein weltoffener TCP-Socket und wahrscheinlich ein bisschen schneller als der Kernel und muss sich nicht auf eine Ethernet- oder WLAN-Karte verlassen.Mein X11-Server wird angezeigt als:
Das "-nolisten tcp" verhindert, dass der TCP-Port 6000 für die Kommunikation geöffnet wird.
Der Befehl
lsof -U
kann Ihnen mitteilen, welche Prozesse welche Unix-Domain-Sockets verwenden. Ich seheXorg
als verbunden/tmp/.X11-unix/X0
.quelle
Der X-Server bietet verschiedene Möglichkeiten zur Kommunikation mit X-Clients (Apps). Am häufigsten wird zumindest auf demselben Computer ein Unix-Domain-Socket verwendet.
Ein Unix-Domain-Socket ist mit den bekannteren TCP-Sockets vergleichbar, mit dem Unterschied, dass Sie keine Verbindung zu einer Adresse und einem Port herstellen, sondern eine Verbindung zu einem Pfad herstellen . Sie verwenden eine aktuelle Datei (eine Socket-Datei), um eine Verbindung herzustellen.
Der X-Server steckt seinen Socket in
/tmp/.X11-unix
:Beachten Sie die
s
vor den Berechtigungen, was bedeutet, es ist ein Socket. Wenn mehrere X-Server ausgeführt werden, ist mehr als eine Datei vorhanden.Zumindest in den Linux-Hilfeseiten finden Sie weitere Informationen zu Sockets (im Allgemeinen) in
man 7 socket
. Details zu Unix-Domain-Sockets finden Sie inman 7 unix
. Beachten Sie, dass diese Seiten programmiererorientiert sind.quelle
/tmp/.X11-unix/X{n} sind die Positionen, an denen der X-Server die empfangsbereiten AF_DOMAIN-Sockets platziert. In der Nähe des gleichen Ortes befinden sich /tmp/.X{n}-lock being locks. Wie in https://bugzilla.redhat.com/show_bug.cgi?id=503181 beschrieben, ist dieses Schema nicht für FHS geeignet.
quelle