《linux文件管理》ppt课件

上传人:tia****nde 文档编号:70815933 上传时间:2019-01-18 格式:PPT 页数:106 大小:1.23MB
返回 下载 相关 举报
《linux文件管理》ppt课件_第1页
第1页 / 共106页
《linux文件管理》ppt课件_第2页
第2页 / 共106页
《linux文件管理》ppt课件_第3页
第3页 / 共106页
《linux文件管理》ppt课件_第4页
第4页 / 共106页
《linux文件管理》ppt课件_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《《linux文件管理》ppt课件》由会员分享,可在线阅读,更多相关《《linux文件管理》ppt课件(106页珍藏版)》请在金锄头文库上搜索。

1、1,张惠娟 副教授 M,Linux文件管理,2,内容,linux文件系统概论 EXT2文件系统 VFS虚拟文件系统 文件操作和使用,3,文件系统特点 树型结构 文件类型 访问权限,概论,4,特点 自行设计开发的文件系统称为EXT2 Linux支持多种其它操作系统的文件系统: 如minix、ext2、hpfs、msdos、umsdos、iso、nfs、sysv、affs、ufs、efs等达二十几种。 虚拟文件系统VFS屏蔽了各种文件系统的差别,为处理各种不同文件系统提供了统一的接口。,概论,5,树型结构 采用多级目录的树型层次结构管理文件。 系统在运行中通过使用命令或系统调用进入任何一层目录,这

2、时系统所处的目录称为当前目录。,概论,6,7,Linux用两种方法来表示文件或目录的位置:绝对路径和相对路径。 绝对路径 相对路径,概论,8,文件类型 目录文件 普通文件 设备文件 管道文件 链接文件,概论,9,目录文件 Linux一个目录是一个驻留在磁盘上的文件,称为目录文件。系统对目录文件的处理方法与一般文件相同。 目录由若干目录项组成,每个目录项对应目录中的一个文件。 目录项由文件名和属性、位置、大小、建立或修改时间、访问权限等文件控制信息组成。,概论,10,Linux继承了UINX,把文件名和文件控制信息分开管理。 i节点 i节点实质上是一个由系统管理的“目录项”,由文件控制信息单独组

3、成的结构体。 每个文件对应一个i节点,有唯一编号,称为节点号。 Linux目录项只由两部分组成:文件名和节点号。,概论,11,概论,12,普通文件 计算机用户和操作系统用于存放数据、程序等信息的文件。 一般都长期地存放在外存储器(磁盘、磁带等)中 普通文件一般又分为文本文件和二进制文件,概论,13,设备文件 分为字符设备文件和块设备文件。 内核提供了对设备处理和对文件处理的统一接口,每种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器:/dev/fd0。,概论,14,管道文件 主要用于在进程间传递数据 Linux对管道的操作与文件操作相同,把管

4、道做为文件进行处理。 管道文件又称先进先出(FIFO)文件,概论,15,链接文件 也称为符号链接文件,提供了共享文件的一种方法。 不是通过文件名实现文件共享,而是通过链接文件包含指向文件的指针来实现对文件访问。 普通用户可以建立链接文件,并通过其指针所指向的文件。,概论,16,总之 从对文件内容处理的角度来说,无论是哪种类型文件,Linux都把它们看做是无结构的流式文件,即把文件内容看做是一系列有序的字符流。,概论,17,访问权限 目的 保证文件信息的安全,即文件被访问时,系统首先检验访问者权限,只有与文件访问权限相符时才允许对文件进行访问。,概论,18,EXT2文件系统,EXT2介绍 系统结

5、构 inode结构,19,最初引进了Minix文件系统,Minix文件系统有较大局限性 1992年4月推出EXT(EXTended File system) 1993年推出了EXT2文件系统,EXT2已经成为Linux的标准文件系统,EXT2介绍,20,EXT2系统结构,系统结构 EXT2超级块 内存中超级块的映像 组描述符 块位图,21,系统结构 块设备 文件组织和管理是以物理块为单位。物理块是块设备上大小相同的存储区域,如磁盘的扇区。 一个文件系统一般使用块设备上一个独立的逻辑分区; 文件逻辑分区中除了表示文件内容的逻辑块(称为数据块)外,还设置了若干包含管理和控制信息的逻辑块。 磁盘上可

6、能有多个逻辑分区,每个分区使用不同的文件子系统。,EXT2系统结构,22,EXT2文件系统由逻辑块序列组成的。 EXT2文件系统把逻辑分区划分成块组,并从0开始依次编号。 每个块组中包含若干数据块,数据块中就是目录或文件内容。 块组中包含着几个用于管理和控制的信息块:超级块、组描述符表、块位图、inode位图和inode表。,EXT2系统结构,23,EXT2系统结构,24,超级块 描述文件系统整体信息的数据结构,主要描述文件系统的目录和文件的静态分布情况,以及描述文件系统的各种组成结构的尺寸、数量等。,EXT2系统结构,25,超级块位于每个块组的最前面,每个块组中包含的超级块内容是相同的。 系

