EXT2文件系统存取结构详细介绍 EXT2文件系统是 Linux 系统中的标准文件系统,由 Minix 文件系统扩展而来,具有高效的存取性能。在 EXT2 文件系统中,文件由 inode 进行唯一标识,每个文件可能对应多个文件名,只有在所有文件名都被删除后,该文件才会被删除。 EXT2 文件系统采用三级间接块来存储数据块指针,并以块(block,默认为 1KB)为单位分配空间。其磁盘分配策略是尽可能将逻辑相邻的文件分配到磁盘上物理相邻的块中,并尽可能将碎片分配给尽量少的文件,以从全局上提高性能。 在 EXT2 文件系统中,同一目录下的文件(包括目录)尽可能的放在同一个块组中,但目录则分布在各个块组中以实现负载均衡。在扩展文件时,会尽量一次性扩展 8 个连续块给文件(以预留空间的形式实现)。 EXT2 文件系统的总体存储布局是由多个分区组成的,每个分区必须先用格式化工具(例如某种 mkfs 命令)格式化成某种格式的文件系统,然后才能存储文件。格式化的过程会在磁盘上写一些管理存储布局的信息。 在 EXT2 文件系统中,文件系统中存储的最小单位是块(Block),一个块究竟多大是在格式化时确定的,例如 mke2fs 的-b 选项可以设定块大小为 1024、2048 或 4096 字节。 EXT2 文件系统将整个分区划成若干个同样大小的块组(Block Group),每个块组都由以下部分组成: * 超级块(Super Block):描述整个分区的文件系统信息,例如块大小、文件系统版本号、上次 mount 的时间等等。超级块位于每个块组的最前面,每个块组包含超级块的内容是相同的。 * 块指针(Block Pointer):存储数据块指针,以三级间接块的方式实现。 EXT2 文件系统的超级块结构如下: struct ext2_super_block { __le32 s_inodes_count; // 文件系统中 inode 的总数 __le32 s_blocks_count; // 文件系统中块的总数 __le32 s_r_blocks_count; // 保留块的总数 __le32 s_free_blocks_count; // 未使用的块的总数(包括保留块) __le32 s_free_inodes_count; // 未使用的 inode 的总数 __le32 s_first_data_block; // 块 ID,在小于 1KB 的文件系统中为 0,大于 1KB 的文件系统中为 1 __le32 s_log_block_size; // 用以计算块的大小(1024 算术左移该值即为块大小) __le32 s_log_frag_size; // 用以计算段大小(为正则 1024 算术左移该值,否则右移) __le32 s_blocks_per_group; // 每个块组中块的总数 __le32 s_frags_per_group; // 每个块组中段的总数 __le32 s_inodes_per_group; // 每个块组中 inode 的总数 __le32 s_mtime; // POSIX 中定义的文件系统装载时间 __le32 s_wtime; // POSIX 中定义的文件系统最近被写入的时间 __le16 s_mnt_count; // 最近一次完整校验后被装载的次数 __le16 s_max_mnt_count; // 在进行完整校验前还能被装载的次数 __le16 s_magic; // 文件系统标志,ext2 中为 0xEF53 __le16 s_state; // 文件系统的状态 __le16 s_errors; // 文件系统发生错误时驱动程序应该执行的操作 __le16 s_minor_rev_level; // 局部修订级别 __le32 s_lastcheck; // POSIX 中定义的文件系统最近一次检查的时间 __le32 s_checkinterval; // POSIX 中定义的文件系统最近检查的最大时间间隔 __le32 s_creator_os; // 生成该文件系统的操作系统 } EXT2 文件系统的设计目标是提供高效的存取性能和可靠性,同时也提供了灵活的存储管理机制,以适应不同的应用场景。
剩余41页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2024数字化治理智算运维发展研究报告.pdf
- 2024美国电动自行车e-bike消费者洞察报告-维卓.pdf
- 2024企业消费管理白皮书.pdf
- 2024年研发管线评估-未满足需求的创新最终报告.pdf
- 65734_1733295871_tweiboqianbao75091562.apk
- CCD自动检测机含BOM和3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 基于MATLAB的车牌识别系统详细文档+全部资料+高分项目.zip
- 基于matlab的实现声音分离系统和图像处理系统详细文档+全部资料+高分项目.zip
- 基于MATLAB的水果分级系统、适用圆形水果,如苹果,橘子,柚子,柿子等,统计水果图片的面积,圆形度和色泽等多参数进行评价。该设计带一个GUI界面,从而得出该水
- 基于Matlab的指纹识别系统详细文档+全部资料+高分项目.zip
- 基于MATLAB电影推荐系统详细文档+全部资料+高分项目.zip
- 基于MATLAB仿真与建模作业 彩票仿真系统详细文档+全部资料+高分项目.zip
- 基于Matlab对超市排队系统进行模拟仿真项目详细文档+全部资料+高分项目.zip
- 基于MATLAB开发的量化回测系统详细文档+全部资料+高分项目.zip
- 基于MATLAB课程大作业 包括 图像处理工具、蹦极模拟系统、扫雷游戏详细文档+全部资料+高分项目.zip
- 基于MATLAB平台的PCA的人脸识别系统、原理为:从一副生活照中寻找到人脸,分割人脸区域图像,PCA算法进行降维,和库里图片进行对比,输出目标人脸以及相关个人