inode的工作原理:

      如果把blcok比作书中的内容,那么inode就是inode就是这个书的目录,inode中记录文件的是文件的元数据信息,如:权限、大小、属主属组、时间戳、以及数据块所在的位置等信息,blcok中存储的才是真正的数据

      block:每个blcok默认大小是4k(创建文件系统的时候可以修改),且每个blcok只能给一个文件使用,例如,有一个1k的文件,把该文件放到block中,那么块中剩余的3k也不能用, blcok的大小需要根据实际应用情况来定,例如,现在把块大小设置为1k,现有一个10k的文件,那么就需要10个块,这样就导致了寻址时间过长,会导致性能下降,如果现在把块设置为10k,就有一个1k的文件,那么就会导致空间的浪费,所以块大小需要根据实际情况来定。

      inode:inode也是需要占据block块的

            直接指针:前12个inode指针,指向12个4k的block块,因此一共可指向48k的文件。

            间接指针:第13inode,每次指向一个block就会消耗4byte,那么一个块是4k,里面存放元数据,一共可以指向1024个块,所以可指向的文件大小为4K*1024=4M

            三重指针:如果将间接指针指向的1024个块中存放inode,那么就会指向1024*1024*4=4G个文件。

inode工作原理_第1张图片

      文件查找过程举例:查找/a/b/c 中的c文件

            首先,系统根据根inode可以查看到根目录下所有文件的名称和对应的inode编号,这样就可以找到a文件和对应的inode编号,在a的inode编号找到a对应的inode,然后就可以看到a目录下面所有文件的名称和对应的inode编号,这样就找到了b文件和对应的inode编号,根据b的inode编号就可以找到b的inode,这样就可以看到b目录下所有文件的名称和inode,这样就可以找到c文件了。

     cp与inode:新建文件

     rm与inode:

            删除原文件的inode,把数据块放到空闲列表中,此时误删的数据还可以恢复,如果有新文件导入,会通过超级快查找,哪些块已经被使用,哪些块还有剩余,则会重新获取新的inode,在分配空闲块,此时之前删除的文件就不能恢复了。

     mv与inode:  

            如果在一个分区,就是仅仅改了指针映射的位置,inode没有变化。

            如果不在一个分区,就是先复制数据到目标文件,然后删除源文件。