文档详情

操作系统课程设计 文件系统接口.doc

发布:2017-11-25约6.49千字共25页下载文档
文本预览下载声明
目录 实验名称 - 1 - 模块整体功能介绍及主要目标 - 2 - 头文件的分析 - 4 - 数据结构的分析 - 4 - 函数的分析 - 7 - 1,namei()函数 - 7 - 2.Dir_namei - 10 - 3.Find_entry函数 - 11 - 5.sys_read() - 15 - 6.block_read()和block_wriet()函数 - 18 - sys_lseek()函数 - 21 - 9getblk()函数 - 24 - sys_mkdir()函数 - 25 - 其他函数 - 27 - 分析体会 - 27 - 参考文献 - 29 - 操作系统课程设计实验报告 实验名称 文件系统接口实现源代码分析 模块整体功能介绍及主要目标 第一部分是有关高速缓冲区的管理程序,主要实现了对硬盘等块备进行数据高速存取的函数。 第二部分代码描述了文件系统的低层通用函数,说用文件索引节点的管理。磁盘数据块的分配和释放以及文件名与i节点的转换算法, 第三部分程序是有关对文件中数据进读写操作,包括对字符设备,管道块读写文件中数据的访问, 第四部分的程序主要涉及文件的系统调用接口的实现,主要涉及文件打开,关闭。创建以及有关文件目录操作等的系统调用 文件系统对操作系统对设备的读写操作提供了一个中间层,上层应用程序只要调用上层的接口函数如readfile()函数,传入参数路径和文件名就可以了.对用户来说,他不用知道文件保存的具体的位置,是如何保存在硬件设备上的,用户只需要知道文件名和路径就可以了.其他的事由操作系统中的文件系统来完成.组用户的操作带来了方便也,使系统更安全. 引导块是计算机加电启动时可由ROM BIOS自动读入的执行代码和数据 超级块是用于存放盘设备上文件系统结构的信息,并说明各部分在大小 i节点图于说明i节点是否补使用,每个比特位代表一个i节点逻辑块位图用描述盘上的第个数据盘的使用情况,每个比特位代表盘上数据区中的一个数据据盘块。 逻辑块位图的第一个比特位代表盘上数据区中第一个数据盘块。当一个数据盘块被占用时,则逻辑块位图中相应比特位被置位 盘上的i节点部分存产着文件第中文件(或目录)的索引点,每个文件(或目录)都有一个i节点,每个i节点结构中存放着对应文件的相关信息,如文件宿主的id(uid),文件所属组id(gid),文件长度和访问修改时间等. i节点位图最低比特位和i节点都闲置不用,并在创建文件系统时将i节点0的比特位置位 文件中的数据是放在磁盘块的数据区中的,而一个文件名则通过对应的i节点与这些数据块相联系,这些盘块的号码就存放在i节点的逻辑块娄组i_Zone[]中 block_dev,c,char_dev.c,pipe.c和file_dev.c都是为随后的程序read_write.c服务的。read_write.c程序主要实现了系统调用write()和read()。这4程序可以看作是系统调用与块设备,字符设备,管道“设备”和文件系统“设备”的接口驱动程序。 头文件的分析 #include linux/config.h 内核配置头文件。定义键盘语言和硬盘类型(HD_TYPE)可选项。 #include linux/sched.h 调度程序头文件,定义了任务结构task_struct、初始任务0 的数据, 还有一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。 #include linux/kernel.h // 内核头文件。含有一些内核常用函数的原形定义。 #include asm/system.h // 系统头文件。定义了设置或修改描述符/中断门等的嵌入式汇编宏。 #include errno.h // 错误号头文件。包含系统中各种出错号。(Linus 从minix 中引进的)。 #include sys/stat.h // 文件状态头文件。含有文件或文件系统状态结构stat{}和常量。 在file_table.c 文件 struct file file_table[NR_FILE]; // 文件表数组(64 项)。 数据结构的分析 struct file { //文件结构 unsigned short f_mode; //文件操作模式 unsigned short f_flags; 文件打开和控制的标志 unsigned short f_count; 对应文件句柄(文件描述符)数 struct m_inode * f_inode; 指向对应i节点 off_t f_pos; 文件当前读写指针位置 }; struct d_inode { // i节点结构 unsigned short i_mode; //文件的类型
显示全部
相似文档