系统相关
首页 > 系统相关> > Linux Ext2

Linux Ext2

作者:互联网

Ext2文件系统结构(inode & block):

inode存放文件的用户权限,属性,以及记录文件数据使用到的block编号,一个inode大小为 128 bytes;
block负责存放文件的实际数据,大小有 1KB,2KB 和 4KB 可选;

当单个文件内容增大时,使用的block数量也会随之增加,然而inode仅仅能存放 32个block的编号(inode中一个编号占 4 bytes,故 128 / 4 = 32 个);
尽管采用4KB大小的block存放文件数据,则32 * 4K = 128KB,这对于大多数文件来说,是远远不够的;

而Linux规定一个inode只能对应一个文件,所以不能申请更多的inode进行存放文件数据,因此该inode会指定其中的几个block作为存储其他block编号的容器;

假设当前使用的是 1KB 的block存放文件数据,则inode可以将其中的一个block作为inode的扩容区,即1KB全都用来存放其他block的编号,则可以多出 1024bytes / 4bytes = 256 个编号存放空间,而每个编号对应一个 1KB 大小的block,则文件大小可在原来基础上大致增大 256 * 1KB = 256KB的大小 (称之为一层间接);

而存储编号的block中指定的block也可以继续用于存储编号,则又可扩容 256 * 256 * 1KB = 65536KB(二层间接);一般来说,为了控制block数量,到了三层间接(即 256^3 * 1KB) 后就不再扩展了,这也是出于文件系统的IO性能考虑;


FAT文件系统: 没有inode,block的编号由上一个block存储,不能一次性取出全部相关的block,性能上不如ext2
FAT文件系统


当inode数量过多时,为了便于文件系统的管理,将inode及block分成对对应的blockgroup;

在这里插入图片描述

标签:文件,Ext2,1KB,编号,文件系统,Linux,inode,block
来源: https://blog.csdn.net/weixin_40932275/article/details/101358582