doc(fs): Add VFS structure hierachy image

pull/16/head
Shawlley 2 years ago
parent 820f42afa3
commit 8b68b8f637
No known key found for this signature in database
GPG Key ID: F17F4787E3DA0606

@ -321,6 +321,9 @@ PKE文件系统架构如下图所示图中的RAM DISK在文件系统中的地
VFS对具体的文件系统进行了抽象构建出一个通用的文件系统模型。这个抽象的文件系统模型由几种VFS层的抽象数据类型组成下面分别介绍VFS中的这些抽象数据类型。
VFS的各类数据结构的基本层级关系如下图所示。
![VFS Structure Hierachy](./pictures/lab4.vfs_sturcture_hierachy.png)
* *vinode*
VFS对具体文件系统中的inode进行了抽象构建出一个通用的vinode对象。vinode对象包含操作系统操作一个文件或目录所需要的全部信息对文件的各种操作都是围绕着vinode来进行的。由此可见vinode是文件系统中文件访问和操作的核心对象。在PKE中为了与RFS存储在“磁盘”上的inode进行区分我们将VFS层的抽象inode对象命名为vinode而实际存储在磁盘上的inode则被称为disk inode 简写为dinode。除了起到区分作用该名称同时强调了vinode对象是仅存在于内存中的这一事实。vinode会在一个文件被打开时创建在不被任何dentry见下文dentry引用时释放。另外RFS对应的vinode都会被存储在一个哈希链表中vinode_hash_table。设置该表的目的主要是为了避免同一个文件被多次打开时可能产生多个与之对应的vinode的情况出现。因为多个vinode在回写到磁盘时可能发生数据丢失后写入的vinode将先写入的vinode覆盖。vinode的结构如下见kernel/vfs.h

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Loading…
Cancel
Save