cat userlist

cat userlist

Linux文件系统的三层抽象

硬盘实际上是由一些磁性盘片组成的计算机系统的一个设备。文件系统是对该设备的一种多层次的抽象。

  • 第一层抽象:一个磁盘能够储存大量的数据,一个磁盘可以被划分成分区,每个分区可以看作是一个独立的磁盘。
  • 第二层抽象:一个硬盘有一些磁性盘片组成。每个盘片的表面都被划分为很多同心圆,这些同心圆称作磁道,每个磁道又被进一步划分为扇区,每个扇区可以储存一定字节数的数据。扇区是磁盘上的基本储存单元。一个磁盘扇区编号的系统使得我们可以把磁盘视为一系列块的组合。
  • 第三层抽象:文件系统可以用来储存文件内容,文件属性和目录Unix把磁盘块分成了3个部分来储存上述信息:
    • 超级块:文件系统的第一个块称为超级块。这个块存放文件系统本身的结构信息。
    • i-节点表:每个文件都有一些属性,如大小、文件所有者和最近修改时间等。这些性质被记录在i-节点的文件中。所有的i-节点都有相同的大小,并且i-节点表示这些结构的一个列表。文件系统中每个文件在该表中都有一个i-节点。
    • 数据区:数据区用于保存文件内容。

Cat userlist的过程

cat userlist,表示读取userlist这个文件并显示
step1.在目录中寻找文件名
文件名存储在目录文件中,内核在目录文件中寻找包含字符串"userlist"的记录。userlist所在的记录包含编号为47的i-节点。

step2.定位i-节点并读取内容
内核在文件系统中的i-节点区域找到i-节点47。i-节点包含数据块编号的列表。

step3.访问存储文件内容的数据块
在step2之后,即知道了数据块的位置和在磁盘中的顺序,就可以通过不停的调用read函数,使内核不断将字节从磁盘复制到内核缓冲区。

ps:读取权限的控制:内核根据文件名找到i-节点号,再根据i-节点号找到i-节点。在i-节点中,找到文件的权限位和用户ID,从而判断该用户是否具有读取权限
image
image

posted @ 2022-10-23 14:46  池鱼12156  阅读(36)  评论(0)    收藏  举报