我们经常看到自己的 linux 操作系统里除了 ext3 之外, 还有很多其他的文件系统, 如 debugfs, tmpfs, proc, sysfs 等. 本文简介这些文件系统是做什么的.
kernel space - user space interface
实际上, 除了 tmpfs 之外, 这些文件系统都用作内核空间和用户空间的接口[2]. ref.2 给出了比较全面的介绍和进阶资料, 在此不再赘述, 仅列出它们的主要用途:
- procfs: 路径 /proc; 主要用于揭示进程相关的信息.
- sysfs: 路径 /sys; 用于揭示 devices, drivers, buses 等信息; 严格遵循 one-value-per-file 规则.
- debugfs: 路径 /sys/kernel/debug/; 没有任何规则要求, 用户可以放入任何信息; 主要用于调试目的.
tmpfs
tmpfs 是一类文件系统的公共名字. 这类 FS 用作临时的文件存储, 但是数据是存在内存中, 而非持久化设备中.
Q1: 这些文件系统是否有自己的 superblock, inode, dentry 等数据结构.
Q2: 这些文件系统是否遵循 Linux 的 VFS 框架?
Reference