Linux文件系统的三层抽象是什么?
-
一、磁盘->分区
-
二、分区->块数组
-
三、超级块、i-node、数据块
- 超级块,文件系统中第一个块被称为超级块。这个块存放文件系统本身的结构信息。比如,超级块记录了每个区域的大小,超级块也存放未被使用的磁盘块的信息。
I-切点表。
- 超级块的下一个部分就是i-节点表。每个i-节点就是一个对应一个文件/目录的结构,这个结构它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号
数据区。
- 文件系统的第3个部分是数据区。文件的内容保存在这个区域。磁盘上所有块的大小都一样。如果文件包含了超过一个块的内容,则文件内容会存放在多个磁盘块中。一个较大的文件很容易分布上千个独产的磁盘块中。
写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意,假设块大小为4k, userlist的大小不小于10k,自己假设大小
- 打开,从目录找到userlist
- 从dentry结构体读出innod
- 从inode结构体读出i_block[]
- 按顺序组织i_block[]中的内容,输出到终端
- 超级块用来存储文件系统本身的信息
- i-node节点表存放i-node节点,存储文件属性、所有者、权限等元数据信息
- 数据区分块存储文件数据,它是不连续存储的,一个文件的内容可能散落在数据区内部
![]()
![]()
posted @
2022-10-23 17:03
20201224吴卓航
阅读(
15)
评论()
收藏
举报