嵌入式linux文件系统
操作系统中最重要的莫过于“进程管理”和“文件系统”两大部分,而linux从一开始就把外部设备当成是“文件”处理。从某种意义来讲,凡是能够产生或接受消息的都是“文件”
以下是几种文件的含义
1、一种特定的文件格式,如FAE32,EXT2,EXT3等;
2、按特定的格式格式化了的存储介质,嵌入式系统中的安装卸载文件系统就是这个意思;
3、操作系统用来管理文件系统以及对文件进行操作机制的实现,“设备文件”就是一个典型的例子
文件系统的功能相当强大,强大也造成了文件系统体积的增加,在嵌入式系统中,文件系统只是一个简化版,只完成需要功能就行了。
虚拟文件系统
我们知道linux支持很多的文件系统,要实现支持很多的文件系统的功能,我们必须对不同的文件系统的操作和控制纳入一个统一的框架中,从而使用户可以通过一组标准的系统调用操作不同的文件系统,这就是虚拟文件系统(virtual filesystem switch)
VFS是物理文件系统与服务之间的接口层,对用户程序屏蔽掉不同文件系统的实现细节,仅给用户提供一个统一,抽象,虚拟的文件系统接口,它通过对每个文件系统的所有细节进行抽象,使得不同系统在linux的其他进程看来都是相同的
因此,有了VFS,用户可以不必关心具体的文件系统类型,仅通过一组标准的系统调用便可以实现所需要的操作,如read(),write(),lseek(),等,这个操作主要通过一个f_op结构指针指向具体的file_operatons结构体来实现系统调用的转换。