cat userlist(课上测试)

发布时间 2023-11-27 14:33:15作者: 20211116彭玮琪
  1. Linux文件系统的三层抽象是什么?
    分别为用户层、虚拟文件系统层和设备驱动层。

  2. 写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意

    假设文件大小为10KB,块大小为4KB。

    • 目录文件(Directory File):
      假设userlist文件位于/home/user目录下。该目录有一个对应的目录文件,其中包含如下目录项:

      文件名 inode号 文件大小 权限
      userlist 655770 27 rw-r--r--
    • i-node(Index Node):
      userlist文件对应的i-node信息如下:

      属性
      文件名 userlist
      文件大小 27
      目录项大小 2051
      块数量 8
      块大小 4096
      文件状态 普通文件
      创建时间 2023-11-27 14:22:58
      修改时间 2023-11-27 14:22:58
      访问时间 2023-11-27 14:23:05
      权限 rw-r--r--
    • 数据块(Data Block):
      根据i-node中的信息,userlist文件被分成8个数据块(每个数据块4KB)。

    • 显示userlist文件内容:
      使用cat命令读取userlist文件的过程如下:

      1. 用户层输入命令:cat userlist
      2. 内核接收到命令后,通过文件操作层调用VFS层的相关函数。
      3. VFS层根据文件名找到对应的i-node。
      4. VFS层从i-node中获取数据块指针。
      5. 从数据块指针依次读取数据块内容并显示在终端上。
      6. 显示结果为:
        abcdefghijklmnopqrstuvwxyz
        
    • 示意图:

      +---------------------+           +---------------------+
      |  用户层             | <---> |   VFS层             |
      +---------------------+           +---------------------+
      |  cat命令            |           | 读取i-node         |
      +---------------------+           +---------------------+
      |                                 | 获取数据块指针     |
      +---------------------+           +---------------------+
      | 显示文件内容                     | 读取数据块         |
      | (abcdefghijklmnopqrstuvwxyz)    |                    |
      +---------------------+           +---------------------+
      

      image