Домен AF_UNIX - зачем использовать только локальные имена файлов? - PullRequest
7 голосов
/ 23 апреля 2009

При использовании сокета в домене UNIX рекомендуется использовать путь к каталогу, смонтированному на локальном диске. Домен UNIX разрешает межпроцессное взаимодействие только для процессов, работающих на одном компьютере.

Не могли бы вы объяснить вышеприведенную строку? Речь идет о сокете в UNIX DOMAIN.

Спасибо!

Ответы [ 3 ]

12 голосов
/ 23 апреля 2009

Сокет домена Unix или сокет IPC (сокет межпроцессного взаимодействия) - это конечная точка передачи данных, которая похожа на интернет-сокет, но не использует сетевой протокол для связи. Он используется в операционных системах POSIX для межпроцессного взаимодействия. Правильный стандартный термин POSIX - POSIX Local IPC Sockets.

Соединения домена Unix отображаются в виде потоков байтов, очень похоже на сетевые соединения, но все данные остаются на локальном компьютере. Доменные сокеты UNIX используют файловую систему в качестве адресного пространства имен, то есть процессы на них ссылаются как на inode в файловой системе. Это позволяет двум разным процессам открывать один и тот же сокет для связи. Однако фактическая связь (обмен данными) использует не файловую систему, а буферы в памяти ядра.

В дополнение к отправке данных процессы могут отправлять файловые дескрипторы через соединение с сокетом домена Unix с помощью системных вызовов sendmsg () и recvmsg ().

4 голосов
/ 23 апреля 2009

Это означает, что если вы создаете сокет AF_UNIX на диске NFS, который используется двумя компьютерами A и B, у вас не будет процесса записи данных A в сокет unix и процесса чтения данных B из этого сокета.

Связь происходит на уровне ядра, и вы можете передавать данные только между процессами, находящимися в одном ядре.

4 голосов
/ 23 апреля 2009

Конечные точки сокетов домена UNIX представлены файлами в файловой системе (а не хостом / портом).

Однако связь между процессами осуществляется внутри локальной системы и не приводит к тому, что искомый файл сохраняется где-либо.

Преимущество использования файловой системы в качестве пространства имен для конечных точек состоит в том, что можно применять обычные права доступа к файлам и списки ACL - если вы не можете открыть конечную точку, вы не можете подключиться. IP-сокеты не имеют такого механизма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...