社区
王利涛的课程社区_NO_3
Linux系统编程01期:揭开文件系统的神秘面纱
帖子详情
虚拟文件系统:VFS
宅学部落-王利涛
2023-01-12 21:43:26
课时名称
课时知识点
虚拟文件系统:VFS
Linux系统中的虚拟文件系统VFS介绍
...全文
143
回复
打赏
收藏
虚拟文件系统:VFS
课时名称课时知识点虚拟文件系统:VFSLinux系统中的虚拟文件系统VFS介绍
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
虚拟
文件系统
(
VFS
)
虚拟
文件系统
(
VFS
)是由Sun microsystems公司在定义网络
文件系统
(NFS)时创造的。它是一种用于网络环境的分布式
文件系统
,是允许和操作系统使用不同的
文件系统
实现的接口。
Linux
VFS
虚拟
文件系统
资料收集
是我最近学习Linux
VFS
虚拟
文件系统
时收集的,感觉是学习
VFS
虚拟
文件系统
的好资料,特共享给和我相似的朋友们共同学习.
资料主要有三个:
1. 解析 Linux 中的
VFS
文件系统
机制.doc
比较好,写出了
文件系统
的初始化过程,我在网上找很多有关
VFS
虚拟
文件系统
的教程均没有写出这一过程,而这篇文章则写的很清楚且有图解.对没有看过此文档的兄弟强烈推荐!
2. Linux内核研究_我的
虚拟
文件系统
.doc
是一个实现的
虚拟
文件系统
.可以看看
3.
虚拟
文件系统
VFS
简介.doc
和第1个文件并用有很好我效果..可以互补...^_^希望对你有所帮助~!
C++模拟实现的一个
VFS
(
虚拟
文件系统
)
自己在操作系统课程设计时做的模拟实现
VFS
系统,供大家参考。(里面有报告和源代码,标准C++代码可以在Linux通过g++编译) 摘要:本文利用
虚拟
文件系统
(
VFS
)思想,建立一个统一的接口框架。并基于此接口实现了一个简单的
文件系统
。
php-
vfs
:
虚拟
文件系统
VFS
(
虚拟
文件系统
)
VFS
是使用流包装器API构建PHP
虚拟
文件系统
。 流向公开的方式与典型的file://或http://流向PHP的内置函数和关键字(例如fopen和require 。 此实现尝试遵循典型的流,包括触发警告和适当处理边缘情况。 可以按照您喜欢的任何方式安装它,但我建议使用 。 { " require " : { " adlawson/
vfs
" : " * " } } 文献资料 创建和安装
文件系统
后,您可以选择通过PHP的内置函数,
VFS
接口或另一个
文件系统
库提供的接口来操作
虚拟
文件系统
。 <?php use
Vfs
\ FileSystem ; use
Vfs
\ Node \ Directory ; use
Vfs
\ Node \ File ; // Create and mount the file system $
疯狂内核之——
虚拟
文件系统
目录 1
虚拟
文件系统
概述 5 1.1 通用文件模型 7 1.2
VFS
所处理的系统调用 9 2
虚拟
文件系统
架构 11 2.1
VFS
对象数据结构 11 2.1.1 超级块对象 11 2.1.2 索引节点对象 15 2.1.3 文件对象 18 2.1.4 目录项对象 22 2.2 把Linux中的
VFS
对象串联起来 24 2.2.1 与进程相关的文件 25 2.2.2 索引节点高速缓存 29 2.2.3 目录项高速缓存 30 2.2.4
VFS
对象的具体实现 32 2.3
文件系统
的注册与安装 38 2.3.1
文件系统
类型注册 38 2.3.2
文件系统
安装数据结构 41 2.3.3 安装普通
文件系统
52 2.3.4 分配超级块对象 58 2.3.5 安装根
文件系统
60 2.3.6 卸载
文件系统
65 2.4 路径名的查找 66 2.4.1 查找路径名的一般流程 67 2.4.2 父路径名查找 82 2.4.3 符号链接的查找 84 2.5
VFS
系统调用的实现 88 2.5.1 open()系统调用 88 2.5.2 read()和write()系统调用 96 2.5.3 close()系统调用 97 3 第二扩展
文件系统
99 3.1 Ext2磁盘数据结构 101 3.1.1 磁盘超级块 102 3.1.2 组描述符和位图 105 3.1.3 磁盘索引节点表 105 3.2
VFS
接口数据结构 110 3.2.1 Ext2 超级块对象 110 3.2.2 Ext2 的索引节点对象 121 3.2.3 创建Ext2
文件系统
124 3.2.4 Ext2的方法总结 126 3.3 Ext2索引节点分配 129 3.3.1 创建索引节点 130 3.3.2 删除索引节点 143 3.4 Ext2数据块分配 144 3.4.1 数据块寻址 145 3.4.2 文件的洞 147 3.4.3 分配数据块 148 4 页面高速缓存 160 4.1 页高速缓存数据结构 160 4.1.1 address_space对象 161 4.1.2 基树 164 4.2 高速缓存底层处理函数 166 4.2.1 查找页 166 4.2.2 增加页 168 4.2.3 删除页 173 4.3
文件系统
与高速缓存 175 4.3.1 缓冲头数据结构 175 4.3.2 分配块设备缓冲区页 178 4.3.3 释放块设备缓冲区页 184 4.4 在页高速缓存中搜索块 185 4.4.1 __find_get_block()函数 185 4.4.2 __getblk()函数 188 4.4.3 __bread()函数 190 4.5 把脏页写入磁盘 191 4.5.1 pdflush内核线程 192 4.5.2 搜索要刷新的脏页 193 4.5.3 回写陈旧的脏页 196 5 文件读写 199 5.1 系统调用
VFS
层的处理 200 5.2 第二扩展
文件系统
Ext2层的处理 201 5.2.1 Ext2的磁盘布局 202 5.2.2 Ext2的超级块对象 206 5.2.3 Ext2索引节点对象的创建 210 5.2.4 Ext2索引节点对象的读取 218 5.2.5 Ext2层读文件入口函数 225 5.3 页高速缓存层的处理 237 5.3.1 创建一个bio请求 238 5.3.2 得到文件的逻辑块号 244 5.3.3 普通文件的readpage方法 251 5.3.4 块设备文件的readpage方法 252 5.3.5 文件的预读 260 5.4 通用块层的处理 264 5.4.1 块设备的基础知识 265 5.4.2 通用块层相关数据结构 269 5.4.3 提交I/O传输请求 271 5.4.4 请求队列描述符 273 5.5 块设备I/O调度层的处理 281 5.5.1 块设备的初始化 284 5.5.2 建立块设备驱动环境 288 5.5.3 关联block_device结构 295 5.5.4 为设备建立请求队列 306 5.5.5 块设备I/O调度程序 311 5.5.6 真实的I/O调度层处理 321 5.6 块设备驱动层的处理 330 5.6.1 scsi总线驱动的初始化 330 5.6.2 scsi设备驱动体系架构 342 5.6.3 scsi块设备驱动层处理 347 5.6.4 scsi命令的执行 369 5.6.5 scsi命令的第一次转变 372 5.6.6 scsi命令的第二次转变 380 5.7 写文件 384 5.7.1 generic file_write函数 384 5.7.2 普通文件的prepare_write方法 386 5.7.3 块设备文件的prepare_write方法 387 5.7.4 将脏页写到磁盘 388 6 直接I/O与异步I/O 391 6.1 直接I/O 391 6.2 异步I/O 393 6.2.1 Linux 2.6中的异步I/O 394 6.2.2 异步I/O环境 394 6.2.3 提交异步I/O操作 395
王利涛的课程社区_NO_3
2
社区成员
185
社区内容
发帖
与我相关
我的任务
王利涛的课程社区_NO_3
复制链接
扫一扫
分享
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章