Поддерживают ли такие платформы, как Solaris, HP-UX, IBM-AIX и т. д., Unix Domain Socket без необходимости в файле сокета, как в Linux?

Я работаю над проектом, который работает на разных платформах, включая Linux, Solaris, HP-UX и IBM-AIX.

Когда мы создаем новый сокет с помощью socket(), система создает сокет с путевым именем, а также создает файл в каком-то временном каталоге. Я пытаюсь настроить среду, в которой этот файл не создается.

Я нашел решение для Linux. В Linux есть понятие «абстрактный сокет». Адрес абстрактного сокета отличается (от имени сокета) тем, что sun_path[0] является нулевым байтом ('\0'). Для получения дополнительной информации обратитесь к справочной странице — http://man7.org/linux/man-pages/man7/unix.7.html

Я пытаюсь найти аналогичное решение, т.е. «не следует создавать файл для сокета» для других платформ, а именно Solaris, HP-UX и IBM-AIX.


person shahidbits    schedule 17.10.2016    source источник


Ответы (1)


Я почти уверен, что для AIX нет эквивалента абстрактного сокета. Существует общая память и другие средства межпроцессного взаимодействия.

Для сокета домена unix я считаю, что файловая система обеспечивает безопасность/защиту, если это необходимо. например вы можете ограничить путь определенной группой, и тогда файловая система позаботится о том, чтобы только те, кто использует эту группу (как в /etc/group), могли получить доступ к этому пути.

person pedz    schedule 02.04.2017