26. 虚拟文件系统:建立基于链式分配的文件系统。(2-3人) 4分  首先分配一定容量的内存,建立虚拟磁盘;  在该磁盘上建立基于链式分配的文件系统;  为该文件系统设计相应的数据结构来管理目录、虚拟磁盘的空闲空间、已分配空间等。  提供文件的创建、删除、移位、改名等功能。  提供良好的界面,可以显示文件系统的状态和空间的使用情况;  提供磁盘转储功能,可将虚拟文件系统存入一个磁盘文件,还可从磁盘文件读入内存;
2022-11-09 22:01:36 18KB 虚拟 文件
1
是我最近学习Linux VFS 虚拟文件系统时收集的,感觉是学习VFS 虚拟文件系统的好资料,特共享给和我相似的朋友们共同学习.
资料主要有三个:
1. 解析 Linux 中的 VFS 文件系统机制.doc
比较好,写出了文件系统的初始化过程,我在网上找很多有关VFS虚拟文件系统的教程均没有写出这一过程,而这篇文章则写的很清楚且有图解.对没有看过此文档的兄弟强烈推荐!
2. Linux内核研究_我的虚拟文件系统.doc
是一个实现的虚拟文件系统.可以看看
3. 虚拟文件系统VFS简介.doc
和第1个文件并用有很好我效果..可以互补...^_^希望对你有所帮助~!
2022-05-05 10:30:48 75KB linux VFS 文件系统 虚拟文件系统
1
目录 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
2021-12-29 22:29:58 5.05MB Linux 内核 操作系统
1
虚拟文件系统(VFS)是由Sun microsystems公司在定义网络文件系统(NFS)时创造的。它是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口。
2021-11-25 09:06:14 35KB 虚拟文件系统 Virtual File Systems
1
自己在操作系统课程设计时做的模拟实现VFS系统,供大家参考。(里面有报告和源代码,标准C++代码可以在Linux通过g++编译) 摘要:本文利用虚拟文件系统(VFS)思想,建立一个统一的接口框架。并基于此接口实现了一个简单的文件系统。
2021-11-17 20:11:27 309KB C++ VFS Linux 操作系统
1
对Linux文件系统用C语言进行模拟,在Windows 下建立自己的小型二级文件系统,并在自已建立的文件系统之上进行一系列的操作,包括文件系统的建立,对索引结点和目录文件的操作,目录的安全性设置,目录的检索以及文件的共享等。
2021-11-17 16:51:55 7KB VFS
1
Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1
2021-11-13 16:22:07 1.45MB linux 虚拟文件系统
1
Linux内核分析值虚拟文件系统,关于Linux虚拟文件系统的内核源代码解析和原理分析
2021-09-18 12:59:45 77KB Linux内核 虚拟文件系统
1
操作系统课设——虚拟文件系统.txt
2021-06-16 18:00:54 15KB c++
1
cd 目录名(路径名) 切换当前目录到指定目录 mkdir 目录名 在当前目录创建新目录 rmdir 目录名 在当前目录删除指定目录 create 文件名 在当前目录下创建指定文件 rm 文件名 在当前目录下删除指定文件 open 文件名 在当前目录下打开指定文件 ls 显示当前目录下的目录和文件 write 在打开文件状态下,写该文件 read 在打开文件状态下,读取该文件 close 在打开文件状态下,读取该文件 exit 退出系统 使用C语言编写程序,模拟一个简单的文件系统,要求如下: (1) 文件系统的组织结构参考ext2文件系统 (2) 创建一个“disk.os”文件,大小为4MB,用该文件模拟外存。 (3) 最后应生成一个可执行文件“myfs”,在shell中运行后可模拟实现以下命令: a) ls:显示文件 b) create:创建文件 c) delete:删除文件 d) move:移动文件 e) shutdown:关闭系统 (4) 启动系统时打印出系统的详细信息 (5) 假设每个文件的大小是用户创建时指定的,即空间分配采用与分配策略,文件大小应有上限(如6KB) (6) 该实验必须在Linux系统下进行
2021-05-31 09:10:09 27KB c语言 文件系统 Linux 代码
1