1.Linux文件系统的三层抽象是什么?
硬盘实际上是由一些磁性盘片组成的计算机系统的一个设备。文件系统是对该设备的一种多层次的抽象。
第一层抽象:一个磁盘能够储存大量的数据,一个磁盘可以被划分成分区,每个分区可以看作是一个独立的磁盘。
第二层抽象:一个硬盘有一些磁性盘片组成。每个盘片的表面都被划分为很多同心圆,这些同心圆称作磁道,每个磁道又被进一步划分为扇区,每个扇区可以储存一定字节数的数据。扇区是磁盘上的基本储存单元。一个磁盘扇区编号的系统使得我们可以把磁盘视为一系列块的组合。
第三层抽象:文件系统可以用来储存文件内容,文件属性和目录Unix把磁盘块分成了3个部分来储存上述信息。
2.写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意。
超级块:文件系统的第一个块称为超级块。这个块存放文件系统本身的结构信息。
i-节点表:每个文件都有一些属性,如大小、文件所有者和最近修改时间等。这些性质被记录在i-节点的文件中。所有的i-节点都有相同的大小,并且i-节点表示这些结构的一个列表。文件系统中每个文件在该表中都有一个i-节点。
数据区:数据区用于保存文件内容
其中,超级块用来存储文件系统本身的信息。i-node节点表存放i-node节点,它存储了文件属性、所有者、权限等元数据信息数据区分块存储文件数据,它是不连续存储的,一个文件的内容可能散落在数据区内部。超级块是文件系统的第一个块。这个块存放文件系统结构信息,如每个区的大小,还记录这个磁盘块未使用空间信息。
我们使用man cat
命令,查看cat的相关信息。
以root身份登录linux后,用ls-al
查看文件的相关信息
inode的相关信息:
文件字节数
文件类型
文件权限
文件的User ID
文件的Group ID
文件在磁盘中的位置
文件的节点号
文件链接数
文件最后修改的时间
文件最后使用(读取或执行)的时间
文点自身最后改变的时间,如设置权限。
画出示意图:
具体关于超级块在之前的学习笔记中有较为详细的描述:https://www.cnblogs.com/ssssspm/p/16716966.html