Talk:Unix domain socket
This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||||||||||||
|
Filesystem
editThey are referenced by processes as inodes in the file system.
This is not quite correct. On several OS you can set the first byte of the pathname to 0, causing the following name to be looked up in a filesystem independent namespace (without any filesystem access control checks). Even from within a chroot. -- (unknown)
- This comment seems to reference specific text of the article, but that text is not there; surely changed at some point in the past.Stevebroshar (talk) 11:33, 12 August 2024 (UTC)
Notes
editThe PF_UNIX (also known as PF_LOCAL) socket family is used to communicate between processes on the same machine efficiently. Unix sockets can be either anonymous (created by socketpair) or associated with a file of type socket. Linux also supports an abstract namespace which is independent of the file system.
Valid types are SOCK_STREAM for a stream oriented socket and SOCK_DGRAM for a datagram oriented socket that preserves message boundaries. Unix sockets are always reliable and don't reorder datagrams.
Unix sockets support passing file descriptors or process credentials to other processes using ancillary data. 220.225.70.2 04:58, 4 April 2007
- This text is almost identical to what's at https://www.unix.com/man-page/linux/7/PF_UNIX/ although oddly it's AF_UNIX, not PF_UNIX. None-the-less, this info is already covered in the article.Stevebroshar (talk) 11:30, 12 August 2024 (UTC)
Advertising based resources
editWhy do the external links point to copies of the Linux documentation on an ad-covered page, rather than the authoritative source? --David Chisnall (talk) 18:35, 19 November 2007 (UTC)
- Today, 17 years later, this does not seem to be an issue. Stevebroshar (talk) 11:25, 12 August 2024 (UTC)
Name
editWhat does domain in Unix domain socket stand for? --Abdull (talk) 20:52, 9 March 2015 (UTC)
- It's essentially the standard English meaning of the word. It's the first parameter of socket(2). The Linux manpage calls it the "communication domain", if that helps, though I've never heard anyone call it that. — Preceding unsigned comment added by 2601:602:A080:1240:45D4:8FC9:967D:6C67 (talk) 02:41, 22 January 2023 (UTC)
- The info from (unknown) is good, but leaves me with more questions that I started with. I assumed that domain means in this context what it means normally (in English!), so that part is not helpful. I see at https://man7.org/linux/man-pages/man2/socket.2.html that socket is a function that accepts an arg called domain. Further, there is a value AF_UNIX for that arg that I assume is what "Unix domain" is referring to. The manual does use communication domain to describe domain. Also, uses protocol family and format. Make up your mind guys! Stevebroshar (talk) 17:53, 8 August 2024 (UTC)
- I think one thing that's confusing about the term Unix domain socket is that socket is a concept in the domain (as in context) of Unix. Therefore, the term Unix domain socket could mean two different things. It could mean a socket created with AF_UNIX or it could mean socket(2) (any sub-type). But, the normal meaning is the former. The confusion would be less if instead of Unix domain socket we called it local domain socket (note that AF_LOCAL is another name for AF_UNIX). Oh well. Stevebroshar (talk) 18:10, 8 August 2024 (UTC)
History or naming
editI think a section on the historical derivation of "Unix domain sockets", or else an explanation of the name, is warranted. They are often called just "sockets" or "socket files" as well. The common synonyms (even if incorrect) and differentiation from commonly conflated entities would be a good addition. DouglasHeld (talk) 17:47, 24 January 2022 (UTC)
- It seems that a Unix domain socket is what you get by passing AF_UNIX for the domain arg to the function socket() -- i.e. socket(AF_UNIX, type, protocol). You can create other kinds of sockets by passing a different value for the domain arg. So socket refers to any type/kind whereas Unix domain socket refers to a subset. If the context is clearly Unix domain socket (or any particular sub-type), then could use just socket as a short form. I did update the article to try to make this clearer.Stevebroshar (talk) 18:03, 8 August 2024 (UTC)
What does UDS have to do with TCP, UDP, SCTP
editArticle says SOCK_STREAM is like TCP, SOCK_DGRAM is like UDP and SOCK_SEQPACKET is like SCTP. But does not expound on that. I see no relation myself. Either this info is wrong, or it should be described in more (any!) detail. Stevebroshar (talk) 11:43, 12 August 2024 (UTC)
UDS facility
editWRT The UDS facility is a standard component of a POSIX operating system Is USD a facility? I think socket is a facility, but USD is just a part of that facility. Maybe I'm splitting hairs. IDK. Stevebroshar (talk) 11:46, 12 August 2024 (UTC)