Linux文件系统1---VFS的引入

1.引言

本文所述关于文件管理的系列文章主要是对陈莉君老师所讲述的文件系统管理知识讲座的整理。

Linux可以支持不同的文件系统,它源于unix文件系统,也是unix文件系统的一大特色。

2.虚拟文件系统的引入

图 内核所支持的文件系统

通过cat /proc/filesystems可以查看当前内核所运行的文件系统,文件系统不仅作为一种文件的管理机制,也可以作为其它的一种机制加入VFS中,如cgroup等

    

图 文件系统目录结构

Linux的文件是统一的,位于一颗目录树中,它与进程管理是一脉相承的理念。

图 VFS文件系统架构图

VFS为用户空间提供了统一的接口,不同的文件系统需要实现这些接口,对于设备文件,驱动程序中也要实现相应的接口,这体现了一种机制与分离的理念。

3.file_system_type结构体

图 file_system_type结构体

  • Linux内核采用VFS(Virtual Filesystem Switch)框架
  • 每个文件系统都需要在VFS中注册,即填充一个struct file_system_type结构
  • 此结构描述的是文件系统的名称以及一个指向对应VFS超级块读取例程的地址等信息

  

图 file_system_type的组织结构  

  • 内核采用链表组织每个注册的文件系统,链表头为file_systems

 4. 实例:打印file_system_type信息

时间: 2024-10-11 15:17:00

Linux文件系统1---VFS的引入的相关文章

Linux 虚拟文件系统(VFS)介绍

1. 通用文件模型 Linux内核支持装载不同的文件系统类型,不同的文件系统有各自管理文件的方式.Linux中标准的文件系统为Ext文件系统族,当然,开发者不能为他们使用的每种文件系统采用不同的文件存取方式,这与操作系统作为一种抽象机制背道而驰. 为支持各种文件系统,Linux内核在用户进程(或C标准库)和具体的文件系统之间引入了一个抽象层,该抽象层称之为"虚拟文件系统(VFS)". VFS一方面提供一种操作文件.目录及其他对象的统一方法,使用户进程不必知道文件系统的细节.另一方面,V

linux文件系统体系结构 和 虚拟文件系统(VFS)

图 1. Linux 文件系统组件的体系结构 用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C 库(glibc),它们为文件系统调用(打开.读取.写和关闭)提供用户接口.系统调用接口的作用就像是交换器,它将系统调用从用户空间发送到内核空间中的适当端点. VFS 是底层文件系统的主要接口.这个组件导出一组接口,然后将它们抽象到各个文件系统,各个文件系统的行为可能差异很大.有两个针对文件系统对象的缓存(inode 和 dentry).它们缓存最近使用过的文件系统对象. 每个文件系统实

Linux文件系统之inode与软硬连接

一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block).这种由多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,即连续八个 sector组成一个 block. 文

GlusterFS:虚拟文件系统(VFS)介绍

2012-10-27 12:05 1434人阅读 评论(0) 收藏 举报  分类: GlusterFS文件系统研究(13)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.概述 Linux虚拟文件系统是一个内核软件层,用来处理与UNIX标准文件系统相关的所有系统调用.其健壮性表现在能为各种文件系统提供一个通用的接口. Linux虚拟文件系统支持的文件系统可以划分为三种主要的类型: 1.磁盘文件系统 这些文件系统管理在本地磁盘分区中可用的磁盘空间或者其他可以起到磁盘作

十天学Linux内核之第五天---有关Linux文件系统实现的问题

有时间睡懒觉了,却还是五点多醒了,不过一直躺倒九点多才算起来,昨晚一直在弄飞凌的嵌入式开发板,有些问题没解决,自己电脑系统的问题,虽然Win10发布了,,但我还是好喜欢XP呀,好想回家用用家里的XP来玩玩这块板子,不知不觉也第五天了,感觉代码都有些模糊,连自己都不是很清楚了,担心现在分享起来比较困惑,各路大神多加批评呀,觉得渣渣的尽量指正出来,拉出来批评,今天还是来总结一下有关Linux文件系统的问题吧~ Linux的使用和用户空间程序的编程和文件系统有着密切的关系,文件系统的概念大家应该都有些

Linux文件系统详解(文件系统层次、分类、存储结构、存储介质、文件节点inode)

从操作系统的角度详解Linux文件系统层次.文件系统分类.文件系统的存储结构.不同存储介质的区别(RAM.ROM.Flash).存储节点inode. 本文参考:http://blog.chinaunix.net/uid-8698570-id-1763151.html http://www.iteye.com/topic/816268 http://soft.chinabyte.com/os/142/12315142.shtml http://www.ibm.com/developerworks/

linux文件系统相关资料

linux下文件系统通常是通过虚拟文件系统(VFS)蔽下层具体文件系统操作的差异,为上层的操作提供一个统一的接口.文件系统底层都是用系统IO缓存层提供的块读写接口,实现逻辑块到物理块的映射.作为应用程序底层的存储逻辑,通用文件系统的目的是提供目录/文件形式的逻辑到物理磁盘的映射.  文件系统本质上是磁盘块的逻辑组织方式. ext2文件系统使用组描述符,块位图,索引节点位图,索引节点表,数据区等组织磁盘空间,每个索引节点代表一个文件,存有该文件占用的磁盘块的位置.在Ext2中,目录是一种特殊的文件

linux文件系统软链接硬链接

引子 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统).ext3.ext4.ZFS和Reiserfs等等. 不论哪一种文件系统,总是需要存储数据.硬盘的最小存储单位是扇区,数据所存储的最小单位则不是扇区,因为用扇区来存储效率就太低了.一个扇区只有512字节,而磁头是一个扇区一个扇区地读取,也就是说,如果文件是10MB,那么为了读这个文件,磁头必须要进行读取20480次.这样效率是极其低下的. 逻辑块 为了提高效率,就有了逻辑块(Block)的概念,也可以叫做数据块

[转] Linux文件系统详解

从操作系统的角度详解Linux文件系统层次.文件系统分类.文件系统的存储结构.不同存储介质的区别(RAM.ROM.Flash).存储节点inode.本文参考: http://blog.chinaunix.net/uid-8698570-id-1763151.html http://www.iteye.com/topic/816268 http://soft.chinabyte.com/os/142/12315142.shtml http://www.ibm.com/developerworks/