任务目标
Linux文件系统的三层抽象是什么?
写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意
假设块大小为4k, userlist的大小不小于10k,自己假设大小
Linux文件系统的三层抽象是什么?
1.磁盘->分区
一个磁盘能够储存大量的数据,一个磁盘可以被划分成分区,每个分区可以看作是一个独立的磁盘。
2.分区->块数组
一个硬盘有一些磁性盘片组成。每个盘片的表面都被划分为很多同心圆,这些同心圆称作磁道,每个磁道又被进一步划分为扇区,每个扇区可以储存一定字节数的数据。扇区是磁盘上的基本储存单元。一个磁盘扇区编号的系统使得我们可以把磁盘视为一系列块的组合。
3.超级块 i-node 数据块
文件系统可以用来储存文件内容,文件属性和目录Unix把磁盘块分成了3个部分来储存上述信息:
超级块:文件系统的第一个块称为超级块。这个块存放文件系统本身的结构信息。
i-node:每个文件都有一些属性,如大小、文件所有者和最近修改时间等。这些性质被记录在i-节点的文件中。所有的i-节点都有相同的大小,并且i-节点表示这些结构的一个列表。文件系统中每个文件在该表中都有一个i-节点。
数据块:数据区用于保存文件内容。
写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意
1.Cat userlist的过程
- 打开,从目录找到userlist
- 从dentry结构体读出innod
- 从inode结构体读出i_block[]
- 按顺序组织i_block[]中的内容,输出到终端