cat userlist

发布时间 2023-11-27 14:22:56作者: 20211225高端

Linux文件系统的三层抽象
Linux文件系统的设计目的是用来存储文件和管理文件。Linux文件系统不仅包含文件中的数据,还有文件系统的结构,如文件、目录、软连接以及文件保护信息等。以下是Linux文件系统的三层抽象:

第一层抽象 — 从磁盘到分区

分区可以看作是磁盘,在逻辑上等价于2个512GB的磁盘与1TB磁盘的两个分区。
第二层抽象 — 从磁盘到块序列

块数组与字节数组之间的关系。
第三层抽象 — 块数组到三个区域的划分

超级块:包含文件系统信息,记录每个区域的大小以及未被使用的磁盘块的信息。
i-node:包含文件或目录的属性信息,构成一个i-node表。包含文件大小、类型、权限、用户ID、组ID等信息。
数据区:包含文件内容和目录数据,文件的内容保存在这个区域。磁盘上所有块的大小都相同。
Cat userlist的过程示意图
css
Copy code

  1. 打开,从目录找到userlist
  2. 从dentry结构体读出i-node
  3. 从inode结构体读出i_block[]
  4. 按顺序组织i_block[]中的内容,输出到终端