虚拟文件系统概念

虚拟文件系统:为了支持各种本机文件系统,且在同时允许访问其它操作系统文件,Linux内核在用户进程(或者说C标准库)和文件系统之间引入了一个抽象层,也就是虚拟文件系统VFS

虚拟文件系统类型

1、基于磁盘的文件系统

ext2/3 FAT所有文件系统都使用面向块的介质,这里对底层块设备通信方法不感兴趣,内核中的驱动程序对此提供了统一的接口。从文件系统角度看,底层设备无非是存储块组成的一个列表,文件系统相当于对该列表实施一个适当的组织方案。

2、虚拟文件系统(一种伪文件系统)

proc文件系统就是虚拟文件系统,由内存创建,内核将一些关键的数据结构以文件的方式呈现在/proc目录下的特定文件中,相当于将不可视化的内核中的数据结构以可视化的方法呈现给内核开发者。

proc目录下的文件大小都是0,因为他们不存在于硬盘中,他只是一个接口。

先有proc后来出现了sys,对于sys文件系统和proc一样都是虚拟文件系统,不同点是sys可读可写,proc只可以读。

一句话描述虚拟文件系统:数据结构的可视化接口。

在内核中生成,

3、网络文件系统

网络文件系统是基于磁盘的文件系统和虚拟文件系统的折中,这种文件系统允许访问另一台计算机上的数据,该计算机通过网络连接到本地计算机。

sys文件系统详细总结

sys可以看成proc  devfs和devpty同类别的文件系统,该文件系统是虚拟的文件系统,可以更方便的对系统设备进行管理,它可以产生一个包含所有系统硬件层次视图,与提供进程和状态信息的proc文件系统十分类似。

sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件的层次关系,其顶级目录包括block,bus,drivers,class,power和firmware等.

sysfs提供一种机制,使得可以显式的描述内核对象、对象属性及对象间关系。sysfs有两组接口,一组针对内核,用于将设备映射到文件系统中,另一组针对用户程序,用于读取或操作这些设备。表2描述了内核中的sysfs要素及其在用户空间的表现:

sysfs在内核中的组成要素在用户空间的显示

内核对象(kobject)              目录

对象属性(attribute)            文件对

象关系(relationship)           链接(Symbolic Link)