unix域套接字执行任何文件系统读写吗?

时间:2016-03-20 19:49:20

标签: linux sockets unix linux-kernel

将memcached与unix域套接字一起使用,是否有任何文件系统可读/写?如果确实如此:对于那些试图减少或完全清除任何文件系统操作的工具来说,这不是一个缺点吗?

或者用另一种方式询问,是否有可能只为unix域套接字使用内存?

我还不确定Unix域套接字是否使用文件系统,我不是C人,而是关于https://github.com/torvalds/linux/blob/master/net/unix/af_unix.c实现的概述,我看到有文件系统用法。所以不仅仅是记忆吗?

编辑:在阅读了我的问题和描述之后,我意识到我问了很多问题,问题本身与描述几乎不同。我想填补我心中的信息空白,对不起这个混合问题感到抱歉。

1 个答案:

答案 0 :(得分:5)

Linux内核本身不会保留任何内部数据或应用程序数据。您可以使用所有内核功能而无需安装磁盘。

您必须区分文件系统和磁盘。文件系统可以是完全虚拟的,可以驻留在内存中,也可以驻留在网络上。

某些POSIX操作使用路径作为唯一标识符,包括UNIX域套接字。该路径仅作为标识符存在。例如,您可以将其放在tmpfs中以避免任何磁盘使用。在现代Linux系统上,/tmp/通常安装在tmpfs

请注意,即使您的套接字端点位于磁盘上的文件系统中,磁盘使用率仍然可以忽略不计。由于该路径仅用于识别/查找套接字本身,因此不会在磁盘上写入任何实际数据。内核也会将路径缓存在内存中。