Google에 동일한 질문을 했는데 결과가 마음에 들지 않았습니다.
무엇인가요 /tmp/.X11-unix/
?
답변1
나의 최신 Arch 노트북에는 /tmp/.X11-unix/
하나의 항목이 있는 디렉토리가 있습니다: X0
,유닉스 도메인 소켓.
X11 서버( Xorg
보통 현재)는 xterm
일종의 안정적인 바이트 스트림을 통해 Firefox와 같은 클라이언트와 통신합니다. Unix 도메인 소켓은 아마도 전 세계에 공개된 TCP 소켓보다 더 안전할 것이며, 커널이 모든 것을 수행하고 이더넷이나 무선 카드에 의존할 필요가 없기 때문에 아마도 약간 더 빠를 것입니다.
내 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
.
답변2
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 서버가 실행 중이라면 거기에 여러 개의 파일이 있을 것입니다.
소켓(일반적으로)에 대한 자세한 내용은 최소한 Linux 매뉴얼 페이지에서 찾을 수 있습니다 man 7 socket
. Unix 도메인 소켓에 대한 자세한 정보는 에 있습니다 man 7 unix
. 이 페이지는 프로그래머를 대상으로 합니다.
답변3
/tmp/.X11-unix/X{n}은 X 서버가 수신 AF_DOMAIN 소켓을 배치하는 위치입니다. 자물쇠와 동일한 위치 근처에 /tmp/.X{n}-lock이 있습니다. 에서 논의한 바와 같이https://bugzilla.redhat.com/show_bug.cgi?id=503181이 솔루션은 FHS에 적합하지 않습니다.