Un socket de dominio UNIX (UDS) o socket IPC (socket de comunicación interprocesos) es un socket virtual, similar a un socket de Internet que se utiliza en los sistemas operativos POSIX para comunicación entre procesos. Estas conexiones aparecen como flujos de bytes, al igual que las conexiones de red, pero todos los datos se mantienen dentro de la computadora local.

Los Sockets de dominio UNIX utilizan el sistema de archivos como su dirección de espacio de nombres, es decir, son vistos por los procesos como archivos de un sistema de archivos. Esto permite que dos procesos distintos referencien y abran el mismo socket con el fin de comunicarse. Sin embargo, la comunicación real (el intercambio de datos) no utiliza el sistema de ficheros, sino buffers de memoria del núcleo.

Además del envío de datos, los procesos pueden enviar descriptores de archivos a una conexión de socket de dominio UNIX mediante las llamadas del sistema sendmsg() y recvmsg(). Esto permite que los procesos de envío concedan al proceso de recepción acceso a un descriptor de archivo para el cual el proceso de recepción no tiene acceso.[1]​ Esto puede ser utilizado para implementar un formulario rudimentario de seguridad basada en capacidades.[2]​ Por ejemplo, esto le permite al analizador del antivirus ClamAV ejecutar un demonio sin privilegios en Linux o BSD, aunque puede enviar cualquier archivo al socket del demonio.

Un ejemplo simple para crear un socket es cuando se desea multiplexar conexiones SSH por una sola conexión TCP:

nano ~/.ssh/config

Host *
    ControlMaster auto
    ControlPath ~/.ssh/multiplex/%r@%h:%p
    ControlPersist 1

La directiva “ControlMaster” debe establecerse a “auto” para activar el multiplexado siempre y cuando sea posible. La directiva “ControlPath” establecerá el camino del socket de control. La primera sesión establecida creará dicho socket y las sesiones subsecuentes serán capaces de encontrarlo ya que está etiquetado por nombre de usuario, host y puerto.

Al establecer la directiva “ControlPersist” a “1” permitirá que la conexión inicial esté en segundo plano. El número 1, indica que la conexión TCP debe terminar automáticamente un segundo después que la conexión SSH es cerrada.

Referencias

editar
  1. «Archive of the "Postfix Discussions" mailing list». 30 de septiembre de 2000. Archivado desde el original el 18 de mayo de 2013. Consultado el 29 de septiembre de 2014. 
  2. «"Secure Programming for Linux and Unix HOWTO", Section 3.4 "Sockets and Network Connections"». dwheeler.com. David A. Wheeler. 22 de agosto de 2004. Consultado el 29 de septiembre de 2014. 

Enlaces externos

editar

📚 Artikel Terkait di Wikipedia

Douglas Comer

Client-Server Programming and Applications, BSD Socket Version – 1996 Internetworking With TCP/IP Volume III: Client-Server Programming and Applications

Crystal (lenguaje de programación)

0", 8080) puts "Listening on http://0.0.0.0:8080" server.listen require "socket" def handle_client(client) message = client.gets client.puts message end

Zen 3

3 se llamará Milán y será la última generación de chips que utilizan el socket SP3.​ Solé, Roberto (19 de abril de 2020). «Los AMD Ryzen de arquitectura

Epyc

soporta configuraciones de sistemas de múltiples chips y doble-zócalo (dual-socket) a través de la interconexión Infinity Fabric. En marzo de 2017, AMD anunció

Señal (informática)

*SIGTRAP - Trace/breakpoint trap. SIGURG - datos importantes disponibles en socket *SIGVTALRM - "virtual timer expired"(SUS) *SIGXCPU - excedido límite de

Embarcadero Delphi

intercambio de componentes Felix Colibri (en inglés) source code (database, Socket programming, Asp.Net helpers, SQL parser, design patterns, ADO Net tutorial) Datos:

REPL

elementos que pueden no ser fácilmente leídos de nuevo, como una gestión de un socket o una compleja instancia de una clase. En estos casos, debe existir una

Transport Layer Interface

desde principios de los años 1990 estaba claro que la interfaz Berkeley Socket terminaría prevaleciendo.​ TLI y XTI aún son compatibles con sistemas operativos