Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Unix domain socket
Socket for exchanging data between processes executing on the same OS; similar to an Internet socket, but all communication occurs within the same OS

A Unix domain socket (UDS), a.k.a. local socket, a.k.a. inter-process communication (IPC) socket, is a communication endpoint for exchanging data between processes executing in the same Unix or Unix-like operating system.

The name, Unix domain socket, refers to the domain argument value AF_UNIX that is passed to the function that creates a socket system resource. The same communication domain is also selected by AF_LOCAL.

Valid type argument values for a UDS are:

  • SOCK_STREAM (compare to TCP) – for a stream-oriented socket
  • SOCK_DGRAM (compare to UDP) – for a datagram-oriented socket that preserves message boundaries (as on most UNIX implementations, UNIX domain datagram sockets are always reliable and don't reorder datagrams)
  • SOCK_SEQPACKET (compare to SCTP) – for a sequenced-packet socket that is connection-oriented, preserves message boundaries, and delivers messages in the order that they were sent

The UDS facility is a standard component of a POSIX operating system.

The API for a UDS is similar to that of an Internet socket, but rather than using an underlying network protocol, all communication occurs entirely within the operating system kernel. A UDS may use the file system as its address name space. Some operating systems, like Linux, offer additional namespaces. Processes reference a UDS as a file system inode, so two processes can communicate by opening the same socket.

In addition to sending data, processes may send file descriptors across a UDS connection using the sendmsg() and recvmsg() system calls. This allows the sending processes to grant the receiving process access to a file descriptor for which the receiving process otherwise does not have access. This can be used to implement a rudimentary form of capability-based security.

We don't have any images related to Unix domain socket yet.
We don't have any YouTube videos related to Unix domain socket yet.
We don't have any PDF documents related to Unix domain socket yet.
We don't have any Books related to Unix domain socket yet.
We don't have any archived web articles related to Unix domain socket yet.

See also

  • Network socket – Software-based endpoint of network communications
  • Berkeley sockets – Inter-process communication API
  • Pipeline (Unix) – Mechanism for inter-process communication using message passing
  • Netlink – Linux kernel interface for inter-process communication between processes

References

  1. "Linux Programmer's Manual (unix - sockets for local interprocess communication)". 30 April 2018. Retrieved 22 February 2019. http://man7.org/linux/man-pages/man7/unix.7.html

  2. "Linux Programmer's Manual (unix - sockets for local interprocess communication)". 30 April 2018. Retrieved 22 February 2019. http://man7.org/linux/man-pages/man7/unix.7.html

  3. "Archive of the "Postfix Discussions" mailing list". 30 September 2000. Archived from the original on 18 May 2013. Retrieved 29 September 2014. https://web.archive.org/web/20130518084034/http://archives.neohapsis.com/archives/postfix/2000-09/1476.html

  4. "Linux man page - cmsg(3): access ancillary data". Retrieved 9 October 2018. https://linux.die.net/man/3/cmsg

  5. ""Secure Programming for Linux and Unix HOWTO", Section 3.4 "Sockets and Network Connections"". dwheeler.com. David A. Wheeler. 22 August 2004. Retrieved 29 September 2014. https://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/sockets.html