论文-linux 文件系统分析及其系统调用发言报告.pdf

论文-linux 文件系统分析及其系统调用发言报告.pdf

ID:52887927

大小:176.33 KB

页数:21页

时间:2020-03-31

论文-linux 文件系统分析及其系统调用发言报告.pdf_第1页
论文-linux 文件系统分析及其系统调用发言报告.pdf_第2页
论文-linux 文件系统分析及其系统调用发言报告.pdf_第3页
论文-linux 文件系统分析及其系统调用发言报告.pdf_第4页
论文-linux 文件系统分析及其系统调用发言报告.pdf_第5页
资源描述:

《论文-linux 文件系统分析及其系统调用发言报告.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、linux文件系统分析及其系统调用发言报告第5组linux文件系统分析及其系统调用发言报告作者:黄苟第一部分一、文件系统上层结构整体介绍InodeCacheVFS抽象层DirectoryCacheEXT2具体文件系统层Buffers缓冲管理层Cache图一linux文件系统分层示意图Linux文件系统的最优秀的地方是对多种文件系统的支持。(这里的上层结构是指VFS系统和具体的文件系统,即除buffer管理系统以外的部分)为了实现这种特色,就必须有一个抽象的层次来统一描述各种文件系统,Linux中就用VFS来实现了这

2、个抽象层;同时,各种具体的文件系统又必须有一个和VFS交互的手段,在Linux系统中,这种交互的手段是通过n个数据结构中的union结构和函数指针来实现的,这些数据结构如下:一)、VFS和具体的文件系统的连接途径òFile_system_type中:structsuper_block*(*read_super)(structsuper_block*,void*,int)在mount一个文件卷时,VFS的do_mount函数会调用read_super函数,第1页linux文件系统分析及其系统调用发言报告第5组而rea

3、d_super将找到一个未被使用的read_blocks数组项,并调用相应file_system_type的read_super函数(以上均在fssuper.c文件中)。就ext2文件系统的read_super(函数名为:ext2_read_super,在fsext2super.c文件中)而言,它做了如下一些工作:首先它读入该文件卷的第一个逻辑块,该块含有相应文件卷的superblock结构,在相应VFSsuperblock项的u.ext2_sb结构中的s_sbh和s_es分别指向该缓冲区的头部和数据区。接下

4、来,该函数将该缓冲区中的一些数据复制或经计算复制到VFSsuperblock的u.ext2_sb结构中;在做完一些检验工作以后,该函数读入文件卷组描述符所在的块并将这些缓冲区头部的指针赋值给VFSsuperblock的u.ext2_sb.s_group_desc结构,并在最后读入该文件卷的根结点。òSuper_block中Union{…}u:该结构定义了对应各文件卷的结构,如上所述,它的很多数据均在具体类型文件系统的read_super函数中被赋值,同时,do_mount函数在read_super函数返回后,会记录

5、该文件卷安装到的结点,即对VFS中superblock的s_covered赋值。Super_operations结构:该结构中定义了对inode和superblock的各种相应操作函数的指针,ext2中其实例为ext2_sops(ext2super.c中定义);并在其ext2_read_super函数中对其赋值(sb→s_op=&ext2_sops);òinode中1)union{…}u:定义了对应具体文件卷上inode结点的信息。2)inode_operations:该结构定义了相应文件系统中各目录和文件进行各

6、类操作的函数指针,其第一次对应具体file_operations。3)dquot_operations:该结构定义了对相应文件系统中配额管理的各类操作的函数指针,不作分析。1)和2)将在各面作具体分析。òfile中file_operations:对相应文件系统中文件进行读、写及权限等管理的各种函数指针;在ext2中有两个实例,ext2_file_operations和ext2_dir_operations(ext2file.c和dir.c中定义);并分别在ext2_creat,ext2_mknod和ext2_mk

7、dir中被赋值给相应inode的i_op。第2页linux文件系统分析及其系统调用发言报告第5组二)、文件系统上层数据结构及其相关处理1、文件系统上层数据结构Linux中文件系统的数据结构均大致可以分为三个部分;第一部分是VFS中的数据结构;第二部分是具体文件系统中的数据结构;第三部分是buffer的数据结构。在李老师的讲义中已对它们作了比较透彻的阐述,所以这里不准备重述它们,只就我们对它们的代码分析作一些总结和补充。super_blofile_system_tvfsmounttckypemntlismnt_dev

8、read_supervfsmnt_devnamename.mnt_dirnamenext.mnt_flags.mnt_sbs_devs_blocksize......s_typenextnexts_flagss_coveredmru_vfsmnt...s_mountedInodenextvfsmnttail...Inodenext图2VFS的数据结构示意图ò

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。