当前位置:首页>Linux>解密文件系统的基石:Linux虚拟文件系统三大核心对象

解密文件系统的基石:Linux虚拟文件系统三大核心对象

  • 2026-10-11 07:11:36
解密文件系统的基石:Linux虚拟文件系统三大核心对象

VFS架构概览

Linux VFS是一个抽象层,它为用户空间提供了统一的文件系统接口,同时屏蔽了底层不同文件系统(ext4、btrfs、NTFS等)的实现细节。

Plain Text复制代码

┌─────────────────────────────────────────────────────────────────────┐│                        用户空间(User Space)                        ││  ┌─────────────────────────────────────────────────────────────┐    ││  │  open()  read()  write()  close()  stat()  ...             │    ││  └─────────────────────────────────────────────────────────────┘    ││                              │                                      ││                              ▼                                      ││  ┌─────────────────────────────────────────────────────────────────┐││  │                      VFS 虚拟文件系统层                          │││  │  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐   │││  │  │ super_   │   │   inode  │   │  dentry  │   │   file   │   │││  │  │  block   │◄──│          │◄──│          │◄──│          │   │││  │  │(文件系统)│   │ (文件元数据)│   │ (目录项) │   │ (打开文件)│   │││  │  └──────────┘   └──────────┘   └──────────┘   └──────────┘   │││  └─────────────────────────────────────────────────────────────────┘││                              │                                      ││              ┌───────────────┼───────────────┐                      ││              ▼               ▼               ▼                      ││  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐        ││  │   ext4 文件系统  │ │   btrfs 文件系统 │ │   proc 文件系统  │        ││  └─────────────────┘ └─────────────────┘ └─────────────────┘        ││                         具体文件系统层                                │└─────────────────────────────────────────────────────────────────────┘

三大核心对象的协作关系

┌─────────────────────────────────────────────────────────────────────┐│                        super_block (文件系统)                       ││  ┌─────────────────────────────────────────────────────────────┐    ││  │ s_root → dentry (根目录)                                   │    ││  │ s_inodes → inode链表                                       │    ││  │ s_dentry_lru → dentry LRU缓存                              │    ││  │ s_op → super_operations                                    │    ││  └─────────────────────────────────────────────────────────────┘    │└─────────────────────────────────────────────────────────────────────┘                              │                              │ s_root                              ▼┌─────────────────────────────────────────────────────────────────────┐│                         dentry (目录项树)                          ││  ┌─────────────────────────────────────────────────────────────┐    ││  │ d_parent → 父目录dentry                                    │    ││  │ d_child → 兄弟dentry链表                                   │    ││  │ d_subdirs → 子目录dentry链表                               │    ││  │ d_inode → 关联的inode                                      │    ││  │ d_name → 目录项名称                                         │    ││  └─────────────────────────────────────────────────────────────┘    ││                         │                                           ││              ┌──────────┴──────────┐                                ││              ▼                     ▼                                ││    ┌─────────────────┐   ┌─────────────────┐                        ││    │   dentry (文件)  │   │   dentry (子目录)│                        ││    └─────────────────┘   └─────────────────┘                        │└─────────────────────────────────────────────────────────────────────┘                              │                              │ d_inode                              ▼┌─────────────────────────────────────────────────────────────────────┐│                         inode (文件元数据)                          ││  ┌─────────────────────────────────────────────────────────────┐    ││  │ i_ino → inode编号                                          │    ││  │ i_mode → 文件类型和权限                                     │    ││  │ i_size → 文件大小                                          │    ││  │ i_atime/mtime/ctime → 时间戳                               │    ││  │ i_nlink → 硬链接数                                         │    ││  │ i_op → inode_operations                                    │    ││  │ i_fop → file_operations                                    │    ││  │ i_dentry → 指向该inode的dentry链表                          │    ││  └─────────────────────────────────────────────────────────────┘    │└─────────────────────────────────────────────────────────────────────┘
关注'linux探究'微信公众号,获取更多Linux技术干货与版本更新资讯

最新文章

随机文章