UNIX文件系统:VFS/Vnode架构解析
1. Sun VFS/Vnode架构概述
Sun VFS/Vnode架构是在Sun Microsystem的SunOS操作系统上开发的。该架构的出现源于对多文件系统类型支持的需求,其设计目标主要有以下四点:
- 明确划分文件系统独立层和文件系统依赖层,且两者接口需清晰定义。
- 支持多种文件系统,包括本地磁盘文件系统(如4.2BSD快速文件系统)、非UNIX文件系统(如MS - DOS)、无状态文件系统(如NFS)和有状态文件系统(如RFS)。
- 能够支持远程文件系统(如NFS和RFS)的服务器端。
- 文件系统操作应具有原子性,避免使用锁来涵盖多个操作。
为实现这些目标,该架构移除了对全局数据的需求,使接口可重入。例如,不再将文件系统相关数据存储在用户区(如u_base和u_count),错误处理也不再设置u_error,而是明确返回错误值。
2. 主要组件及接口
2.1 VFS和vnode接口
该架构在文件系统独立层和依赖层之间有两套接口:
- VFS接口通过一组vfsops访问,用于操作整个文件系统。
- vnode接口通过一组vnops(也称为vnodeops)访问,用于操作单个文件。
2.2 vnode结构
由于架构涵盖非UNIX和非磁盘文件系统,传统的内存inode已无法满足需求,因此引入了vnode。其结构包含以下字段:
| 字段 | 说明 |
| ---- | ---- |
| v_flag | 包含多种标志,如VROOT表示根目录,VN
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



