O que é um soquete de domínio Unix®?
Um soquete de domínio Unix® é um tipo especial de soquete no sistema operacional Unix® que transfere dados de um aplicativo para outro. Diferentemente de outros soquetes, que geralmente se conectam a outros sistemas, o soquete de domínio Unix® é um soquete de comunicação entre processos (IPC), o que significa que ele se conecta apenas a outros programas no computador do usuário. Estruturalmente, o soquete do domínio é mais como um pipe nomeado do que um soquete, embora tenha vários recursos que um pipe não inclui. O uso de soquetes de domínio é seguro, porque outras redes não podem espionar o fluxo de dados e o soquete nem precisa de uma rede para funcionar.
Os soquetes, em todos os sistemas operacionais, são usados para transmitir bytes de um programa para outro em um fluxo bidirecional, o que significa que, enquanto os dados saem, outros entram. Isso normalmente é usado como uma ponte para outros servidores e computadores, mas não no caso de um soquete de domínio Unix®. Esses soquetes especiais são usados para enviar dados do sistema de arquivos Unix® para outro programa, em vez de uma rede externa.
Enquanto o soquete do domínio Unix® compartilha muitas tarefas e habilidades relacionadas ao soquete, é mais como um pipe nomeado. Um pipe nomeado é uma maneira de o computador transmitir dados de uma seção para outra. Ele é chamado de pipe nomeado porque o pipe recebe um nome, assim como o soquete do domínio Unix® possui um nome - o próprio sistema de arquivos Unix® funciona como o nome. A principal diferença entre esses dois é que os pipes podem oferecer apenas seqüências de fluxo de bytes, nas quais os dados são lidos à medida que são enviados, enquanto os soquetes de domínio oferecem fluxo de bytes e datagrama, nos quais as informações são lidas como pacotes. O fluxo de bytes é melhor em termos de segurança, enquanto o datagrama é melhor para sistemas que enviam mensagens contínuas.
Os soquetes de domínio Unix® não foram criados para integrar-se a redes externas, mas oferecem muitas funções convenientes para redes locais, independentemente de uma pessoa ou várias pessoas estarem usando o computador. Ao usar o soquete de domínio Unix® em vez de outros tipos de soquetes, os programas podem obter autenticação ou permissão, sem que o usuário precise inseri-lo manualmente. O soquete do domínio também assume as regras do sistema Unix®, o que é útil se usuários diferentes tiverem níveis diferentes de acesso, porque essas regras podem ser gravadas no sistema e serão atendidas.
Mais do que outros soquetes e tubulações, um soquete de domínio Unix® é seguro. Soquetes de domínio não permitirão que uma rede não confiável escute o fluxo de dados e computadores remotos não podem se conectar ao fluxo sem acesso. Todas as informações de autenticação e login estão localizadas no domínio Unix®, para que o usuário nunca precise digitar uma senha ou nome de usuário para efetuar login no servidor. Isso significa que os programas que ouvem as teclas não obtêm essas informações.