Linux下文件系统以及VFS自结

来源:互联网 发布:网络办公软件排名 编辑:程序博客网 时间:2024/05/14 21:25

1.linux系统可以支持很多中文件系统,例如ext2、ext3、ext4、NFS、ReiserFS以及FAT等等。其实,整个linux系统都是通过一个名为Virtual Filesystem Switch(虚拟文件系统,简写为VFS)的内核功能去管理和操作各个具体的文件系统。其中VFS在linux系统中的结构如下图:


 

2.ext2文件系统的示意图

   

Remarks:

         a)Ext2文件系统将文件分成两部分数据,分别放在不同的块中。其中权限(rwx)与属性(所有者、用户组等信息)放置到inode中,实际数据放置到data block中,所以形成了inode/data block/super block的大致结构;

         b)inode——记录文件的属性和权限,同时记录此文件的数据所对应的data block号码

               data block——文件的实际数据

               super block——记录每个块组系统(inode/data block/super block)的整体信息,例如inode/data block的总量、使用量以及剩余量等等

         c)为了方便管理,在Ext2文件系统被格式化时,被分成多个块组(Block Group),每个块组都有一个独立的inode/data block/super block系统;


3.cp和mv对inode/data block的影响

(1)cp会对新增inode和data block

(2)如果mv的源文件和目标文件所在的文件系统相同,那么mv动作会沿用已有的inode和data block,不会新增inode和data block。如果mv的源文件和目标文件所在的文件系统不相同,那么mv动作就相当于cp+rm了


4.关于目录文件对应的inode/data block的一点闲话

        a) 目录文件对应的inode,记录的是该目录的相关权限和属性等等,并记录了目录对应的data block号码;

        b)目录文件对应的data block记录的是,在这个目录下的文件名与该文件占用的inode号码数据;

Remarks:

       由此可以得知,某个文件的名字不是存放在文件对应的inode或者data block中,而是记录在目录文件的data block中