`/ tmp / .X11-unix /`는 무엇입니까? 질문을했지만 결과가 마음에 들지 않았습니다. 무엇입니까

Google에 같은 질문을했지만 결과가 마음에 들지 않았습니다.

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



답변

필자의 최신 아치 랩톱 에는 Unix-domain socket 이라는 /tmp/.X11-unix/항목이있는 디렉토리가 있습니다.X0

X11 서버 (일반적으로 Xorg요즘)는 xterm일종의 안정적인 바이트 스트림을 통해, firefox 등과 같은 클라이언트와 통신 합니다. 유닉스 도메인 소켓은 아마도 세계에 개방 된 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.


답변

X 서버에는 X 클라이언트 (앱)와 통신하는 여러 가지 방법이 있습니다. 적어도 같은 머신에서 가장 많이 사용하는 것은 유닉스 도메인 소켓입니다.

유닉스 도메인 소켓은 대신 주소와 포트에 연결, 당신이에 연결하는 것을 제외하고, 더 익숙한 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 서버가 실행중인 경우 하나 이상의 파일이 있습니다.

최소한 리눅스 맨 페이지에서는 소켓 (일반)에 대한 자세한 내용은에서 찾을 수 있습니다 man 7 socket. 유닉스 도메인 소켓에 대한 자세한 내용은에 man 7 unix있습니다. 이 페이지는 프로그래머 중심입니다.


답변

/tmp/.X11-unix/X{n}은 X 서버가 AF_DOMAIN 소켓을 수신하는 위치입니다. 같은 장소 근처에 /tmp/.X{n}-lock이 있습니다. https://bugzilla.redhat.com/show_bug.cgi?id=503181 에서 논의 된 것처럼 이 체계는 FHS가 좋지 않습니다.