您当前的位置:首页>论文资料>Linux虚拟文件系统原理

Linux虚拟文件系统原理

资料类别:论文资料

文档格式:PDF电子版

文件大小:109.77 KB

资料语言:中文

更新时间:2024-12-20 08:29:01



推荐标签:

内容简介

Linux虚拟文件系统原理 学术论坛
Linux虚拟文件系统原理
侯旗陈慈发艾伟
(三峡大学计算机信息学院湖北宜昌443002)
款事技用
摘要:分析了Linux虚拟文件系统如何实现把各种不同物理文件系统转换为对Linux内核和进程具有统一接口的过程,用枢图的形式清地勾勘出其中涉及到的数据结构之间的联系
关键调:Linux虚拟文件系统inodenodedentry 中图分类号:TP313
文献标识码:A
文章编号:1007-9416(2011)09-0186-0
随着嵌入式技术的发展,由于Linux众多优势,越来越多的嵌入式设备采用Linux操作系统。Linux支持的物理文件系统具有不同的组织结构和处理方式。为了兼容支持不同的文件系统,Linux设计了在系统启动时由系统在内存中创建文件系统,即虚拟文件系统,以对不同的物理文件系统的所有特性进行抽象,屏蔽各种文件系统的差别,向Linux内核和进程提供了统一的文件系统接口,实现对不同文件系统的支持。理解Linux虚拟文件系统机制对于学习 Linux系统起着重要的作用。在这个背录下,本文对Linux虚拟文件
系统原理作了比较详尽的分析。 1、LinuxVFS基本原理
Linux以EXT2作为基本的文件系统,组成VFS的超级块、索引节点、目录项等数据结构,兼容于各种文件系统的相应数据结构,从而实现对多种文件系统的透明调用。
Linux所支持的文件系统的-一般结构,Linux继承了UINX,把文件名和文件控制信息分开管理。一-个Linux所支持的物理文件系统,使用的块设备上的一个独立的逻辑分区可大致分为:引导块、超级块,inode块,data块等四部分
LinuxVFS采用超级块(super_block)和索引节点(inode)来描述文件系统,这里的super_block和inode不同于物理文件系统中的 super_block和inode数据结构:VFSsuper_block是VFS把不同文件系统中的整体组织和结构信息进行轴象后形成的兼顾不同文件系统的统一的超级块结构。在安装文件系统时,由系统在内存中建立,其内容主要由文件系统的超级块数据来填充。inode则是在系统打开文件时,由系统在内存动态建立,其内容主要由文件系统的inode 节点的数据来填充。
LinuxVFS除了没有储存文件内容的数据块外,文件系统的结构基本相似与物理文件系统,
Linux进程通过VFS中的相应的超级块和索引节点中的信息,
访间目的磁盘文件系统中文件。 2、LinuxVFS的实现
为了区分间了文件系统中的inode,这里把VFS中的inode称为 vnode
Linux系统支持文件系统目录树机制,根据路径名,如/home/ xyz/work/test.c,就可以在磁盘.上找到文件test.c的目录项和索引!节点。其中,目录/、home.xyz、work以及普通文件test.c都对应-个目录项对象。目录项在磁盘文件系统中的数据结构是dir_entry, VFS在遍历路径名的过程中将其解析成内存目录项对象(dentry)和vnode
vinode与某个文件的对应关系是通过设备号i_dev与inode号 i_ino建立的,它们唯一地指定了某个设备上的一个文件或目录。 vnode是设备上的文件或目录的inode在内存中的统一对应结构,并且在u中给出了不同文件系统特有的信息,即各种文件系统的inode 在内存中的映像。
如前所述,Linux继承了UINX,把文件名和文件控制信息分开管理,由目录项(dir_entry)管理文件名,索引节点(inode)管理文件控制信息,并且通过dir_entry结构中的d_inode域指向文件的inode 节点,建立与文件索引节点的联系,文件的索引节点结构体(inode)
186
防数据
包含了关于文件的组织信息和管理信息,根据其中的运info查找存储文件内容的数据块,根据i_op指向的inode_operations结构,通过其中的指针函数调用各自的inode操作函数。
系统进程使用文件由表示进程当前打开的所有文件的数据结构files_struct,建立进程与文件系统关系。指针fd和fd_array都指向打开文件对象数组。进程调用文件操作函数,依据文件路径打开文件,文件操作函数返回一整数,即文件描述符,例如intopen(constchar*pathname,intflages)"以后,进程便用文件描述符来表示一个打开的文件,该整数文件描述符就是files_struct中ile数组fd 的下标。
图1描述了进程使用文件时用到的VFS关键数据结构的有机联系,数据结构的框图列出了主要数据成员。
dentry结构描述的是逻辑意义上的文件,记录的是其逻辑上的属性。只要是有效的dentry结构,则其指针d_inode必定指向一个 inode结构。而inode结构inode结构所代表的是物理意义上的文件,记录的是其物理上的属性。一个inode结构可能对应着不止一个 dentry结构,因为一个物理意义上的文件由于可以被连接(link)其他路径名。
所以,在inode结构中有个队列i_dentry,凡是代表着这个文件的说有目录项(普通文件也是目录文件的一种)都是通过dentry结构中的d_alias挂人相应的inode结构中的i_dentry队列。
ueck
fiules.struct daay
Renfa op
fd数组 tao
file
f
mo

dentry dnme nos AsR arent
dalias pode
8
entry meunt mmap
图1VFS中主要数据结构关系图
.3、结语
文章从数据结构的角度出发,对Linux虑文件系统的实现技术作了简要的分析,探究Linux虚拟文件系统原理,可以帮助我们更好
地进行系统软件设计和开发Linux驱动程序。参考文献
[1]毛德操,Linux内核源代码情景分析(上)[M].杭州:浙江大学出版社,2009:428430
[2]韩超等.嵌入式1inux上的C语言编程实践[M].北京:电子工业出版社,2009:163-164.
上一章:近邻半监督聚类算法的MATLAB实现 下一章:基于应用程序层的军事仿真系统安全技术研究

相关文章

Linux虚拟内存管理 Linux系统下DNS服务器的架设 化工原理实验及虚拟仿真 双语 基于ARM和Linux的超声导波管道检测系统 Linux在嵌入式操作系统中的应用 GB/T 37731-2019 Linux桌面操作系统测试方法 T/TSIA 006-2023 自助设备Linux操作系统通用规范 Linux 操作系统上安装 Apache 服务器的技术解析