实现面向SCI的文件系统接口
1. 常见文件系统操作
文件系统的操作涵盖多个方面,以下是一些常见的操作及其功能:
| 操作 | 功能 |
| — | — |
| open/create/close | 打开、创建或关闭文件 |
| link/remove | 创建或移除文件链接 |
| read/write | 从文件读取数据或向文件写入数据 |
| getattr/setattr | 获取或设置文件属性 |
| access | 检查文件的访问权限 |
| ioctl | 控制操作 |
| lookup | 将目录中的名称解析为vnode |
| mkdir/rmdir | 创建或移除目录 |
| mmap | 将文件映射到进程中 |
| getpage/putpage | 为内存映射文件读取或写入页面 |
这些操作的命名和语义在不同的vnode/vfs实现中可能会略有不同。例如,IRP MJ CREATE命令可以处理打开、创建和创建目录等操作。
2. 与虚拟内存系统的交互
大多数文件系统实现需要访问底层内核功能,如虚拟内存系统,特别是对于内存映射文件。VFS接口中的getpage/putpage操作并不能完全控制物理内存的分配,对于虚拟内存范围,可以指定更高级的操作。
以下是Linux中一些选定的虚拟内存操作:
| 操作 | 功能 |
| — | — |
| unmap | 从地址空间中取消映射一系列页面 |
| protect | 更改一系列页面的虚拟内存保护 |
超级会员免费看
订阅专栏 解锁全文
41

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



