Soquete de domínio Unix - Unix domain socket

Um soquete de domínio Unix ou soquete IPC ( soquete de comunicação entre processos ) é um ponto de extremidade de comunicação de dados para troca de dados entre processos em execução no mesmo sistema operacional host. Os tipos de soquete válidos no domínio UNIX são:

  • SOCK_STREAM (compare com TCP ) - para um soquete orientado a stream
  • SOCK_DGRAM (compare com UDP ) - para um soquete orientado a datagrama que preserva os limites da mensagem (como na maioria das implementações UNIX, os soquetes de datagrama de domínio UNIX são sempre confiáveis ​​e não reordenam datagramas)
  • SOCK_SEQPACKET (compare com SCTP ) - para um soquete de pacote sequenciado que é orientado à conexão, preserva os limites da mensagem e entrega as mensagens na ordem em que foram enviadas

O recurso de soquete de domínio Unix é um componente padrão dos sistemas operacionais POSIX .

A API para soquetes de domínio Unix é semelhante à de um soquete de Internet , mas em vez de usar um protocolo de rede subjacente, toda a comunicação ocorre inteiramente dentro do kernel do sistema operacional . Os soquetes de domínio Unix podem usar o sistema de arquivos como seu espaço de nome de endereço . (Alguns sistemas operacionais, como o Linux, oferecem namespaces adicionais.) Os processos fazem referência a soquetes de domínio Unix como inodes do sistema de arquivos , portanto, dois processos podem se comunicar abrindo o mesmo soquete.

Além de enviar dados, os processos podem enviar descritores de arquivo através de uma conexão de soquete de domínio Unix usando as chamadas de sistema sendmsg() e recvmsg() . Isso permite que os processos de envio concedam ao processo de recebimento acesso a um descritor de arquivo para o qual o processo de recebimento não teria acesso. Isso pode ser usado para implementar uma forma rudimentar de segurança baseada em capacidade . Por exemplo, isso permite que o verificador Clam AntiVirus seja executado como um daemon sem privilégios no Linux e BSD, mas ainda leia qualquer arquivo enviado para o soquete de domínio Unix do daemon.

Veja também

Referências

links externos