欢迎来到天天文库
浏览记录
ID:47535477
大小:544.00 KB
页数:13页
时间:2020-01-13
《操作系统大作业-ufs文件系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统课程设计一个用户级文件系统的设计目录1、课程设计的主要目的-------------------------------------------32、相关的技术背景-----------------------------------------------32.1.文件系统简介--------------------------------------------32.2.FUSE简介-----------------------------------------------32.3.解压FUSE---------------------
2、--------------------------42.4.编译并安装FUSE-----------------------------------------53、主要思想和技术路线-------------------------------------------53.1.数据结构定义--------------------------------------------53.2.主要函数定义--------------------------------------------53.2.1.u_fs函数-------------------
3、------------------------63.2.2.base函数-------------------------------------------84、测试结果-----------------------------------------------------94.1.创建文件系统-------------------------------------------94.2.文件夹测试--------------------------------------------10134.3.文件测试------------------
4、----------------------------114.4.测试格式化功能----------------------------------------124.5.卸载文件系统------------------------------------------125、源代码的目录结构及存放位置----------------------------------136、运行环境----------------------------------------------------131课程设计的主要目的更加深入地理解文件系统的原理和设计,了解
5、在linux平台下的编程,加强学生动手能力,丰富代码经验。实现两层目录系统,有以下的要求和限制:1.根目录可以包含子目录和普通文件2.子目录只能包含普通文件,不能包括其他子目录3.所有文件都能可读写(改变模式0666),忽略权限4.许多文件属性如创建和修改时间不需要准确地储存,5.文件不能被截断6.目录看成是文件2.相关的技术背景2.1文件系统13文件系统是一种用来存储和组织计算机文件、目录及其包含的数据的方法,它使文件、目录以及数据的查找和访问得到简化。文件系统能提供丰富的扩展能力。它可以编写成底层文件系统的一个封装程序,从而对其中的数据进行管理,
6、并提供一个增强的、具有丰富特性的文件系统。2.2FUSE简介FUSE是linux平台下使用用户空间的文件系统。我们不需要了解linux内核模块的编程知识,只要利用FUSE提供的文件系统框架,就可以创建自己的功能完备的文件系统。FUSE主要是由以下的三部分构成:l内核模块FUSEl用户空间库libfuselmount/umount程序fusermount在FUSE中创建一个文件系统,先安装一个FUSE内核模块,然后使用FUSE库和API。用户空间进程在执行操作文件的系统调用的时候,在内核空间,VFS就会调用各文件系统定义的对应操作函数。FUSE内核模块
7、中被定义的操作函数把和它对应的请求送到实现文件系统的用户空间进程(FUSE文件系统,也就是后台程序),并等待回应。FUSE内核模块和FUSE文件系统间的通信是通过设备文件/dev/fuse进行的。FUSE文件系统把定义的FUSE操作函数群的地址登录到fuse_operations结构体中,并通过把fuse_operations的地址作为参数,调fuse_main()函数以下的图指出在example/hello的例子中,文件系统调用的路径。1.打开设备文件/dev/fuse2.挂载FUSE文件系统131.做成FUSE文件系统句柄2.登录FUSE操作函数
8、到FUSE文件系统句柄中3.登录信号处理器4.执行事件循环A)从设备文件/dev/fuse中读取来自内核模块
此文档下载收益归作者所有