"/tmp/.X11-unix/"란 무엇입니까?

"/tmp/.X11-unix/"란 무엇입니까?

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에 적합하지 않습니다.

관련 정보