基础I/O--文件系统

二:文件系统(以ext4为例)

这里写图片描述
每行7列,代表的意思分别是:模式、硬链接数、文件所有者、组、大小、最后修改时间、文件名。
ll -i 查看文件inode
这里写图片描述

stat可以看到更详细的信息:
这里写图片描述

因为磁盘是很大的,而像现实生活中一样,我们可以将一个大的东西分为很多的小的区域,这样方便管理,因为你只要能用一种措施管理好一个分区,其他分区也可以采取同样的措施来管理好,这样磁盘上就有了区的概念,
这里写图片描述

其它区既可以采取同样的管理措施来管理,也可以采取不同的管理措施,最后只要能管理就行,这里就有了不同的文件系统,但我们现在只以ext4为例:
这里写图片描述
上图中所分的不同区域里面放的内容如下:
1.超级块:超级块用于存储文件系统全局的配置参数(譬如:数据块大小,总的块数和inode数)和动态信息(譬如:当前空闲块数和inode数)
2.inode位图:Inode位图用于描述该块组所管理的inode的分配状态。我们知道inode是用于描述文件的元数据,每个inode对应文件系统中唯一的一个号,如果inode位图中相应位置位(置1),那么代表该inode已经分配出去;否则可以使用。
3.数据块位图:块位图用于描述该块组所管理的块的分配状态。如果某个块对应的位未置位,那么代表该块未分配,可以用于存储数据;否则,代表该块已经用于存储数据或者该块不能够使用(譬如该块物理上不存在)
4.i节点表:存放文件属性,如文件大小、所有者、最近修改时间等。
5.数据块:存放文件内容。

注:

目录文件:数据区放的是这个目录底下文件的文件名和该文件的inode的映射。

创建一个 新文件系统都需要做什么?

1.存储属性:根据inode位图找到空闲Inode,将属性信息保存在inode表中
2.存储数据:根据I数据块位图找到空闲的数据块,将数据保存在数据块中

根据文件名操作系统是怎么读取文件的?

1.在目录文件中找到文件名与inode的映射关系,拿到对应inode,在inode表中找到编号对应的inode,里面存放的就是文件的属性信息(在那个数据块放着也属于属性信息)

猜你喜欢

转载自blog.csdn.net/virgofarm/article/details/80282571