Does Linux kernel create a file for a internet domain socket?
Linux kernel create a file for a Unix domain socket binded to a pathname.
Does Linux kernel create a file for a internet domain socket? Thanks.
linux socket
add a comment |
Linux kernel create a file for a Unix domain socket binded to a pathname.
Does Linux kernel create a file for a internet domain socket? Thanks.
linux socket
Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
4 hours ago
add a comment |
Linux kernel create a file for a Unix domain socket binded to a pathname.
Does Linux kernel create a file for a internet domain socket? Thanks.
linux socket
Linux kernel create a file for a Unix domain socket binded to a pathname.
Does Linux kernel create a file for a internet domain socket? Thanks.
linux socket
linux socket
asked 4 hours ago
Tim
26.2k74246455
26.2k74246455
Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
4 hours ago
add a comment |
Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
4 hours ago
Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
4 hours ago
Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
4 hours ago
add a comment |
1 Answer
1
active
oldest
votes
No, not in the sense of a file on hard-drive or other block device.
If you look at socket.c in Linux source code, you will see that it creates an inode for sockets, however data is in sockfs filesystem, which is a virtual filesystem within kernel itself, and space is allocated via kmalloc type of function. In that sense, sockets are anonymous files residing in memory.
This brings back to the concept of "everything is a file in Unix", which is a design pattern that focuses on having common utilities to perform same functions similar to files on real physical media. As Linus Torvalds stated:
The whole point with "everything is a file" is not that you have some random filename (indeed, sockets and pipes show that "file" and "filename" have nothing to do with each other), but the fact that you can use common tools to operate on different things.
Thus sockets have inode to have file-like access, but not present on physical filesystem.
However, note, there exist Unix domain sockets, which are IPC type of object intended for process networking, and do reside on disk filesystems.
1
@Tim I'd say yes. If you look at this they've referencedlsof
output: "0xffff8803e256d9c0. That number is actually the address of the relevant in-kernel memory structure or type struct unix_sock". So there has to be an inode in kernel's virtual filesystem corresponding to that
– Sergiy Kolodyazhnyy
3 hours ago
1
And according to Gilles's answer " Unix socket which is not in the filesystem namespace (it can be in the abstract namespace or unnamed)"
– Sergiy Kolodyazhnyy
3 hours ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492742%2fdoes-linux-kernel-create-a-file-for-a-internet-domain-socket%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
No, not in the sense of a file on hard-drive or other block device.
If you look at socket.c in Linux source code, you will see that it creates an inode for sockets, however data is in sockfs filesystem, which is a virtual filesystem within kernel itself, and space is allocated via kmalloc type of function. In that sense, sockets are anonymous files residing in memory.
This brings back to the concept of "everything is a file in Unix", which is a design pattern that focuses on having common utilities to perform same functions similar to files on real physical media. As Linus Torvalds stated:
The whole point with "everything is a file" is not that you have some random filename (indeed, sockets and pipes show that "file" and "filename" have nothing to do with each other), but the fact that you can use common tools to operate on different things.
Thus sockets have inode to have file-like access, but not present on physical filesystem.
However, note, there exist Unix domain sockets, which are IPC type of object intended for process networking, and do reside on disk filesystems.
1
@Tim I'd say yes. If you look at this they've referencedlsof
output: "0xffff8803e256d9c0. That number is actually the address of the relevant in-kernel memory structure or type struct unix_sock". So there has to be an inode in kernel's virtual filesystem corresponding to that
– Sergiy Kolodyazhnyy
3 hours ago
1
And according to Gilles's answer " Unix socket which is not in the filesystem namespace (it can be in the abstract namespace or unnamed)"
– Sergiy Kolodyazhnyy
3 hours ago
add a comment |
No, not in the sense of a file on hard-drive or other block device.
If you look at socket.c in Linux source code, you will see that it creates an inode for sockets, however data is in sockfs filesystem, which is a virtual filesystem within kernel itself, and space is allocated via kmalloc type of function. In that sense, sockets are anonymous files residing in memory.
This brings back to the concept of "everything is a file in Unix", which is a design pattern that focuses on having common utilities to perform same functions similar to files on real physical media. As Linus Torvalds stated:
The whole point with "everything is a file" is not that you have some random filename (indeed, sockets and pipes show that "file" and "filename" have nothing to do with each other), but the fact that you can use common tools to operate on different things.
Thus sockets have inode to have file-like access, but not present on physical filesystem.
However, note, there exist Unix domain sockets, which are IPC type of object intended for process networking, and do reside on disk filesystems.
1
@Tim I'd say yes. If you look at this they've referencedlsof
output: "0xffff8803e256d9c0. That number is actually the address of the relevant in-kernel memory structure or type struct unix_sock". So there has to be an inode in kernel's virtual filesystem corresponding to that
– Sergiy Kolodyazhnyy
3 hours ago
1
And according to Gilles's answer " Unix socket which is not in the filesystem namespace (it can be in the abstract namespace or unnamed)"
– Sergiy Kolodyazhnyy
3 hours ago
add a comment |
No, not in the sense of a file on hard-drive or other block device.
If you look at socket.c in Linux source code, you will see that it creates an inode for sockets, however data is in sockfs filesystem, which is a virtual filesystem within kernel itself, and space is allocated via kmalloc type of function. In that sense, sockets are anonymous files residing in memory.
This brings back to the concept of "everything is a file in Unix", which is a design pattern that focuses on having common utilities to perform same functions similar to files on real physical media. As Linus Torvalds stated:
The whole point with "everything is a file" is not that you have some random filename (indeed, sockets and pipes show that "file" and "filename" have nothing to do with each other), but the fact that you can use common tools to operate on different things.
Thus sockets have inode to have file-like access, but not present on physical filesystem.
However, note, there exist Unix domain sockets, which are IPC type of object intended for process networking, and do reside on disk filesystems.
No, not in the sense of a file on hard-drive or other block device.
If you look at socket.c in Linux source code, you will see that it creates an inode for sockets, however data is in sockfs filesystem, which is a virtual filesystem within kernel itself, and space is allocated via kmalloc type of function. In that sense, sockets are anonymous files residing in memory.
This brings back to the concept of "everything is a file in Unix", which is a design pattern that focuses on having common utilities to perform same functions similar to files on real physical media. As Linus Torvalds stated:
The whole point with "everything is a file" is not that you have some random filename (indeed, sockets and pipes show that "file" and "filename" have nothing to do with each other), but the fact that you can use common tools to operate on different things.
Thus sockets have inode to have file-like access, but not present on physical filesystem.
However, note, there exist Unix domain sockets, which are IPC type of object intended for process networking, and do reside on disk filesystems.
answered 4 hours ago
Sergiy Kolodyazhnyy
8,35212152
8,35212152
1
@Tim I'd say yes. If you look at this they've referencedlsof
output: "0xffff8803e256d9c0. That number is actually the address of the relevant in-kernel memory structure or type struct unix_sock". So there has to be an inode in kernel's virtual filesystem corresponding to that
– Sergiy Kolodyazhnyy
3 hours ago
1
And according to Gilles's answer " Unix socket which is not in the filesystem namespace (it can be in the abstract namespace or unnamed)"
– Sergiy Kolodyazhnyy
3 hours ago
add a comment |
1
@Tim I'd say yes. If you look at this they've referencedlsof
output: "0xffff8803e256d9c0. That number is actually the address of the relevant in-kernel memory structure or type struct unix_sock". So there has to be an inode in kernel's virtual filesystem corresponding to that
– Sergiy Kolodyazhnyy
3 hours ago
1
And according to Gilles's answer " Unix socket which is not in the filesystem namespace (it can be in the abstract namespace or unnamed)"
– Sergiy Kolodyazhnyy
3 hours ago
1
1
@Tim I'd say yes. If you look at this they've referenced
lsof
output: "0xffff8803e256d9c0. That number is actually the address of the relevant in-kernel memory structure or type struct unix_sock". So there has to be an inode in kernel's virtual filesystem corresponding to that– Sergiy Kolodyazhnyy
3 hours ago
@Tim I'd say yes. If you look at this they've referenced
lsof
output: "0xffff8803e256d9c0. That number is actually the address of the relevant in-kernel memory structure or type struct unix_sock". So there has to be an inode in kernel's virtual filesystem corresponding to that– Sergiy Kolodyazhnyy
3 hours ago
1
1
And according to Gilles's answer " Unix socket which is not in the filesystem namespace (it can be in the abstract namespace or unnamed)"
– Sergiy Kolodyazhnyy
3 hours ago
And according to Gilles's answer " Unix socket which is not in the filesystem namespace (it can be in the abstract namespace or unnamed)"
– Sergiy Kolodyazhnyy
3 hours ago
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492742%2fdoes-linux-kernel-create-a-file-for-a-internet-domain-socket%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
4 hours ago