-
Linux文件系统的三层抽象是什么?
分别为用户层、虚拟文件系统层和设备驱动层。 -
写出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
文件的过程如下:- 用户层输入命令:
cat userlist
- 内核接收到命令后,通过文件操作层调用VFS层的相关函数。
- VFS层根据文件名找到对应的i-node。
- VFS层从i-node中获取数据块指针。
- 从数据块指针依次读取数据块内容并显示在终端上。
- 显示结果为:
abcdefghijklmnopqrstuvwxyz
- 用户层输入命令:
-
示意图:
+---------------------+ +---------------------+ | 用户层 | <---> | VFS层 | +---------------------+ +---------------------+ | cat命令 | | 读取i-node | +---------------------+ +---------------------+ | | 获取数据块指针 | +---------------------+ +---------------------+ | 显示文件内容 | 读取数据块 | | (abcdefghijklmnopqrstuvwxyz) | | +---------------------+ +---------------------+
-