Does Linux kernel create a file for a internet domain socket?












2














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.










share|improve this question






















  • Possible duplicate of Is there a file for each socket?
    – Sergiy Kolodyazhnyy
    1 hour ago
















2














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.










share|improve this question






















  • Possible duplicate of Is there a file for each socket?
    – Sergiy Kolodyazhnyy
    1 hour ago














2












2








2







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.










share|improve this question













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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 1 hour ago









Tim

26.2k74246455




26.2k74246455












  • Possible duplicate of Is there a file for each socket?
    – Sergiy Kolodyazhnyy
    1 hour ago


















  • Possible duplicate of Is there a file for each socket?
    – Sergiy Kolodyazhnyy
    1 hour ago
















Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
1 hour ago




Possible duplicate of Is there a file for each socket?
– Sergiy Kolodyazhnyy
1 hour ago










1 Answer
1






active

oldest

votes


















3














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.






share|improve this answer

















  • 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
    1 hour 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
    1 hour ago











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
});


}
});














draft saved

draft discarded


















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









3














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.






share|improve this answer

















  • 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
    1 hour 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
    1 hour ago
















3














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.






share|improve this answer

















  • 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
    1 hour 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
    1 hour ago














3












3








3






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.






share|improve this answer












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.







share|improve this answer












share|improve this answer



share|improve this answer










answered 1 hour ago









Sergiy Kolodyazhnyy

8,34212152




8,34212152








  • 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
    1 hour 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
    1 hour ago














  • 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
    1 hour 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
    1 hour 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
1 hour 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
1 hour 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
1 hour 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
1 hour ago


















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

Quarter-circle Tiles

build a pushdown automaton that recognizes the reverse language of a given pushdown automaton?

Mont Emei