Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3760082
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2016-12-03 17:16:24

声明:本Linux文件系统博客,共分四节,是根据网上多个相关博客,以及自己的理解加上相关资料总结而成。(作者:lvyilong316

Linux 之所以能支持除了Ext2文件系统之外的各种文件系统,是因为Linux提供了一种统一的框架,就是所谓的虚拟文件系统转换(Virtual FilesystemSwitch),简称虚拟文件系统(VFS)。这样, 用户程序可以通过同一个文件系统界面,也就是同一组系统调用,能够对各种不同的文件系统以及文件进行操作。

1. Linux中支持几十种文件系统,它是怎么管理的呢,它都管理什么呢?

首先,VFS 只对挂载到文件系统种的文件系统进行管理,即它时按需管理的。

其次,因为它继承了Unix的设计思想,所以它也是对文件,目录项,索引节点和超级块进行管理。

2.VFS中四个主要对象

1超级块对象:描述已安装文件系统。

每个文件系统 都对应一个超级对象。文件系统的控制信息存储在超级块中。
2索引节点对象:描述一个文件。

每个文件 都有一个索引节点对象。每个索引节点对象都有一索引节点号---->正是用这个号来唯一的标识某个文件系统中的指定文件。
3目录项对象:描述一个目录项,是路径的组成部分。

VFS把每个目录看作一个由若干子目录和文件组成的常规文件。

例如:我们在查找路径名:/tmp/test时,内核为根目录“/”创建第一个目录项对象,为根目录下tmp项创建第二级目录项对象,为/tmp目录下的test项创建第三级目录项对象。 
4文件对象:描述由进程打开的文件。

说明:

1.因为 VFS 将目录作为一个文件来处理,所以不存在目录对象。虽然目录项不同于目录,但目录却和文件相同。

2.Linux中将文件的相关信息和文件本身区分开了。在Linux 中文件的相关信息,被存储在一个单独的数据结构中,该结构被称为索引节点。文件(目录)信息按照索引节点形式存储在单独的块中;控制信息被集中存储在磁盘的超级块中。

阅读(852) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~