文档详情

6-2Linux文件系统.ppt

发布:2017-06-27约4.87千字共26页下载文档
文本预览下载声明
Linux文件系统 张斌 文件系统 文件系统是操作系统中负责存取和管理文件信息的机构。它定义了管理文件所需的数据结构和相应的操作。常见的文件系统如Linux下的ext系列等(ext2、ext3、...) 需要知道,Linux支持很多文件系统。其中,VFS为用户建立了一个通用的文件模型,并提供了访问文件的通用方法。 VFS:Visual File System VFS是用户的应用程序与各种各样的文件系统实现之间的抽象层。 硬盘的逻辑结构 硬盘由很多盘片(platter)组成 每个盘片的每个面都有一个读写磁头(Head) 。如果有N个盘片,就有2N个面,对应2N个磁头,从0、1、2开始编号 每个盘片被划分成若干个同心圆磁道,每个盘片的半径为固定值R的同心圆在逻辑上形成了一个个的柱面(Cylinder),从外至里编号为0、1、2… 每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的扇区的容量是512B,并按一定规则编号为1、2、3… 硬盘共有Cylinders×Heads×Sectors个扇区,这三个参数即是硬盘的物理参数。 ext2文件系统 ext:EXTended file system CentOS默认安装的是ext3文件系统,ext3是在ext2的基础上加入日志功能而成 ext2文件系统的优点体现在数据安全性,数据操作的效率,查找效率,空间使用率等方面 ext2文件系统支持的分区容量可达4TB,支持长文件名(255个字符)等等 了解ext2文件系统的结构 ext2文件系统分区结构 对于ext2文件系统来说,硬盘分区首先被划分成同等大小的若干块(block)。比较典型的block大小有1KB、2KB、4KB等 第一块作为分区的引导块(启动块),由系统负责管理;其余块聚在一起分成几个大的块组(block group) 引导块(启动块)的大小是固定的,就是1KB 块组包含信息 每个块组包含: 超级块(Super Block) 组描述符表(Block Group Descriptors) 数据块位图(Data Block Bitmaps) 索引节点位图(inode Bitmaps) 索引节点表(inode Table) 数据块(Data Block) ext2文件系统分区结构 功能描述 超级块:描述ext2文件系统整体信息的数据结构 组描述符表:每个描述符描述对应块组的整体信息 数据块位图:描述该组中数据块的使用情况 索引节点位图:描述该组中索引节点的使用情况 索引节点表:存放该组所有的索引节点,索引节点是用来描述文件或目录信息的 数据块:该块组中用来保存用户文件数据的数据块 super block结构 结构定义于usr/include/linux/ext2_fs.h,size为1KB struct ext2_super_block { __le32 s_inodes_count; /* inodes计数 */ __le32 s_blocks_count; /* blocks计数 */ __le32 s_r_blocks_count; /* 预留的块数 */ __le32 s_free_blocks_count; /* 空闲块数 */ __le32 s_free_inodes_count; /* 空闲索引节点数 */ __le32 s_first_data_block; /* 第一个数据块 */ __le32 s_log_block_size; /* block的大小 */ __le32 s_blocks_per_group; /* 每个块组中block的个数 */ __le32 s_inodes_per_group; /* 每个块组中inode的个数 */ ... } block group descriptor结构 结构定义于usr/include/linux/ext2_fs.h,size为32B struct ext2_group_desc { ?? __le32?? bg_block_bitmap;?? /* 组中块位图所在块 */ ?? __le32?? bg_inode_bitmap;??/* 组中索引节点位图所在块 */ ?? __le32?? bg_inode_table; ??? /*组中索引节点表的首块 */ ?? __le16?? bg_free_blocks_count; /* 组中空闲块数 */ ?? __le16?? bg_free_inodes_count; /* 组中空闲索引节点数 */ ?? ...} inode结构
显示全部
相似文档