답변:
은 @
아마에서 열린 소켓을 나타냅니다 abstract namespace
파일 시스템에있는 파일에 속하지 않는합니다.
에서 인용 리눅스 프로그래밍 인터페이스 에 의해 마이클 케 리스크 :
57.6 리눅스 추상 소켓 네임 스페이스
소위 추상 네임 스페이스는 파일 시스템에서 해당 이름을 작성하지 않고 UNIX 도메인 소켓을 이름에 바인딩 할 수있는 Linux 고유 기능입니다. 이것은 몇 가지 잠재적 인 이점을 제공합니다.
- 파일 시스템의 기존 이름과의 충돌 가능성에 대해 걱정할 필요가 없습니다.
- 소켓 사용이 끝나면 소켓 경로 이름을 연결 해제 할 필요가 없습니다. 소켓이 닫히면 추상 이름이 자동으로 제거됩니다.
- 소켓의 파일 시스템 경로 이름을 만들 필요가 없습니다. 이것은 chroot 환경에서 또는 파일 시스템에 대한 쓰기 액세스 권한이없는 경우에 유용 할 수 있습니다.
추상 바인딩을 만들려면 sun_path 필드 의 첫 번째 바이트를 null 바이트 (\ 0)로 지정합니다. [...]
null byte
이러한 유형의 소켓을 표시하기 위해 행간 을 표시하는 것은 어려울 수 있으므로 선행 @
부호 의 이유 일 수 있습니다 .
에 따라 man 7 unix
- abstract : 추상 소켓 주소는 sun_path [0]이 널 바이트 (
\0
) 라는 사실로 구별됩니다 . sun_path의 나머지 바이트는 모두 소켓의 "이름"을 정의합니다. 이름의 널 바이트에는 특별한 의미가 없습니다. 이름은 파일 시스템 경로 이름과 연결되지 않습니다. 이 네임 스페이스의 소켓 주소는 sun_path의 나머지 바이트에 의해 제공됩니다. 추상 소켓의 주소가 getsockname (2), getpeername (2) 및 accept (2)에 의해 리턴되면 길이는 sizeof (struct sockaddr_un)이며 sun_path는 추상 이름을 포함합니다. 추상 소켓 네임 스페이스는 이식 불가능한 Linux 확장입니다.
이것들은 '추상적'인 것처럼 보입니다. 파일 시스템에 실제 경로가 없습니다.
ss
프로그램은 또한 "@ / tmp / .X11-unix / X0"와 같은 소켓 엔드 포인트를 보여줍니다