【文档说明】第10章-操作系统-LINUX文件系统方案.ppt,共(43)页,866.500 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-55029.html
以下为本文档部分文字说明:
第10章LINUX文件系统10.1LINUX文件系统的特点与文件类别10.2LINUX的虚拟文件系统10.3文件系统的注册和挂装10.4进程与文件系统的联系10.5ext2文件系统10.6块设备启动10.7字符设备启动本章小结习题10.1L
INUX文件系统的特点与文件类别10.1.1特点从用户的角度看,LINUX文件系统具有如图10.1所示的树形层次结构:在图中,根目录root之下有dev设备子目录,bin实用程序子目录,lib库文件子目录,tmp临时文件子目录,usr通用子目录等。图10.1LINUX常用用户命令操作系统核心程
序设备子目录库文件子目录存放配置文件超级用户子目录存放系统管理程序binbootdevetchomelibmediamntprocrootsbinsystmpusr用户文件主目录存放与设备有关的系统信息bindocetcinclude
liblocalZhangliu路径名确定一个文件在文件系统中的位置。一个完整的路径名由代表根目录的斜杠开始,到所指定的文件为止。例如在图10.1中,“/usr/bin/man”确定了文件man在文件系统中的位置。(绝对路径)路径名也可从正在执行进程的当前目
录开始指定,例如,若在图10.1中的当前目录是zhang的话,路径名a.txt与/home/zhang/a.txt具有相同的效果。(相对路径)LINUX文件系统特点:·树形结构·文件是无结构的字符流式文件。·文件可以动态地增长或减少。·文件数据可由文件拥有者设置相应的访问权限而受到
保护。·外部设备,例如终端用磁带、磁盘设备、键盘等都被看作文件。在文件系统中,设备文件占据着文件系统目录结构中相应的位置,用户程序按与存取其他文件时所使用的系统调用和语法来读、写设备文件。用户程序既没有必要知道设
备的内部特性,也不必在更换或增加设备之后修改自己。10.1.2文件类型6种:1.普通文件:存储用户和系统的有关数据和程序的文件。它是无结构、无记录概念的字符流式文件。2.目录文件是由文件系统中的各个目录所形成的文
件。在形式上同普通文件一样,由系统将其解释成目录。在LINUX系统中,一个目录文件由多个目录项组成,而每个目录项则由文件名及指示相应的文件索引节点(inode)的标识符id组成。普通文件和目录文件都是无结构、无记录概
念的字符流式文件。3.设备文件与普通文件和目录文件不同,它除了在目录文件和文件索引节点表中占据相应的位置外,并不占有实际的物理存储块。对设备文件的读、写操作实际上为对设备的操作,而对设备文件的保护也将变成对设备的保护。例如:#cp/dev/tty1terminalread把在第一个终端上
敲进的字符(设备文件/dev/tty1是用户终端1)读入,并把它们复制到文件terminalread上。4.有名管道(FIFO)5.软链接6.UNIX域套接字10.2LINUX虚拟文件系统10.2.1虚拟文件系统VFS框架LINUX内核使用虚拟文件系统VFS(VirtualFileSwi
tch)。给用户提供文件系统接口,使用多个不同的文件系统。VFS提供一个抽象基类,由这个基类派生的子类支持具体的文件系统。支持的文件系统有:a.基于磁盘的文件系统:ext2,ext3,reiserfs,JFS,XFS等;UNIXSYSTEMV的文件系统;微软的MS-DOS,vfat及ntf
s;ISO9660光盘文件系统等。b.基于网络的文件系统,如NFS,SMB,OCFS等。c.特殊的文件系统,如proc,sysfs。它们并不管理真正的磁盘空间,而是通过它们访问内核数据。10.2.2LINUX虚拟文件系统的数据结构组成:1.超级块super-block:
存放已挂装文件系统的有关信息2.索引节点inode:一个具体文件的信息3.文件file:存放打开文件与进程之间进行交互的有关信息4.目录项dentry:保存目录项与相应文件进行链接的信息1.VFS的超级块super-block每个文
件系统分配一个超级块,用双向循环链组成一个链表。主要成员:略P250超级块操作:structsuper-operations描述,地址存放在s_op中。每个具体的文件系统,都要提供超级块的具体实现。以实现文件的挂装,卸载,读写inode等。2.索引节点inode存放文件系统处理
所需要的所有信息。索引节点操作:inode-operation描述。3.文件file描述的是进程和一个打开文件交互的过程。当一个文件被打开时创建file结构。4.目录项dentry当目录读入内存,VFS就把它转换为基于dentry的一个目录项对象。目录项对象将每个目录与其对应的索引节点相联
系。10.4进程与文件系统的联系从系统内部的角度来说,需要有相应的数据结构来记录和控制打开文件的用户进程以及记录和控制那些共享同一文件的用户进程。为此LINUX系统设置了用户打开文件表和系统打开文件表。10
.4.1系统打开文件表访问文件之前,进程必须打开文件,open()返回一个文件描述符,进程用该描述符调用read和write。主要用来指明打开同一文件的不同进程和不同进程所使用的不同打开路径,以及这些不同进程和不同打开路径所对应的读写指针。
文件file结构10.4.2用户打开文件表使用用户打开文件表,一个进程可同时打开多个文件。可打开的文件表项files_struct中含有打开文件的描述符fd,共享该表的进程数目count等。10.4.3进
程的当前目录和根目录当前目录根目录10.5ext2文件系统ext2文件系统是最经典的文件系统,是一个可扩展的功能较强的文件系统。ext2文件系统中的文件信息都保存在数据块中。对同一个ext2文件系统而言,所有数据块的大小都
是一样的,例如4096字节。但是,不同的ext2文件系统中数据块的大小可以不同。ext2文件系统将逻辑块划分成块组,每个块组重复保存着一些有关整个文件系统的关键信息及实际文件和目录的数据块。引导块块组0块组1………块组n超级块组描述符数据块位图索引节点位图索引节点表数据块系统引
导块总是介质上的第一个数据块,只有根文件系统才有引导程序放在这里,其余一般文件系统都不使用引导块。超级块中包含有文件系统本身的大小和形式的基本信息,系统管理员可以利用这些信息使用和维护文件系统。每个块组都有一个超级块。10.5
.2ext2文件系统主要的磁盘数据结构1.磁盘超级块ext2_super_block超级块中包含有文件系统本身的大小和形式的基本信息,系统管理员可以利用这些信息使用和维护文件系统。每个块组都一个超级块。一般情况下
,当安装文件系统时,系统只读取数据块组0中的超级块,将其放入内存,直至该文件系统被卸载。超级块中包含以下内容:◆块数,用于安装时确认是ext2文件系统的超级块。◆修订级别,这是文件系统的主版本号和次版本号
。◆安装计数和最大安装数,系统用来决定文件系统是否应该全面地进行检查。◆块组号码,包含此超级块的数据块组的号码。◆数据块大小,文件系统创建后数据块的大小就固定了,一般为1024、2048或4096个字节。◆每组数据
块的个数,即块组中数据块的个数,文件系统创建后它就固定了。◆空闲块,文件系统中空闲块的个数。◆空闲索引节点,文件系统中空闲索引节点的数目。◆第一个索引节点,文件系统中第一个索引节点的号码。在ext2根
文件系统中,第一个索引节点是根目录(/)的入口。2.块组描述符(BlockGroupDescriptors)每个块组有描述它的数据结构,即块组描述结构,其中包含以下信息:1.数据块位示图,这一项表示数据块位示图所占的数据块数。块位示图反映出数据块组中数据块的分配情况,在分配或释放数据块时
要使用块位示图。2.索引节点位示图,这一项表示索引节点位示图所占的数据块数。索引节点位示图反映出数据块组中索引节点分配的情况,在创建或删除文件时要使用索引节点位示图。3.索引节点表,数据块组中索引节点表所占的数据块数。系统中的每一个文件都对应一个索引
节点,每个索引节点都由一个数据结构来描述。4.空闲块数、空闲索引节点数和已用目录数。3.块位图和索引节点位图两个块分别记录本组内各个数据块的使用情况和索引节点表的使用情况。数据块位示图中一位代表一个数据块,1表示
使用,0表示空闲。索引节点位示图中一位代表一个索引节点,1表示该块忙,0表示空闲。4.磁盘索引节点ext2_inode索引节点又被称为I节点,每个文件都有惟一一个索引节点。每个数据块组中的索引节点都保存在索引节点表中。可对文件进行控制和管理。每个磁盘索引节点占128个字节,则一个长409
6字节的块可存放32个i节点项。磁盘索引节点包括文件长度、文件位置、所有者、存取权限、创建时间、上次访问时间等主要内容。索引节点有盘索引节点(如ext2_inode)和内存索引节点(如inode)两种形式。盘索引节点存放在磁盘的索引节点表中,内存索引
节点存放在系统专门开设的索引节点区中。内存索引节点除了具有盘索引节点的主要信息外,还增添了反映该文件动态状态的项目,例如,共享访问计数(i_count),表示在某一时刻该文件被打开以后进行访问的次数。10.5.3ext2的内存数据结构内存
有内存索引节点和内存超级块内核挂装文件系统时,读取磁盘超级块部分内容,填充到内存超级块中,直到该文件系统被卸载。10.5.4数据块寻址逻辑块与物理块之前的关系多重索引结构(又称多级索引结构)。在这种结构中采用了间接索引方式,即由最初索引项中得到某一盘块号,该块中存放的信息是另一组盘块号;而
后者每一块中又可存放下一组盘块号(或者是文件本身信息)。这样间接几级(通常为1~3级),最末尾的盘块中存放的信息一定是文件内容。02143568714131211910文件信息文件信息二级数组文件信息文件信息二级数组二级数组三
级数组三级数组文件信息文件信息三级数组四级数组文件信息一个块4096字节,每个块号4个字节,则一个块存放4096/4=1024个引导块块组0块组1………块组n磁盘超级块磁盘索引节点内存超级块内存索引节点…….
…….系统打开文件表访问计数读写指针访问计数读写指针用户打开文件表A用户打开文件表B磁盘内存10.6块设备驱动块设备字符设备由I/O子系统控制完成进程与外设之间的通信任务。I/O子系统的核心是控制外设的设备驱动程序。进程访问设备文件时,就驱动
硬件设备。VFS把设备文件的每个系统调用都转换成与设备有关的函数的调用。本章小结本章介绍了LINUX中的文件系统管理。LINUX的虚拟文件系统进程与文件系统的联系Ext2文件系统知识回顾KnowledgeReview祝您成功!