7、统运行期间,把超级块复制到系统缓冲区内,只需把块组0的超级块读入内存,其它块组的超级块做为备份。 EXT2超级块ext2_super_block结构。,EXT2系统结构,26,27,28,EXT2系统结构,29,超级块映像 ext2_super_block结构是超级块在磁盘中的形态,系统运行期间将磁盘上的超级块读入到内存,在内存建立一个超级块映像。 超级块映像定义为ext2_sb_info结构,定义在:/include/linix/ext2_fs_sb.h,EXT2系统结构,30,struct ext2_sb_info unsigned long s_frag_size; /* 片的长度,以字

8、节为单位 */ unsigned long s_frags_per_block; /* 每块中片数 */ unsigned long s_inodes_per_block;/* 每块中inode数 */ unsigned long s_frags_per_group; /* 每一块组中片数 */ unsigned long s_blocks_per_group;/* 每一块组中块数 */ unsigned long s_inodes_per_group;/* 每一块组inode数 */ unsigned long s_itb_per_group; /* 每块组节点表占用块数 */ unsign

9、ed long s_db_per_group; /* 每一块组中描述符占用的 块数 */,EXT2系统结构,31,unsigned long s_desc_per_block; /* 一块中组描述符数*/ unsigned long s_groups_count; /* 文件系统中的块组数 */ struct buffer_head * s_sbh; /* 指向内存中包含超级块 的缓冲区的指针 */ struct ext2_super_block * s_es; /* 指向缓冲区中超级块的指针 */ struct buffer_head * s_group_desc; /* 指向描述符数组的指

10、针 */ unsigned short s_loaded_inode_bitmaps; /* 装入缓冲区的inode位图 块数 */ unsigned short s_loaded_block_bitmaps;/* 装入缓冲区的块位图块数 */ unsigned long s_inode_bitmap_numberEXT2_MAX_GROUP_LOADED;/* inode位图数 。,EXT2系统结构,32,组描述符 Linux组描述符为32字节,每一个块组有一个组描述符。所有组描述符集中在一起依次存放,形成组描述符表。 描述符表中的组描述符顺序与块组在磁盘上的顺序对应。 一个组描述符可能占用

11、多个物理块,具有相同内容的组描述符表放在每个块组中做为备份, 组描述符定义在/include/linix/ext2_fs.h中:,EXT2系统结构,33,struct ext2_group_desc _u32 bg_block_bitmap; /* 本组中块位图的位置 */ _u32 bg_inode_bitmap; /* 本组中inode位图的位置*/ _u32 bg_inode_table; /* 本组中inode表的位 */ _u16 bg_free_blocks_count;/* 本组中空闲块数 */ _u16 bg_free_inodes_count;/* 本组中空闲inode数 *

12、/ _u16 bg_used_dirs_count; /* 本组中所含目录数 */ _u16 bg_pad; /* 填充 */ _u32 bg_reserved3; /* 保留 */ ;,EXT2系统结构,34,EXT2系统结构,35,块位图 描述块的使用状况 每个块组都有一个块位图,位于组描述符表之后,用来描述本块组中数据块的使用状况。 块位图的每一位表示一个数据块的使用情况,为1表示对应数据块已占用,为0表示数据块空闲。 各位的顺序与块组中数据块顺序一致 块位图一般占用一个逻辑块,EXT2系统结构,36,inode结构 inode表和inode位图 inode在内存中的映像 EXT2的目录

13、结构,Inode结构,37,inode结构 inode是EXT2基本构件,表示文件系统树型结构的节点。 EXT2文件系统中的每个文件由一个inode描述,且只能由一个inode描述。 EXT2文件系统的inode 定义为struct ext2_inode,该定义在/include/linux/ext2_fs.h中。,Inode结构,38,Inode结构,39,Inode结构,40,41,inode在内存中的映像 inode与文件一起存放在外存,系统运行时,把inode写入内存建立映像。 内存映像定义为ext2_inode_info 结构,在include/linux/ext2_fs_i.h中定

14、义:,Inode结构,42,struct ext2_inode_info _u32 i_data15; /* 数据块指针数组 */ _u32 i_flags; /* 文件标志(属性)*/ _u32 i_faddr; /* 片地址 */ _u8 i_frag_no; /* 片号 */ _u8 i_frag_size; /* 片大小 */ _u16 i_osync; /* 同步标志 */,Inode结构,43,_u32 i_file_acl; /* 文件访问控制链表 */ _u32 i_dir_acl; /* 目录访问控制链表 */ _u32 i_dtime; /* 文件删除时间 */ _u32

15、i_version; /* 文件版本 */ _u32 i_block_group; /* inode所在块组号 */ _u32 i_next_alloc_block; /* 下一个要分配的块 */ _u32 i_next_alloc_goal; /*下一个要分配的对象 * _u32 i_prealloc_block; * 预留块首地址 */ _u32 i_prealloc_count; /* 预留计数 */ int i_new_inode:1; /* 标志,是否为新分配的inode */ ;,Inode结构,44,inode表和inode位图 一个块组中所有文件的inode形成了inode表,

16、 表项序号是inode号; inode表存放在块组中所有数据块之前,在块组中要占用几个逻辑块由超级块中s_inodes_per_group给出。 inode位图反映了inode表中各个表项的使用情况,每位表示inode表的一个表项,为1表示对应表项已占用,为0表示表项空闲。,Inode结构,45,目录文件中的目录项是ext2_dir_entry结构体,前后连接成一个类似链表的形式。 struct ext2_dir_entry _u32 inode; /* inode号 */ _u16 rec_len; /* 目录项长度 */ _u16 name_len; /* 文件名长度 */ char nameEXT2_NAME_LEN; /* 文件名 */ ; 其中: #define EXT2_NAME_LEN 255,EXT2的目录结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号