Soquete de domínio Unix
Um soquete de domínio Unix (do inglês Unix domain socket) ou soquete de CET (soquete de comunicação entre processos, do inglês IPC socket - Inter-process comunication socket) é um ponto final de comunicações de dados para troca de dados entre processos que executam dentro do mesmo sistema operacional hospedeiro.[1] Apesar de similar, em funcionalidade, aos pipes nomeados, soquetes de domínio Unix podem ser criados como modo-conexão (SOCK_STREAM ou SOCK_SEQPACKET) ou como modo sem conexão (SOCK_DGRAM), enquanto pipes são apenas de stream. Processos que utilizam soquetes de domínio Unix não precisam compartilhar um ancestral comum. A API para soquetes de domínio Unix é similar aquele de um soquete de Internet, mas não usa um protocolo de rede subjacente para comunicação. A funcionalidade de soquete de domínio Unix é um componente padrão de sistemas operacionais POSIX.
Soquetes de domínio Unix utilizam o sistema de arquivos como seus espaços de nomes de endereço. Eles são referenciados por processos como inodes no sistema de arquivos. Isto permite que dois processos abram o mesmo soquete para poder comunicar. Entretanto, a comunicação propriamente dita ocorre através de áreas de memória alocadas pelo núcleo do sistema operacional, sem passar pelo sistema de arquivos.
Além disso, para 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()
.