linux 下几个奇奇怪怪的文件系统

    使用 Linux 很长时间了,对于 df 命令显示出来的几个"生面孔"一直都很疑惑,今天把这几个好好研究了一下,写来和大家分享.个人资历赏浅,不对之处还请批评指正. ----Jerry

tmpfs

    tmpfs 是 linux 内核维持的虚拟文件系统.最早是在 SunOS 上实现的.最初被设计用于一些短期生存的文件的存储和访问.

    tmpfs 是一个基于内存的虚拟内存子系统.它使用操作系统页缓存存储文件数据,而不是像 'RAM Disk'一样要侦测物理内存.它的读写和访问对象就是内核维持的内存,与直接读取物理内存没有什么不同.tmpfs 可以直接挂载和释放空间作为其他的用途.

    那么我们为什么要设计 tmpfs 呢?要从 Linux 的文件系统解构分析.

    ext3 文件系统主要储存两类信息,一个是数据文件的权限和属性,另一个是数据文件内容.即 linux 系统下的 inode 和 block.一些对文件系统的操作需要频繁更新文件的属性和控制等信息.由于硬盘的 I/O 需要一定的时延,这就造成了资源的浪费.然而基于内存的文件系统克服了这个缺点.它免去了频繁读写硬盘的操作,而是直接操作内存.

    tmpfs 不同于 RAM Disk.RAM Disk 使用内存的一部分来模拟硬盘,相同的文件数据分别存在于 RAM Disk 和 内核.两处的数据分别维护,要进行从内核到 RAM Disk 的数据映射来更新数据文件.

    而 tmpfs 是有内核直接维持的虚拟空间,它提供 RAM Disk 一样快的读写速度,而且只单一的内存到内存的访问.

-----------------------------------------------------------------------------------------------------------------------------------------------


devtmpfs

    对于 devtmpfs,从名字大概就可以猜出一二.在内核的编译帮助里,有这样一段解释:

    This creates a tmpfs/ramfs filesystem instance early at bootup. In this filesystem, the kernel driver core maintains device nodes with their default names and permissions for all registered devices with an assigned major/minor number.It provides a fully functional /dev directory, where usually udev runs on top, managing permissions and adding meaningful symlinks.In very limited environments, it may provide a sufficient functional /dev without any further help. It also allows simple rescue systems, and reliably handles dynamic major/minor numbers.

    在内核初始化的时候,它让内核创建一个 tmpfs(临时的文件系统),用来创建各设备节点.当内核启动并挂载 root 文件系统之后,它就被挂载到 /dev 目录下.


-----------------------------------------------------------------------------------------------------------------------------------------------

rootfs

    所谓 rootfs,就是 root filesystem 的简称.rootfs 就是 linux 系统的组织架构以及各种特定的文件.它规定哪个目录存放哪些文件.简单点说,rootfs 就是 Linux 下文件和目录的集合.关于 Linux 下的目录,可以参看 FHS(Filesystem Hierarchy Standard).


参考资料

http://www.solarisinternals.com/si/reading/tmpfs.pdf

http://lwn.net/Articles/330985/

http://www.crifan.com/what_is_root_filesystem/

你可能感兴趣的:(linux,文件系统,tmpfs,rootfs,devtmpfs)